taler-merchant-demos

Python-based Frontends for the Demonstration Web site
Log | Files | Refs | Submodules | README | LICENSE

stallman-kth.html (122101B)


      1 <!--#set var="ENGLISH_PAGE" value="/philosophy/stallman-kth.en.html" -->
      2 
      3 <!--#include virtual="/server/header.fr.html" -->
      4 <!-- Parent-Version: 1.96 -->
      5 <!-- This page is derived from /server/standards/boilerplate.html -->
      6 <!--#set var="TAGS" value="speeches" -->
      7 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
      8 
      9 <!-- This file is automatically generated by GNUnited Nations! -->
     10 <title>Conférence de RMS au KTH (Suède, 1986) - Projet GNU - Free Software
     11 Foundation</title>
     12 <style type="text/css" media="screen"><!--
     13 #content span { font-style: italic; color: #505050; }
     14 -->
     15 </style>
     16 
     17 <!--#include virtual="/philosophy/po/stallman-kth.translist" -->
     18 <!--#include virtual="/server/banner.fr.html" -->
     19 <!--#include virtual="/philosophy/ph-breadcrumb.fr.html" -->
     20 <!--GNUN: OUT-OF-DATE NOTICE-->
     21 <!--#include virtual="/server/top-addendum.fr.html" -->
     22 <div class="article reduced-width">
     23 <h2>Conférence de RMS au KTH (Suède, 1986)</h2>
     24 
     25 <div class="infobox">
     26 <p>Transcription d'une conférence de Richard Stallman au <i>Kungliga Tekniska
     27 Högskolan</i> (Institiut royal de technologie), à Stockholm (Suède),
     28 organisée par l'association des étudiants, <i>Datorföreningen Stacken</i>,
     29 le 30 octobre 1986.
     30 </p>
     31 </div>
     32 <hr class="thin" />
     33 
     34 <div class="introduction">
     35 <p><i>[Note : Ce texte est une transcription légèrement révisée de la
     36 conférence. La version originale contient des faux départs ainsi que des
     37 locutions naturelles en anglais parlé mais qui paraissent bizarres dans une
     38 publication. Il n'est pas évident de la transformer en anglais écrit correct
     39 sans faire violence au discours original.]</i></p>
     40 </div>
     41 
     42 <p><b>RMS :</b> Il semble qu'il y ait trois choses dont les gens voudraient que
     43 je parle. Tout d'abord, j'ai pensé que le meilleur sujet ici pour un club de
     44 hackers était de dire comment ça se passait au <abbr title="Massachusetts
     45 Institute of Technology">MIT</abbr> autrefois, ce qui faisait du labo
     46 d'intelligence artificielle (labo d'IA) un endroit si particulier. Mais d'un
     47 autre côté on m'a suggéré, étant donné que les personnes qui sont ici ne
     48 sont pas celles qui étaient aux conférences de lundi et mardi, de raconter
     49 ce qui se passe dans le projet GNU, et de dire pourquoi le logiciel et
     50 l'information ne peuvent pas être considérés comme des propriétés. Cela fait
     51 un total de trois conférences. Et puisque deux de ces sujets prennent chacun
     52 une heure, nous y sommes pour un bon moment. Aussi je me suis dit que je
     53 pourrais éventuellement diviser la conférence en trois parties. Comme ça les
     54 gens pourraient sortir quand ça ne les intéresse pas. Une fois arrivé à la
     55 fin d'un sujet, je peux signaler que c'est fini, les gens peuvent sortir et
     56 je peux envoyer Jan Rynning dehors pour appeler les autres.</p>
     57 
     58 <p><span>[Quelqu'un : « <i>Janne, han trenger ingen mike.</i> » (Janne, il n'a
     59 pas besoin de micro.)]</span></p>
     60 
     61 <p>Jan, tu es prêt à courir chercher les autres ?</p>
     62 
     63 <p><b>JMR :</b> Je suis à la recherche d'un micro et quelqu'un me dit qu'il est
     64 dans ce casier fermé à clé.</p>
     65 
     66 <p><b>RMS :</b> Autrefois au labo d'IA, on l'aurait ouvert à coup de masse et
     67 la porte défoncée aurait servi de leçon à celui qui avait osé mettre sous
     68 clé quelque chose dont tout le monde avait besoin. Mais heureusement j'ai
     69 étudié le chant bulgare, donc je peux très bien me débrouiller sans micro.</p>
     70 
     71 <p>Bon, est-ce que je dois vous signaler les différentes parties de la
     72 conférence ou vous avez juste envie de la suivre jusqu'au bout ?
     73 <span>[Réponse : Yeaaah !]</span></p>
     74 
     75 <p>Quand j'ai commencé à programmer, c'était en 1969, dans un laboratoire d'IBM
     76 à New York. Ensuite, je suis allé dans une école qui avait un département
     77 d'informatique probablement semblable à la plupart des autres. Il y avait
     78 quelques professeurs responsables de ce qu'on était censé y faire et il y
     79 avait des gens qui décidaient de qui pouvait se servir de quoi. Il y avait
     80 pénurie de terminaux pour la plupart d'entre nous. Or pas mal de professeurs
     81 en avaient un personnellement dans leur bureau, ce qui était du gaspillage,
     82 mais typique de leur attitude. Quand j'ai visité le labo d'intelligence
     83 artificielle au MIT, j'ai trouvé une atmosphère qui était une bouffée d'air
     84 pur par rapport à ça. Par exemple : là, on considérait que les terminaux
     85 étaient à tout le monde et les professeurs qui les enfermaient à clef dans
     86 leurs bureaux couraient le risque de voir leurs portes défoncées. On m'a
     87 montré une fois un chariot avec un gros bloc de fer dessus. C'était celui
     88 qui avait été utilisé pour défoncer la porte du bureau d'un des professeurs
     89 quand il avait eu le culot d'y enfermer un terminal. Il y en avait très peu
     90 à cette époque. Il y avait probablement quelque chose comme cinq terminaux à
     91 écran pour tout le système ; aussi, si l'un d'entre eux était sous clé,
     92 c'était une vraie catastrophe.</p>
     93 
     94 <p>Dans les années qui ont suivi, j'ai été guidé par ces idées et il m'est
     95 souvent arrivé de crapahuter au-dessus des plafonds ou sous les planchers
     96 pour déverrouiller les salles qui contenaient des machines dont les gens
     97 avaient besoin. Et je laissais généralement un mot qui expliquait aux gens
     98 qu'il ne fallait pas fermer la porte à clé de manière aussi égoïste. Les
     99 gens qui fermaient la porte à clé, au fond, ne pensaient qu'à eux. Ils
    100 avaient une raison de le faire, bien sûr. Il y avait un truc qui,
    101 pensaient-ils, pouvait tenter les voleurs, et ils voulaient l'enfermer à
    102 clef. Mais ils ne s'occupaient pas des autres, que cela gênait de ne pas
    103 avoir accès au reste du matériel qui était dans la même salle. Presque à
    104 chaque fois que cela s'est produit – après avoir porté à leur attention
    105 qu'il ne leur appartenait pas de décider du verrouillage de la porte – ils
    106 étaient capables de trouver un compromis. Mais le problème, c'est que les
    107 gens ne prennent pas la peine d'y penser. Ils se disent : « Cette salle est
    108 à moi, je peux la fermer à clé, que les autres aillent au diable ! » C'est
    109 précisément cette attitude que nous devons leur désapprendre.</p>
    110 
    111 <p>Mais cette habitude de déverrouiller les portes n'était pas un comportement
    112 isolé, il faisait partie d'une façon de vivre à part entière. Les hackers du
    113 labo d'IA étaient vraiment passionnés par l'écriture de bons programmes, de
    114 programmes intéressants. Ils étaient à ce point impatients de faire avancer
    115 le travail qu'ils ne supportaient pas la mise sous clé des terminaux, ni un
    116 tas d'autres comportements qui faisaient obstacle au travail utile. C'est la
    117 différence entre des personnes très motivées qui se préoccupent vraiment de
    118 ce qu'elles sont en train de faire et des personnes qui prennent ça juste
    119 pour un boulot. Si c'est juste un boulot, qu'importe si les gens qui vous
    120 ont embauché sont assez stupides pour vous obliger à attendre sans rien
    121 faire. C'est leur temps, leur argent, mais pas grand-chose ne se fait dans
    122 un endroit comme ça ; ce n'est pas drôle d'être dans un endroit comme ça.</p>
    123 
    124 <p>Une autre chose que nous n'avions pas au labo d'IA, c'était la protection
    125 des fichiers. Il n'y avait aucune sécurité sur l'ordinateur, et c'était une
    126 décision mûrement réfléchie. Les hackers qui ont écrit ITS<a
    127 id="TransNote1-rev" href="#TransNote1"><sup>1</sup></a> ont jugé que la
    128 protection des fichiers n'était qu'un moyen comme un autre, pour un
    129 administrateur système autoproclamé, d'avoir du pouvoir sur tout le
    130 monde. Ils ont refusé que quiconque puisse avoir du pouvoir sur eux de cette
    131 façon. Aussi, ils n'ont pas implémenté ce genre de dispositif. Résultat,
    132 chaque fois que quelque chose était cassé dans le système, vous pouviez
    133 toujours le réparer. Vous n'étiez jamais obligé de rester planté là,
    134 frustré, parce qu'il n'y avait RIEN À FAIRE, alors que vous saviez
    135 parfaitement quoi faire mais que quelqu'un avait décidé de ne pas vous faire
    136 confiance. Vous n'étiez pas obligé de laisser tomber et de rentrer à la
    137 maison en attendant le lendemain matin que quelqu'un vienne réparer le
    138 système, alors que vous saviez dix fois mieux que lui ce qu'il fallait
    139 faire.</p>
    140 
    141 <p>Et nous ne laissions pas non plus de professeur, ni de patron, décider quel
    142 devait être notre prochain travail, parce que notre travail c'était
    143 d'améliorer le système ! Nous parlions aux utilisateurs évidemment ; si vous
    144 ne faites pas ça, vous ne pouvez pas savoir ce dont ils ont besoin. Mais
    145 ensuite, nous étions les seuls, les plus aptes à savoir quelles sortes
    146 d'améliorations étaient possibles. Et nous discutions toujours entre nous
    147 pour savoir comment nous voulions voir le système évoluer, quelles idées
    148 astucieuses nous avions vues dans d'autres systèmes et pourrions
    149 utiliser. Ainsi au final, nous avions une anarchie qui fonctionnait sans
    150 à-coups ; d'après mon expérience là-bas, je suis convaincu que c'est la
    151 meilleure façon de vivre.</p>
    152 
    153 <p>Malheureusement le labo d'IA, tel qu'il était à cette époque, a été
    154 détruit. Pendant des années nous avions craint qu'il ne soit détruit par un
    155 autre labo du MIT, le labo d'informatique, dont le directeur était le genre
    156 de type à construire un empire. Il faisait tout ce qu'il pouvait pour avoir
    157 une promotion au MIT et faire grossir son organisation. Il essayait
    158 continuellement d'annexer le labo d'IA. Personne ne voulait faire les choses
    159 à sa manière parce qu'il croyait que les gens devaient obéir aux ordres et
    160 d'autres choses dans le style.</p>
    161 
    162 <p>Mais ce danger, nous avons réussi à le repousser pour être en fin de compte
    163 détruits par une chose que nous n'avions pas prévue : l'esprit
    164 commercial. Vers le début des années 80, les hackers ont soudain compris que
    165 ce qu'ils faisaient avait désormais un intérêt commercial. Il était possible
    166 de devenir riche en travaillant pour une société privée. Il leur suffisait
    167 de cesser de partager leur travail avec le reste du monde et de détruire le
    168 labo d'IA du MIT. Et c'est ce qu'ils ont fait, malgré tous mes efforts pour
    169 les en empêcher.</p>
    170 
    171 <p>Presque tous les programmeurs compétents du labo d'IA, excepté moi, ont été
    172 embauchés ailleurs et cela a causé bien plus qu'un changement
    173 provisoire. Cela a causé une métamorphose définitive, parce que ça a brisé
    174 la continuité de la culture des hackers. Les nouveaux hackers sont toujours
    175 attirés par les anciens. Il y avait là les ordinateurs les plus amusants et
    176 les gens qui faisaient les choses les plus intéressantes avec. Et aussi une
    177 atmosphère qu'il était très amusant de partager. Une fois cela disparu, il
    178 ne restait rien pour attirer les nouveaux venus. Ils ont donc cessé
    179 d'arriver. Il n'y avait plus personne pour les inspirer, personne pour leur
    180 enseigner les traditions. Qui plus est, personne de qui apprendre à bien
    181 programmer. Avec juste un tas de professeurs et de doctorants qui ne savent
    182 pas vraiment comment faire marcher un programme, on ne peut pas apprendre à
    183 faire fonctionner de bons programmes. Ainsi le labo d'IA du MIT que j'aimais
    184 a disparu. Et après deux années passées à me battre contre les gens qui
    185 avaient fait ça, pour essayer de les punir, j'ai décidé de me consacrer à
    186 créer une nouvelle communauté ayant cet état d'esprit.</p>
    187 
    188 <p>Mais un des problèmes auxquels j'ai dû faire face était celui des logiciels
    189 <a
    190 href="/philosophy/categories.html#ProprietarySoftware">propriétaires</a>.<a
    191 id="TransNote2-rev" href="#TransNote2"><sup>2</sup></a> Par exemple, ce qui
    192 s'est passé au labo une fois les hackers partis, c'est que les machines et
    193 les logiciels que nous avions développés ne pouvaient plus être
    194 maintenus. Bien sûr Les logiciels fonctionnaient et continuaient de
    195 fonctionner si personne ne les modifiait, mais pas les machines. Les
    196 machines tombaient en panne et personne ne pouvait les réparer, et ensuite
    197 on les mettait au rebut. Autrefois, il y avait bien des contrats d'entretien
    198 pour les machines, mais pour l'essentiel c'était du bidon. C'était une
    199 manière d'obtenir des pièces détachées une fois que les hackers experts du
    200 labo d'IA avaient réparé. Parce que si on avait attendu que les techniciens
    201 de maintenance le fassent, ça aurait pris des jours. Et on ne voulait pas de
    202 ça. On voulait que ça marche. Aussi, les gens qui savaient faire ce genre de
    203 chose réparaient très vite, puisqu'ils étaient dix fois plus compétents que
    204 n'importe quel technicien. Ils pouvaient faire un bien meilleur travail. Et
    205 une fois qu'ils avaient démonté les circuits défectueux, il leur suffisait
    206 de les mettre de côté et d'appeler le technicien : « Reprenez-les et
    207 ramenez-nous-en des neufs. »</p>
    208 
    209 <p>À la belle époque, nos hackers avaient également l'habitude de modifier les
    210 machines qui venaient de Digital. Par exemple, ils ont construit des boîtes
    211 de radiomessagerie <i>[paging]</i> pour les PDP-10. De nos jours, je pense
    212 qu'il y en a certains ici [à Stockholm] qui le font aussi. Mais ce n'était
    213 pas courant en ce temps-là. Et encore avant, au début des années 60, les
    214 gens modifiaient les ordinateurs en ajoutant toutes sortes de nouvelles
    215 instructions et de nouvelles fonctionnalités sophistiquées en temps
    216 partagé. De sorte que le PDP-1 du MIT, avant qu'il ne parte à la retraite
    217 dans les années 70, avait quelque chose comme deux fois plus d'instructions
    218 qu'il n'en avait lors de sa livraison par Digital au début des années 60. Il
    219 avait des fonctionnalités spéciales complétant l'ordonnanceur
    220 <i>[scheduler]</i> matériel, d'étranges fonctionnalités de mappage de la
    221 mémoire qui permettaient d'affecter individuellement chaque périphérique
    222 matériel à une tâche en temps partagé, et des tas d'autres trucs dont j'ai à
    223 peine entendu parler. Je pense qu'ils ont également rajouté une sorte de
    224 mode d'adressage étendu, des registres d'indexation ainsi que l'adressage
    225 indirect ; en somme ils ont transformé une toute petite machine en une
    226 machine à peu près correcte.</p>
    227 
    228 <p>Je suppose que c'est l'un des inconvénients de la <abbr title="Very Large
    229 Scale Integration">VLSI</abbr> (intégration à très grande échelle) : il
    230 n'est plus vraiment pratique d'ajouter des instructions sur vos machines.</p>
    231 
    232 <p>Le PDP-1 avait une caractéristique très intéressante : il était possible
    233 d'écrire des programmes intéressants avec un très petit nombre
    234 d'instructions, moins qu'aucune autre machine construite depuis. Je crois
    235 par exemple que le célèbre hack d'affichage <i>munching squares</i> (lit. :
    236 grignotage de carrés) – qui traçait des carrés qui grandissaient puis se
    237 brisaient en une multitude de petits carrés qui devenaient plus grands et se
    238 brisaient en petits carrés – cela a été écrit en quelque chose comme cinq
    239 instructions sur le PDP-1. Et beaucoup d'autres beaux programmes d'affichage
    240 ont pu être écrits ainsi avec un très petit nombre d'instructions.</p>
    241 
    242 <p>Voilà donc ce qu'était le labo d'IA. Mais c'était quoi la culture des
    243 hackers, hormis leur anarchisme ? Au temps du PDP-1, la machine ne pouvait
    244 être utilisée que par une personne à la fois, du moins au début. Plusieurs
    245 années après, ils ont écrit un système fonctionnant en temps partagé et ils
    246 ont rajouté pas mal de matériel pour ça. Mais au début, on pouvait seulement
    247 s'inscrire pour une période donnée. Naturellement les professeurs et les
    248 étudiants qui travaillaient sur des projets officiels venaient toujours
    249 pendant la journée. Alors, les gens qui voulaient avoir plus de temps
    250 s'inscrivaient pour la nuit quand il y avait moins d'affluence. Voilà
    251 l'origine de la coutume hacker de travailler la nuit. Même lorsqu'il y eut
    252 le temps partagé, il était toujours plus facile d'avoir du temps la nuit, on
    253 pouvait avoir plus de cycles parce qu'il y avait peu d'utilisateurs. Aussi
    254 ceux qui voulaient abattre beaucoup de travail continuaient à venir la
    255 nuit. Mais ça a commencé à changer parce qu'on n'était pas seul, il y avait
    256 là quelques autres hackers ; ainsi c'est devenu un phénomène social. Si vous
    257 entriez pendant la journée, vous pouviez vous attendre à trouver des
    258 professeurs et des étudiants qui n'étaient pas des fans de la machine, alors
    259 que si vous veniez la nuit vous trouviez des hackers. Par conséquent, les
    260 hackers sont venus la nuit pour partager leur culture. Et ils ont développé
    261 d'autres traditions, comme d'aller se ravitailler au Chinois à trois heures
    262 du matin. Je me rappelle avoir vu beaucoup de levers de soleil alors que je
    263 revenais en voiture de Chinatown. C'était tellement beau de voir le lever de
    264 soleil, c'est une heure tellement calme de la journée. C'est une heure
    265 merveilleuse pour se préparer à aller dormir. Il est si agréable de rentrer
    266 à pied chez soi dans une lumière qui commence juste à poindre avec les
    267 oiseaux qui se mettent à gazouiller. On a une sensation de douce
    268 satisfaction, de tranquillité, en pensant au travail accompli pendant la
    269 nuit.</p>
    270 
    271 <p>Une autre tradition que nous avons initiée était celle d'avoir des endroits
    272 pour dormir au labo. Depuis le jour où j'y suis entré, il y a toujours eu au
    273 moins un lit. Et j'ai probablement habité au labo un peu plus longtemps que
    274 la plupart des autres car, tous les ans ou tous les deux ans, pour une
    275 raison ou une autre, je n'avais pas d'appartement et j'y habitais quelques
    276 mois. Et j'ai toujours trouvé que c'était très confortable, sans compter que
    277 c'était sympa et frais en été. Mais il n'était pas rare du tout de tomber
    278 sur des gens qui s'étaient endormis au labo, toujours à cause de leur
    279 enthousiasme : vous restez le plus longtemps possible à hacker parce que
    280 vous ne voulez pas vous arrêter, et une fois que vous êtes complètement
    281 épuisé, vous escaladez la surface horizontale souple la plus proche. Une
    282 ambiance vraiment sans cérémonie.</p>
    283 
    284 <p>Mais quand les hackers sont tous partis du labo, ça a causé un changement
    285 démographique parce que les professeurs et les étudiants qui n'étaient pas
    286 vraiment des fans de la machine étaient aussi nombreux qu'auparavant ;
    287 maintenant ils représentaient la majorité. Et ils ont vraiment eu peur. Sans
    288 hacker pour entretenir le système, ils se sont dit : « Ça va être un
    289 désastre, il nous faut du logiciel commercial. Comme ça, nous pourrons
    290 compter sur la maintenance de l'entreprise. » La suite prouva qu'ils avaient
    291 absolument tort, mais c'est ce qu'ils ont fait.</p>
    292 
    293 <p>C'était exactement au moment où ils devaient recevoir un nouvel ordinateur,
    294 le KL-10, et la question s'est alors posée : faut-il qu'il fonctionne avec
    295 ITS ou bien Twenex, le système de Digital ? Une fois les hackers partis
    296 – ils auraient sans doute poussé à utiliser le leur – les universitaires ont
    297 choisi d'utiliser le logiciel commercial et cela eut plusieurs effets
    298 immédiats. Certains n'ont pas été vraiment immédiats, mais ils en ont
    299 découlé inévitablement comme l'aurait prévu n'importe qui avec un peu de
    300 réflexion.</p>
    301 
    302 <p>Le premier problème était que ce logiciel était beaucoup plus mal écrit et
    303 plus difficile à comprendre qu'ITS, rendant donc plus difficiles les
    304 modifications nécessaires. L'autre était que le logiciel était sécurisé, ce
    305 qui eut pour effet inévitable de diminuer la collaboration entre les uns et
    306 les autres. Dans le passé, sur ITS, nous trouvions souhaitable d'avoir accès
    307 à tous les fichiers et de pouvoir modifier n'importe lequel, parce que nous
    308 avions des raisons pour cela. Je me rappelle un scandale intéressant où
    309 quelqu'un a envoyé une demande d'assistance en utilisant Macsyma. Macsyma
    310 est un programme d'algèbre symbolique qui a été développé au MIT. Il a
    311 envoyé une demande d'assistance à l'une des personnes qui travaillait dessus
    312 et a obtenu une réponse quelques heures plus tard de la part de quelqu'un
    313 d'autre. Il était horrifié. Il a envoyé le message suivant : « Untel doit
    314 lire votre courrier, les fichiers de courrier ne sont peut-être pas
    315 correctement protégés sur votre système ? » – « Naturellement, aucun dossier
    316 n'est protégé sur notre système. Où est le problème ? Vous avez obtenu votre
    317 réponse plus tôt, de quoi vous plaignez-vous ? Évidemment nous lisons le
    318 courrier de tout le monde, comme ça nous pouvons tomber sur des personnes
    319 comme vous et les aider. » Certains ne connaissent pas leur bonheur.</p>
    320 
    321 <p>Bien sûr, Twenex n'est pas seulement muni d'une sécurité – et par défaut la
    322 sécurité est activée – mais il est également conçu en partant de l'hypothèse
    323 que la sécurité est active. Or il y a un bon nombre de trucs très faciles à
    324 faire qui peuvent causer pas mal de dégâts et la seule chose qui vous
    325 empêche de les faire par accident, c'est la sécurité. Sur ITS, nous avions
    326 développé d'autres moyens d'éviter que les gens fassent ces trucs par
    327 accident, mais sur Twenex on ne les avait pas, étant donné que des mesures
    328 de sécurité strictes étaient censées être opérationnelles et que les chefs
    329 étaient les seuls à avoir la possibilité de faire des erreurs. Donc, ils
    330 n'avaient mis aucun autre mécanisme de sécurité pour éviter les
    331 accidents. Le résultat, c'est qu'on ne pouvait plus se contenter de
    332 désactiver la sécurité de Twenex pour avoir ce qu'on voulait. Et il n'y
    333 avait plus les hackers pour faire les changements nécessaires à
    334 l'introduction de ces autres mécanismes. Aussi les gens ont-ils été obligés
    335 de travailler avec la sécurité. Et la machine était là depuis six mois à peu
    336 près, quand il a commencé à y avoir quelques « coups d'État ». Au début nous
    337 avons supposé que tous ceux qui travaillaient pour le labo allaient avoir le
    338 <i>wheel bit</i><a id="TransNote3-rev" href="#TransNote3"><sup>3</sup></a>
    339 qui leur donnerait les pleins pouvoirs pour désactiver la sécurité, mais
    340 certains jours vous veniez dans l'après-midi pour découvrir que les <i>wheel
    341 bits</i> d'à peu près tout le monde avaient été supprimés.</p>
    342 
    343 <p>Quand je m'en suis rendu compte, j'ai rectifié la situation. La première
    344 fois, il se trouve que je connaissais le mot de passe d'un des membres de
    345 l'élite et que j'ai pu l'utiliser pour redonner à chacun ses privilèges. La
    346 deuxième fois, il avait changé son mot de passe, il avait changé de
    347 relations sociales, il appartenait désormais au parti aristocrate. Alors
    348 j'ai dû arrêter la machine et utiliser le système DDT<a id="TransNote4-rev"
    349 href="#TransNote4"><sup>4</sup></a> en temps non partagé pour fouiller un
    350 peu partout. J'ai fouillé dans le moniteur pendant un moment et j'ai compris
    351 à la fin comment faire pour qu'il se charge et que je puisse le patcher. De
    352 sorte que j'ai pu bloquer le contrôle des mots de passe et ainsi redonner
    353 leur <i>wheel bit</i> à plein de gens. Puis j'ai laissé un message
    354 système. Le nom de cette machine était OZ et le message disait : « Il y a eu
    355 une nouvelle tentative de prise du pouvoir, jusqu'ici les forces
    356 aristocratiques sont battues – <i>Radio Free OZ</i> (la radio libre d'Oz). »
    357 Plus tard j'ai découvert que <i>Radio Free OZ</i> est l'une des expressions
    358 utilisées par le <i>Firesign Theater</i>. Je ne le savais pas à ce
    359 moment-là.</p>
    360 
    361 <p>Mais petit à petit les choses ont empiré – c'est juste la façon dont le
    362 système avait été construit qui forçait les gens à exiger de plus en plus de
    363 sécurité – jusqu'à ce que, finalement, je sois obligé d'arrêter d'utiliser
    364 la machine parce que je refusais d'avoir un mot de passe secret. Depuis que
    365 les mots de passe étaient apparus pour la première fois au labo d'IA du MIT,
    366 j'en étais venu à la conclusion que pour respecter mes convictions, pour
    367 agir en accord avec mes convictions, il ne devait y avoir aucun mot de
    368 passe. Je dois toujours veiller à avoir un mot de passe aussi évident que
    369 possible et le dire à tout le monde. Puisque je ne crois pas qu'il soit
    370 vraiment souhaitable d'avoir une sécurité sur un ordinateur, je ne dois pas
    371 aider au maintien du régime de sécurité. Sur les systèmes qui le permettent,
    372 j'utilise un « mot de passe vide » et sur des systèmes où cela n'est pas
    373 permis (où cela signifie que vous ne pouvez pas ouvrir de session de
    374 l'extérieur, des choses comme ça), j'utilise mon nom d'utilisateur comme mot
    375 de passe. C'est aussi évident que possible. Et quand les gens me font
    376 remarquer que de cette manière on peut ouvrir une session sous mon nom, je
    377 réponds : « Oui, c'est ça l'idée, quelqu'un pourrait avoir besoin de
    378 certaines données sur cette machine. Je veux m'assurer qu'elles ne se feront
    379 pas avoir par la sécurité. »</p>
    380 
    381 <p>Et une autre chose que je fais toujours, c'est de désactiver la protection
    382 sur mon répertoire et mes dossiers. Parce que de temps en temps j'y stocke
    383 des programmes utiles et s'il y a un bogue je veux que les gens puissent le
    384 corriger.</p>
    385 
    386 <p>Mais cette machine n'avait pas non plus été conçue pour gérer un phénomène
    387 appelé « tourisme ». Le tourisme était une très vieille tradition du labo
    388 d'IA qui allait avec nos autres conceptions de l'anarchie. Elle disait que
    389 nous devions laisser les gens de l'extérieur utiliser la machine. À l'époque
    390 où n'importe qui pouvait venir se connecter à ce qui lui plaisait, c'était
    391 automatique : comme visiteur, vous pouviez ouvrir une session pour
    392 travailler. Plus tard nous avons plus ou moins formalisé ça comme une
    393 tradition établie, particulièrement quand l'Arpanet s'est mis en place et
    394 que les gens ont commencé à se connecter à nos machines à partir de
    395 n'importe quel coin du pays. Ce que nous espérions, c'était que ces
    396 personnes apprendraient vraiment à programmer et qu'elles commenceraient à
    397 modifier le système d'exploitation. Si vous disiez ça à un administrateur
    398 système n'importe où ailleurs, il serait horrifié. Si vous lui proposiez
    399 l'idée que n'importe quel étranger puisse utiliser la machine, il
    400 répondrait : « Et s'il commence à modifier nos programmes ? » Mais pour
    401 nous, si un étranger commençait à modifier les programmes, cela signifiait
    402 qu'il montrait un intérêt réel à devenir un membre contributif de la
    403 communauté. Nous encouragions toujours les gens à le faire ; à commencer,
    404 naturellement, par écrire de nouveaux utilitaires, des petits. Nous jetions
    405 un œil sur ce qu'ils avaient fait et nous le corrigions. Ils en arrivaient
    406 alors à ajouter des fonctionnalités à de grands utilitaires existants. Et ce
    407 sont des programmes qui existent depuis une dizaine ou peut-être une
    408 quinzaine d'années, et grandissent petit à petit à mesure que les artisans,
    409 l'un après l'autre, ajoutent de nouvelles fonctionnalités.</p>
    410 
    411 <p>C'est pour ainsi dire comme certaines villes de France, où l'on peut voir
    412 des bâtiments extrêmement anciens avec des rajouts construits des centaines
    413 d'années plus tard, jusqu'à aujourd'hui. Dans le domaine de l'informatique,
    414 un programme qui a été commencé en 1965, c'est à peu près ça. Ainsi nous
    415 espérions toujours que des touristes deviendraient mainteneurs du système ;
    416 et peut-être qu'ensuite ils allaient être embauchés, après avoir commencé à
    417 travailler sur les programmes du système et nous avoir montré qu'ils étaient
    418 capables de faire du bon travail.</p>
    419 
    420 <p>Mais il y avait sur les machines ITS certains autres dispositifs qui
    421 aidaient à éviter que ça nous échappe. L'un d'entre eux était un dispositif
    422 « espion » où tout le monde pouvait observer ce que chacun faisait. Et
    423 naturellement les touristes adoraient espionner. Ils pensaient que c'était
    424 super. C'était un peu méchant, voyez-vous, mais le résultat, c'était que si
    425 un touriste commençait à faire un truc à problème, il y avait toujours
    426 quelqu'un pour le voir. Donc assez vite ses amis étaient furieux parce
    427 qu'ils savaient que pour que le tourisme continue à exister, il fallait des
    428 touristes responsables. Aussi y avait-il forcément quelqu'un qui savait qui
    429 c'était et nous pouvions lui dire de nous laisser tranquilles. Et si nous ne
    430 pouvions pas, alors ce que nous faisions, c'était d'interdire les connexions
    431 provenant de certains endroits pendant un moment, et quand nous les
    432 autorisions à nouveau il était parti et nous avait oubliés. Et cela a
    433 continué comme ça pendant des années, des années&hellip; et des années.</p>
    434 
    435 <p>Mais le système Twenex n'avait pas été conçu pour ce genre de chose et par
    436 la suite ils ne m'ont plus toléré, moi et mon mot de passe que tout le monde
    437 connaissait. Les touristes n'arrêtaient pas d'ouvrir des sessions sous mon
    438 nom, à deux ou trois à la fois, et ont commencé à vider mon compte. À ce
    439 moment-là de toute façon, je travaillais le plus souvent sur d'autres
    440 machines ; si bien que finalement je l'ai abandonné et cessé à tout jamais
    441 de le réactiver. C'est tout. Je ne me suis pas connecté sur cette machine
    442 sous mon nom pendant&hellip; <span>[À ce moment-là, RMS est interrompu par
    443 un tonnerre d'applaudissements.]</span></p>
    444 
    445 <p>Quand ils ont installé le système Twenex, ils avaient à l'esprit d'y faire
    446 plusieurs changements, des changements dans le fonctionnement de la
    447 sécurité. Ils voulaient aussi mettre la machine sur le réseau <abbr
    448 title="Advanced Research Projects Agency">ARPA</abbr> ainsi que sur le
    449 réseau Chaos du MIT. Et il se trouve qu'ils n'ont pas pu le faire, qu'il n'y
    450 avait personne d'assez compétent pour ça. Il n'y avait plus de talent
    451 disponible et il était difficile de changer ça. Ce système était beaucoup
    452 plus difficile à comprendre qu'ITS parce qu'il était mal écrit, et
    453 naturellement Digital ne voulait pas faire ce genre de chose. Ainsi l'idée
    454 d'un système commercial qui se maintenait tout seul s'est révélée
    455 erronée. Ils avaient absolument besoin de hackers mais n'avaient plus les
    456 moyens de les attirer. Et de nos jours au MIT, il y a davantage de gens que
    457 ça intéresse de hacker ITS que Twenex.</p>
    458 
    459 <p>La dernière raison de cet état de fait, c'est que Twenex ne pouvait pas être
    460 partagé. Twenex est un programme propriétaire : vous n'avez le droit d'avoir
    461 les sources que si vous les gardez secrètes par des moyens très
    462 déplaisants. Et ça leur donne mauvais goût, à moins d'être inconscient comme
    463 le sont certains en informatique (il y en a qui feront n'importe quoi si
    464 c'est amusant pour eux et ne penseront pas une minute à coopérer avec qui
    465 que ce soit ; mais il faut être franchement ailleurs pour ne pas remarquer à
    466 quel point c'est triste de travailler comme ça sur un programme, comme c'est
    467 décourageant). Et comme si ce n'était pas suffisant, chaque année ils vous
    468 donnent une nouvelle version remplie d'une cinquantaine de milliers de
    469 lignes de code supplémentaires, toutes écrites par des singes. Parce qu'ils
    470 suivent généralement une école de programmation système du genre « un
    471 million de singes tapant sur une machine à écrire finiront bien un jour par
    472 sortir quelque chose d'utile ».</p>
    473 
    474 <p>Il était clair pour moi, après avoir vu ce qui arrivait à ces systèmes
    475 propriétaires, que la seule façon de conserver l'esprit du vieux labo d'IA
    476 était d'avoir un système d'exploitation libre ; d'avoir un système fait de
    477 logiciel libre pouvant être partagé avec n'importe qui, de façon à pouvoir
    478 inviter tout le monde à collaborer à son amélioration. Et c'est ce qui a
    479 conduit au projet GNU. Ainsi j'estime que nous sommes arrivés à la deuxième
    480 partie de la conférence.</p>
    481 
    482 <p>Il y a environ trois ans et demi, il m'est apparu comme une évidence que je
    483 devais commencer à développer un système constitué de <a
    484 href="/philosophy/free-sw.html">logiciel libre</a>. J'envisageais deux types
    485 de systèmes : le premier, pratiquement identique au système de machine Lisp
    486 du MIT, mais libre et fonctionnant sur tout type de matériel, pas seulement
    487 sur les machines Lisp spécialisées, et l'autre, un logiciel d'exploitation
    488 plus conventionnel. Et il était clair pour moi que si je faisais un logiciel
    489 d'exploitation conventionnel, je devais le rendre compatible avec Unix parce
    490 que ça rendait la migration plus facile aux gens de tous horizons. Après
    491 quelque temps, j'ai choisi la deuxième solution. Et la raison, c'était qu'il
    492 n'était pas possible d'obtenir quelque chose de vraiment comparable au
    493 système de machine Lisp sur du matériel polyvalent. Le système de machine
    494 Lisp utilise du matériel spécial, avec un microcode spécial réinscriptible,
    495 pour obtenir à la fois une bonne vitesse d'exécution et une détection
    496 robuste des erreurs pendant le temps d'exécution, en particulier les erreurs
    497 sur le type des données. Pour qu'un système Lisp puisse fonctionner assez
    498 rapidement sur du matériel ordinaire, on doit commencer par faire des
    499 suppositions, supposer que tel argument est du type voulu ; ensuite, si ce
    500 n'est pas le cas, le système se plante.</p>
    501 
    502 <p>Naturellement on peut mettre des contrôles explicites, on peut écrire un
    503 programme robuste si on veut, mais le fait est qu'on va obtenir des trucs
    504 comme des erreurs d'adressage de mémoire si l'on fournit à une fonction un
    505 argument de type inapproprié sans RIEN prévoir pour faire la vérification.</p>
    506 
    507 <p>Le résultat, c'est qu'il fallait que quelque chose fonctionne en dessous du
    508 système Lisp pour détecter ces erreurs et permettre à l'utilisateur de
    509 garder le système en état de marche et de déboguer les problèmes
    510 éventuels. J'en suis arrivé à la conclusion que si je devais avoir un
    511 système d'exploitation de bas niveau, je pouvais tout aussi bien faire un
    512 bon système d'exploitation – le choix était entre un système d'exploitation
    513 plus le Lisp, et juste un système d'exploitation ; donc je devais faire le
    514 système d'exploitation d'abord et le rendre compatible avec Unix. Enfin,
    515 quand j'ai réalisé que je pouvais utiliser le plus drôle des mots anglais
    516 pour nommer ce système, le choix était clair. Et ce mot est bien sûr GNU,
    517 qui signifie <i>GNU's Not Unix</i> (GNU N'est pas Unix). L'acronyme récursif
    518 est une très vieille tradition dans la communauté de hackers qui gravite
    519 autour du MIT. Il a commencé je crois, avec un éditeur appelé TINT, ce qui
    520 signifie <i>Tint Is Not <abbr title="Text Editor and
    521 COrrector">Teco</abbr></i>, et plus tard c'est passé par des noms comme SINE
    522 pour <i>Sine Is Not Emacs</i>, et FINE pour <i>Fine Is Not Emacs</i>, et
    523 EINE pour <i>Eine Is Not Emacs</i>, et ZWEI pour <i>Zwei Was Eine
    524 Initially</i>, et finalement on est arrivé à GNU.</p>
    525 
    526 <p>Je dirais que depuis le moment, il y a environ deux ans et demi, où j'ai
    527 commencé à travailler vraiment sur GNU, j'ai déjà fait plus de la moitié du
    528 travail. Au moment où j'étais prêt à démarrer le projet, j'ai d'abord
    529 regardé autour de moi ce qu'il y avait de libre déjà disponible. J'ai
    530 découvert un système de compilation portable appelé <i>the Free University
    531 Compiler Kit</i>, qui était intéressant, et j'ai pensé qu'avec un nom pareil
    532 je pourrais peut-être l'avoir.<a id="TransNote5-rev"
    533 href="#TransNote5"><sup>5</sup></a> Alors j'ai envoyé un message à son
    534 développeur en lui demandant s'il acceptait de le donner au projet GNU. Et
    535 il a dit « Non, l'université est peut-être libre, mais le logiciel qu'elle
    536 développe ne l'est pas », mais il a ajouté qu'il voulait aussi avoir un
    537 système compatible avec Unix et qu'il voulait écrire une sorte de noyau pour
    538 lui, alors pourquoi est-ce que je n'écrirais pas les utilitaires, comme ça
    539 les deux pourraient être distribués avec son compilateur propriétaire ? Ça
    540 encouragerait les gens à l'acheter. J'ai pensé que c'était ignoble, alors je
    541 lui ai dit que mon premier projet serait de faire un compilateur.</p>
    542 
    543 <p>Je ne savais pas vraiment grand-chose au sujet de l'optimisation des
    544 compilateurs à cette époque parce que je n'avais jamais travaillé
    545 dessus. Mais j'ai mis la main sur un compilateur dont on m'avait dit qu'il
    546 était libre. C'était un compilateur appelé Pastel dont les auteurs disaient
    547 que c'était du « Pascal mal fichu ».</p>
    548 
    549 <p>Le Pastel est un langage très compliqué comprenant des fonctionnalités comme
    550 des types paramétrés et des paramètres de types explicites et beaucoup de
    551 choses compliquées. Le compilateur naturellement était écrit dans ce langage
    552 et comportait nombre de fonctionnalités compliquées pour optimiser
    553 l'utilisation de ces éléments. Par exemple : le type <i>string</i> dans ce
    554 langage était un type paramétré ; vous pouviez dire <code>string(n)</code>
    555 si vous vouliez une chaîne d'une longueur particulière ; vous pouviez
    556 également juste dire <code>string</code>, et le paramètre était déterminé à
    557 partir du contexte. Cela dit, les chaînes sont très importantes et sont
    558 nécessaires à beaucoup de constructions qui les utilisent pour fonctionner
    559 rapidement. Et ça veut dire qu'on avait besoin de beaucoup de
    560 fonctionnalités pour détecter des choses comme : lorsque la longueur
    561 déclarée d'une chaîne est un argument dont on sait qu'il est constant dans
    562 toute la fonction, sauvegarder la valeur et optimiser le code qu'elle va
    563 produire ; beaucoup de choses compliquées. Mais j'ai pu voir dans ce
    564 compilateur comment procéder à l'allocation automatique de registre et
    565 glaner quelques idées sur la façon de gérer différents types de machines.</p>
    566 
    567 <p>Bon, puisque ce compilateur avait déjà compilé Pastel, tout ce que j'avais à
    568 faire était de rajouter une interface pour le C, ce que je fis, puis
    569 d'ajouter une sortie pour le 68000 qui devait être ma première cible. Mais
    570 j'allais vers un sérieux problème. Puisque le langage Pastel était conçu de
    571 manière à ne pas avoir besoin de déclarer quoi que ce soit avant de
    572 l'utiliser, la déclaration d'une variable et son usage pouvaient se faire
    573 dans n'importe quel ordre ; en d'autres termes, la déclaration
    574 <code>forward</code> du Pascal était obsolète. Pour cette raison il fallait
    575 lire le programme dans son intégralité, le garder en mémoire centrale
    576 <i>[core]</i> et le compiler d'une traite. Le résultat, c'était que le
    577 stockage intermédiaire utilisé par le compilateur, ou plutôt la taille de la
    578 mémoire requise, était proportionnel à la taille de votre fichier. Et il
    579 fallait aussi compter avec l'espace de pile ; vous aviez besoin d'une
    580 quantité gigantesque d'espace de pile. J'en ai conclu que le système 68000
    581 dont je disposais ne pouvait pas faire fonctionner ce compilateur. Car
    582 c'était une horrible version d'Unix qui vous limitait à quelque chose comme
    583 16 000 mots de pile, ceci en dépit de l'existence de six mégaoctets dans la
    584 machine. Et naturellement, pour générer la matrice des conflits afin de voir
    585 quelles valeurs temporaires étaient en conflit ou quel groupe de valeurs
    586 étaient actives en même temps, il était nécessaire d'avoir une matrice
    587 quadratique de bits. Et pour les grandes fonctions cela pouvait prendre des
    588 centaines de milliers d'octets. Ainsi je suis parvenu à déboguer la première
    589 des quelque dix passes du compilateur en compilation croisée sur cette
    590 machine et j'ai constaté alors que la seconde ne pourrait jamais
    591 fonctionner.</p>
    592 
    593 <p>Pendant que je réfléchissais à ces problèmes en me demandant si je devais
    594 essayer de les corriger ou bien écrire entièrement un nouveau compilateur,
    595 j'ai commencé de manière indirecte à travailler sur GNU Emacs. GNU Emacs est
    596 la partie principale de la distribution du système GNU. C'est un éditeur de
    597 texte extensible qui ressemble de près à l'Emacs original que j'ai développé
    598 il y a dix ans, sauf que celui-ci emploie le véritable Lisp comme langage
    599 d'extension. L'éditeur lui-même est implémenté en C, de même que
    600 l'interpréteur Lisp. Ainsi l'interpréteur Lisp est entièrement portable et
    601 vous n'avez pas besoin de système Lisp externe à l'éditeur. L'éditeur
    602 contient son propre système Lisp et toutes les commandes d'édition sont
    603 écrites en Lisp de manière à pouvoir vous donner des exemples sur la façon
    604 d'écrire vos propres commandes et des éléments à utiliser comme point de
    605 départ. Il vous suffit de les modifier pour obtenir les commandes que vous
    606 voulez.</p>
    607 
    608 <p>L'été de cette année-là, il y a environ deux ans maintenant, un ami m'a dit
    609 qu'en raison de son travail au tout début du développement de l'Emacs de
    610 Gosling, il avait la permission écrite de Gosling de distribuer sa propre
    611 version. Gosling, à l'origine, avait créé son Emacs. Il l'avait distribué
    612 librement et beaucoup de gens aidèrent à son développement, avec l'espoir
    613 – selon les propres mots de Gosling dans son manuel – qu'il avait suivi le
    614 même état d'esprit que celui que j'avais donné à l'Emacs original. Ensuite
    615 il a poignardé tout le monde dans le dos en prenant des copyrights dessus,
    616 en faisant promettre aux gens de ne pas le redistribuer puis en le vendant à
    617 une maison d'édition de logiciels. Les relations d'affaires que j'ai eues
    618 avec lui par la suite m'ont personnellement prouvé qu'il était aussi lâche
    619 et méprisable que vous pouvez le voir dans cette histoire.</p>
    620 
    621 <p>Mais de toute façon, mon ami m'avait donné le programme et j'avais
    622 l'intention de modifier les commandes d'édition du niveau supérieur pour les
    623 rendre compatibles avec l'Emacs original dont j'avais l'habitude. Ceci pour
    624 qu'elles puissent manipuler toutes les combinaisons d'arguments numériques,
    625 etc., tout ce que l'on pouvait s'attendre à ce qu'elles manipulent, en étant
    626 pourvues de toutes les fonctionnalités que je voulais. Mais peu après, j'ai
    627 découvert que le langage d'extension de cet éditeur, appelé Mocklisp, ne
    628 suffisait pas à la tâche. J'ai compris que je devais le remplacer
    629 immédiatement pour pouvoir réaliser mon projet. J'avais déjà pensé
    630 auparavant à remplacer éventuellement Mocklisp par le vrai Lisp, mais ce que
    631 j'ai découvert, c'est qu'il fallait le faire dès le début. Maintenant, la
    632 raison pour laquelle Mocklisp s'appelle <i>mock</i> (faux), c'est qu'il n'a
    633 aucune sorte de structure pour les types de données : il n'y a pas les
    634 listes Lisp ; il n'y a aucune sorte de tableau ; il n'y a pas non plus les
    635 symboles Lisp, qui sont des objets nommés (à chaque nom particulier
    636 correspond un seul objet de manière que la saisie du nom se rapporte
    637 toujours au même objet, sinon ça entrave considérablement l'écriture de pas
    638 mal de sortes de programmes en vous obligeant à passer par des manipulations
    639 de chaînes compliquées qui ne font pas vraiment avancer les choses).</p>
    640 
    641 <p>Alors j'ai écrit un interpréteur Lisp pour le mettre à la place de
    642 Mocklisp. Et ce faisant j'ai constaté que je devais réécrire un certain
    643 nombre de structures de données internes à l'éditeur parce que je voulais
    644 qu'il s'agisse d'objets Lisp. Je voulais que l'interface entre Lisp et
    645 l'éditeur soit propre, c'est-à-dire que des objets comme les tampons
    646 d'édition, les sous-processus, les fenêtres et les emplacements des tampons
    647 soient tous des objets Lisp, afin que les processus primaires de l'éditeur
    648 qui s'en servaient puissent vraiment être appelés en tant que fonctions Lisp
    649 avec des données Lisp. Cela voulait dire qu'il fallait recréer entièrement
    650 les formats de données de tous les objets et réécrire toutes les fonctions
    651 qui s'en servaient. Et cela a eu pour résultat, pendant environ six mois, de
    652 me faire réécrire à peu près tout ce qu'il y avait dans l'éditeur.</p>
    653 
    654 <p>En outre, du fait qu'il est vraiment difficile d'écrire en Mocklisp, rien
    655 n'était écrit proprement. Et en le réécrivant, je pouvais tirer profit de la
    656 puissance du vrai Lisp ; je pouvais rendre tout ça beaucoup plus puissant,
    657 beaucoup plus simple et rapide. C'est ce que j'ai fait. Et quand j'ai
    658 commencé à distribuer le programme, il ne restait qu'une petite partie de ce
    659 que j'avais reçu.</p>
    660 
    661 <p>À ce moment-là, la société à qui Gosling pensait avoir vendu le programme a
    662 contesté à mon ami le droit de le distribuer. Le message avait été
    663 sauvegardé sur une bande que mon ami n'arrivait plus à retrouver et Gosling
    664 a nié lui avoir donné cette permission. Une chose étrange s'est alors
    665 produite. Il était en pourparlers avec cette société qui semblait surtout
    666 vouloir éviter qu'il ne distribue quelque chose d'analogue à ce qu'elle-même
    667 distribuait. Voyez-vous, Gosling continuait à distribuer ce qu'il m'avait
    668 donné et la société pour laquelle il travaillait, Megatest, également ; il
    669 s'agissait en réalité d'une ancienne version de l'Emacs de Gosling, avec ses
    670 modifications. Il allait donc faire un accord avec eux dans lequel il
    671 cesserait de le distribuer, et passer ensuite à GNU Emacs. Ils
    672 reconnaîtraient alors qu'après tout Gosling avait leur permission, et donc
    673 théoriquement tout le monde serait content. De plus cette société m'a
    674 entretenu au sujet de leur désir de distribuer GNU Emacs, gratuitement bien
    675 sûr, mais aussi de vendre divers services d'assistance. Ils voulaient même
    676 m'embaucher pour aider à faire ce travail. Aussi est-il un peu étrange
    677 qu'ils aient soudain changé d'avis et refusé de signer cet accord, puis mis
    678 une annonce sur le réseau comme quoi je n'avais pas le droit de distribuer
    679 le programme. Ils n'ont pas vraiment dit qu'ils feraient quoi que ce
    680 soit. Ils ont juste dit qu'il n'était pas improbable qu'ils fassent quelque
    681 chose un jour. Cela faisait suffisamment peur aux gens pour que plus
    682 personne ne l'utilise. C'est triste.</p>
    683 
    684 <p>(Parfois je me dis que peut-être une des meilleures choses que je pourrais
    685 faire dans la vie serait de trouver une pile colossale de logiciels
    686 propriétaires couverts par le secret industriel et de commencer à en
    687 distribuer des copies à tous les coins de rue, ce qui les ferait sortir du
    688 secret. Peut-être que ce serait une manière beaucoup plus efficace de
    689 fournir aux gens de nouveaux logiciels libres, que de les écrire
    690 effectivement moi-même ; mais tout le monde serait trop lâche pour ne
    691 serait-ce qu'y toucher.)</p>
    692 
    693 <p>Donc ça m'a obligé à réécrire tout ce qui restait qui n'était pas de moi, ce
    694 que j'ai fait. Il m'a fallu environ une semaine et demie. Quelle victoire
    695 pour eux ! Il était certain qu'après ça ils n'obtiendraient jamais plus
    696 aucune collaboration de ma part.</p>
    697 
    698 <p>Une fois que GNU Emacs a été raisonnablement stable – ce qui m'a pris
    699 environ un an et demi tout compris – j'ai commencé à revenir sur d'autres
    700 parties du système. J'ai développé un programme de débogage que j'ai appelé
    701 GDB. C'est un débogueur symbolique pour le code C dont la distribution vient
    702 de commencer, réalisé en grande partie dans l'esprit de DBX, le débogueur de
    703 l'Unix de Berkeley. Les commandes se composent d'un mot indiquant ce que
    704 vous voulez faire, suivi des arguments. Dans ce programme, toutes les
    705 commandes peuvent être abrégées. Les commandes courantes ont des
    706 abréviations d'un seul caractère, mais toute abréviation d'un seul caractère
    707 est permise. La fonction « aide » est très fournie : vous pouvez taper
    708 <code>help</code> suivi de n'importe quelle commande, y compris des
    709 commandes secondaires, et vous obtenez une description complète de la façon
    710 de l'utiliser. Naturellement vous pouvez taper n'importe quelle expression
    711 en C et sa valeur s'affichera.</p>
    712 
    713 <p>Vous pouvez également faire des choses inhabituelles pour un débogueur C
    714 symbolique. Par exemple, vous pouvez vous référer à n'importe quel type de
    715 donnée C à n'importe quelle adresse de mémoire pour en examiner la valeur ou
    716 pour lui affecter une valeur. Supposons que vous vouliez stocker un nombre
    717 en virgule flottante dans un mot à une certaine adresse. Vous devez juste
    718 dire : « Donne-moi l'objet de type <i>float</i> ou <i>double</i> à cette
    719 adresse et ensuite affecte-lui cette valeur. » Une autre chose que vous
    720 pouvez faire est d'examiner toutes les valeurs qui ont été examinées
    721 auparavant. Chaque valeur examinée se place sur la pile de l'« historique
    722 des valeurs ». Vous pouvez vous référer à n'importe quel élément par sa
    723 position dans l'historique, ou bien vous pouvez facilement vous référer au
    724 dernier élément, juste avec le signe dollar. Ça facilite le suivi de la
    725 structure des listes. Si une structure C quelconque contient un pointeur
    726 vers une autre structure, vous pouvez faire quelque chose comme
    727 <code>print*$.next</code> qui veut dire : « Prends le champ suivant dans la
    728 dernière chose que tu m'as montrée, puis affiche la structure sur laquelle
    729 il pointe ». En répétant cette commande, on voit l'une après l'autre les
    730 structures sur lesquelles pointe la liste, alors qu'avec chacun des autres
    731 débogueurs C que j'ai vus, la seule manière de faire ça est de taper une
    732 commande de plus en plus longue. Et quand c'est combiné à une fonctionnalité
    733 qui fait qu'« Entrée » rappelle la dernière commande, ça devient très
    734 pratique. Vous avez juste à taper « Entrée » pour chaque élément de la liste
    735 que vous voulez voir.</p>
    736 
    737 <p>Vous pouvez aussi définir des variables de façon explicite dans le
    738 débogueur, en nombre illimité. Vous posez le signe dollar suivi d'un nom et
    739 c'est une variable. Vous pouvez lui affecter une valeur de n'importe quel
    740 type C et vous pourrez l'examiner plus tard. Parmi les choses pour
    741 lesquelles c'est utile, s'il y a une valeur particulière que vous voulez
    742 examiner, sachant que vous allez vous y référer souvent, plutôt que de vous
    743 souvenir de son numéro dans l'historique vous pouvez lui donner un nom. Vous
    744 pouvez aussi utiliser ces variables quand vous placez des paliers
    745 <i>[breakpoints]</i> conditionnels. Les paliers conditionnels sont une
    746 fonctionnalité qui existe dans beaucoup de débogueurs symboliques. Vous
    747 dites : « Fais une pause quand tu seras arrivé à cet endroit du programme,
    748 mais seulement si une certaine expression est vraie. » Les variables du
    749 débogueur vous permettent de comparer une variable du programme à sa
    750 précédente valeur sauvegardée dans la variable du débogueur. Une autre chose
    751 à laquelle elles peuvent servir, c'est à compter. Parce qu'après tout, les
    752 valeurs affectées à ces variables sont des expressions en C, donc on peut
    753 faire <code>$foo+=5</code> pour incrémenter la valeur <code>$foo</code>
    754 de 5, ou juste <code>$foo++</code>. Vous pouvez également le faire lors d'un
    755 palier conditionnel. Une manière économe de faire une pause dans le
    756 programme la dixième fois que le palier est atteint, serait de faire
    757 <code>$foo--==0</code>. Est-ce que tout le monde suit ? Faire décroître foo
    758 et une fois qu'il est à zéro, pause. Vous faites démarrer <code>$foo</code>
    759 au nombre de boucles que vous voulez qu'il saute et vous le lâchez. Vous
    760 pouvez aussi utiliser ça pour examiner les éléments d'un tableau. Supposez
    761 que vous ayez un tableau de pointeurs, vous pouvez faire :</p>
    762 
    763 <pre><code>PRINT X[$foo++]</code></pre>
    764 
    765 <p>Mais d'abord vous faites</p>
    766 
    767 <pre><code>SET $foo=0</code></pre>
    768 
    769 <p>OK, quand vous faites ça [il montre l'expression PRINT], vous obtenez
    770 l'élément zéro de X et quand vous le faites à nouveau, il atteint le premier
    771 élément. Supposez que ce soient des pointeurs vers des structures, alors
    772 vous mettez probablement un astérisque là [avant le X dans l'expression
    773 PRINT] et à chaque fois, il affiche la structure sur laquelle pointe
    774 l'élément suivant du tableau. Et bien sûr vous pouvez répéter cette commande
    775 en tapant « Entrée ». Si ce n'est pas suffisant de répéter une seule chose,
    776 vous pouvez créer une « commande utilisateur ». Vous pouvez dire
    777 <code>define mumble</code>, vous mettez quelques lignes de commandes puis
    778 <code>end</code>. Vous venez ainsi de définir une commande
    779 <code>mumble</code> qui exécutera ces lignes. Et il est très utile de mettre
    780 ces définitions dans un fichier de commandes. Vous pouvez avoir un fichier
    781 de commandes dans chaque répertoire qui sera chargé automatiquement en tant
    782 que répertoire actif lorsque vous lancerez le débogueur. Ainsi pour chaque
    783 programme, vous pouvez définir un ensemble de commandes utilisateur pour
    784 accéder efficacement aux structures. Vous pouvez même fournir de la
    785 documentation pour vos commandes, de façon qu'elles soient traitées par la
    786 fonction <code>help</code> comme des commandes intégrées.</p>
    787 
    788 <p>Une autre chose peu habituelle dans ce débogueur, c'est la capacité
    789 d'écarter des cadres <i>[frames]</i> de la pile ; parce que je crois que
    790 c'est important, non seulement pour pouvoir examiner ce qui se produit dans
    791 le programme que vous déboguez, mais aussi pour le modifier de toutes les
    792 façons possibles. De sorte qu'après avoir trouvé un problème et avoir
    793 compris ce qui n'allait pas, vous pouvez faire comme si le code était
    794 correct et trouver le prochain bogue sans avoir d'abord à recompiler le
    795 programme. Cela signifie non seulement pouvoir changer en souplesse les
    796 zones de données de votre programme, mais également changer le flux de
    797 contrôle. Dans ce débogueur, vous pouvez changer le flux de contrôle très
    798 directement en disant :</p>
    799 
    800 <pre><code>SET $PC=&lt;un certain nombre&gt;</code></pre>
    801 
    802 <p>Ainsi vous pouvez positionner le compteur ordinal <i>[program
    803 counter]</i>. Vous pouvez également positionner le pointeur de pile
    804 <i>[stack pointer]</i>, ou bien vous pouvez dire</p>
    805 
    806 <pre><code>SET $SP+=&lt;quelque_chose&gt;</code></pre>
    807 
    808 <p>si vous voulez incrémenter le pointeur de pile d'une certaine quantité. Mais
    809 en outre, vous pouvez également lui dire de démarrer sur une ligne
    810 particulière du programme ; vous pouvez placer le compteur ordinal à une
    811 ligne particulière du code source. Mais que se passe-t-il si vous constatez
    812 que vous avez appelé une fonction par erreur et que vous ne vouliez pas
    813 appeler cette fonction du tout ? Vous vous dites que cette fonction est trop
    814 merdique, que vous voulez vraiment en sortir et faire à la main ce qu'elle
    815 devait faire. Pour cela, vous pouvez utiliser la commande
    816 <code>RETURN</code>. Vous sélectionnez un cadre de la pile et vous dites
    817 <code>RETURN</code>. Et ça va faire que ce cadre, et tous ceux qui sont à
    818 l'intérieur, seront abandonnés comme si cette fonction renvoyait
    819 instantanément sa valeur. Vous pouvez aussi spécifier la valeur qu'elle doit
    820 renvoyer. Ça ne poursuit pas l'exécution ; ça fait comme si la valeur était
    821 renvoyée et le programme s'arrête à nouveau ; vous pouvez ainsi continuer de
    822 modifier autre chose.</p>
    823 
    824 <p>Et si vous combinez tout ça, vous avez pas mal de contrôle sur ce qui se
    825 passe dans un programme.</p>
    826 
    827 <p>Une autre chose assez amusante : C a des constantes qui sont des chaînes de
    828 caractères <i>[string constants]</i> ; que se passe-t-il si vous utilisez
    829 une constante de ce type dans une expression que vous calculez dans le
    830 débogueur ? Il faut qu'il crée une chaîne dans le programme que vous
    831 déboguez. Eh bien, c'est ce qu'il fait. Il crée un appel à
    832 <code>malloc</code> dans le programme débogué, laisse tourner
    833 <code>malloc</code>, puis reprend la main. Ainsi il trouve de façon
    834 transparente un endroit où placer la chaîne constante.</p>
    835 
    836 <p>Quand ce débogueur tournera enfin sur le vrai système GNU, j'ai l'intention
    837 d'y installer des fonctionnalités pour examiner l'ensemble des états
    838 internes du processus tournant en dessous de lui. Par exemple pour examiner
    839 l'état de la topographie mémoire, pour savoir quelles pages existent, si
    840 elles sont lisibles, si elles sont inscriptibles, et pour examiner l'état du
    841 terminal pour le programme inférieur. Il y a déjà l'ébauche d'une commande ;
    842 ce débogueur, à la différence des débogueurs sous Unix, garde l'état du
    843 terminal du débogueur et celui du programme que vous déboguez complètement
    844 séparés. De sorte que ça marche avec les programmes qui tournent en mode
    845 brut et avec ceux qui font des interruptions d'entrées dynamiques
    846 <i>[interrupt driven input]</i> ; et il y a également une commande qui vous
    847 permet d'apprendre quelque chose sur les réglages des terminaux que le
    848 programme que vous déboguez utilise réellement. Je crois qu'en général un
    849 débogueur doit vous permettre de découvrir tout qui se passe dans le
    850 processus inférieur.</p>
    851 
    852 <p>Deux autres parties centrales du système GNU existent déjà. L'un est le
    853 nouveau compilateur C et l'autre le noyau Trix.</p>
    854 
    855 <p>J'ai commencé à écrire le nouveau compilateur C cette année, au printemps
    856 dernier. J'ai finalement décidé que je devais me passer de Pastel. Ce
    857 compilateur utilise quelques idées de Pastel et quelques idées de
    858 « l'optimiseur portable de l'université d'Arizona » <i>[University of
    859 Arizona Portable Optimizer]</i>. Ce que ce dernier a d'intéressant, c'est de
    860 gérer plusieurs types différents de machines par des instructions simples et
    861 d'ensuite combiner plusieurs instructions simples dans une seule instruction
    862 compliquée quand la machine cible le permet. Pour que cela reste uniforme,
    863 ils représentent les instructions en notation algébrique. Par exemple,
    864 l'instruction <code>add</code> peut être représentée comme ceci :</p>
    865 
    866 <pre>
    867   <code>r[3]=r[2]+4</code>
    868 </pre>
    869 
    870 <p>C'est une représentation interne au compilateur de l'instruction « prendre
    871 le contenu du registre n&deg;2, y ajouter 4 et le stocker dans le registre
    872 n&deg;3 ». De cette façon vous pouvez représenter n'importe quelle
    873 instruction pour n'importe quelle machine. C'est donc comme ça qu'ils
    874 représentent toutes les instructions. Quand vient le moment d'essayer de les
    875 combiner, ils le font en substituant une expression dans une autre, ce qui
    876 donne pour l'instruction combinée une expression algébrique plus compliquée.</p>
    877 
    878 <p>Quelquefois, suivant que le résultat de la première instruction est utile
    879 par la suite, ou pas, il peut être nécessaire de faire une instruction
    880 combinée avec deux opérateurs d'affectation <i>[assignment]</i> : un pour
    881 cette valeur [il montre ???] et un autre pour cette valeur [il montre ???] à
    882 l'intérieur de laquelle est substitué ce qui provient de la deuxième
    883 instruction. Si cette valeur n'est utilisée qu'une fois, vous pouvez
    884 l'éliminer après l'avoir substituée ; elle n'a pas à entrer dans d'autres
    885 calculs. Donc c'est vraiment assez compliqué de faire ces substitutions
    886 correctement, en vérifiant bien que les instructions intermédiaires ne vont
    887 changer aucune de ces valeurs, ni rien d'autre du même genre. Quand vous
    888 gérez des choses comme l'adressage auto-incrémenté et auto-décrémenté, ce
    889 que je fais maintenant, vous avez aussi diverses vérifications à faire pour
    890 détecter les situations où l'objectif n'est pas de conserver la valeur de la
    891 variable.</p>
    892 
    893 <p>Mais après avoir vérifié tout ça, vous prenez l'expression combinée
    894 substituée et vous la passez à travers un filtre de motif <i>[pattern
    895 matcher]</i>, qui reconnaît toutes les instructions valides de la machine
    896 cible que vous avez choisie. Si le motif est reconnu, vous remplacez les
    897 deux instructions par leur instruction combinée, sinon vous les laissez
    898 tranquilles. Leur technique est de combiner de cette manière deux ou trois
    899 instructions reliées par le flux de données.</p>
    900 
    901 <p>Dans le compilateur d'Arizona, les choses sont en fait représentées par des
    902 chaînes de caractères comme ceci, et le compilateur est terriblement
    903 lent. Au début j'avais l'idée de l'utiliser et d'y apporter des
    904 modifications, mais j'ai compris que je devais le réécrire entièrement pour
    905 obtenir la rapidité que je voulais. En le réécrivant, j'ai fait en sorte de
    906 pouvoir utiliser des représentations de structure de liste pour toutes ces
    907 expressions ; des choses comme ceci :</p>
    908 
    909 <pre>
    910      <code>(set (reg 2)</code>
    911           <code>(+ (reg 2)</code>
    912              <code>(int 4)))</code>
    913 </pre>
    914 
    915 <p>Ça ressemble un peu à du Lisp mais la sémantique n'est pas tout à fait la
    916 même, parce que chaque symbole est ici identifié individuellement. Un
    917 ensemble fixe, particulier de ces symboles est défini, tous ceux dont vous
    918 avez besoin, chacun ayant une combinaison particulière de types
    919 d'arguments. Pour <code>reg</code> par exemple, c'est toujours un nombre
    920 entier, parce que les registres sont numérotés, mais <code>+</code> prend
    921 deux sous-expressions, et ainsi de suite. Et chacune de ces expressions a
    922 aussi un type de données qui, en gros, indique s'il est fixe ou flottant et
    923 combien d'octets il occupe. Ça peut être étendu pour manipuler d'autres
    924 choses si vous en avez besoin.</p>
    925 
    926 <p>Voilà comment je fais l'allocation automatique de registre : au moment où je
    927 génère initialement le code, et quand je fais la combinaison et le reste,
    928 pour toute variable qui entre théoriquement dans un registre j'alloue ce que
    929 j'appelle un pseudo-numéro de registre. C'est un nombre qui commence à
    930 seize, ou autre nombre trop élevé pour désigner un vrai registre de la
    931 machine cible. Les vrais registres sont numérotés de zéro à quinze (ou
    932 autre), et après viennent les pseudo-registres. Et là, une des dernières
    933 opérations consiste à examiner tous les pseudo-registres et à les changer en
    934 vrais registres. À nouveau, le compilateur fait un schéma des conflits, il
    935 voit quels pseudo-registres sont actifs en même temps – ils ne peuvent
    936 naturellement pas entrer dans le même vrai registre – et essaie de regrouper
    937 les pseudo-registres dans de vrais registres autant que possible, en les
    938 rangeant par ordre d'importance.</p>
    939 
    940 <p>Et à la fin, il doit corriger le code pour différents problèmes, tels qu'il
    941 peut s'en produire si des pseudo-registres ne trouvent pas place dans les
    942 vrais registres et doivent être mis à la place dans des <i>slots</i> de la
    943 pile. Sur certaines machines, des instructions peuvent devenir invalides
    944 quand ça arrive. Par exemple sur le 68000, on peut ajouter depuis un
    945 registre dans la mémoire et ajouter depuis la mémoire dans un registre mais
    946 pas ajouter depuis une adresse mémoire vers une autre. Par exemple, si lors
    947 d'une instruction ADD vous sortez vers un 68000 et que les deux éléments se
    948 retrouvent dans la mémoire, ce n'est pas valide. Donc ce dernier passage
    949 examine le tout et copie au besoin des éléments dans les registres ou en
    950 dehors des registres, pour corriger ce genre de problème.</p>
    951 
    952 <p>Des problèmes peuvent également survenir avec les registres d'index. Si vous
    953 essayez d'indexer par quelque chose, la plupart du temps le code deviendra
    954 invalide si cette quantité est en mémoire, sauf dans quelques cas, sur
    955 certaines machines où vous pouvez le faire avec un adressage
    956 indirect. Lorsque vous procédez à une autoincrémentation sur un registre
    957 d'index, vous pouvez avoir à copier la valeur dans un registre, effectuer
    958 l'instruction et ensuite recopier la valeur incrémentée dans le <i>slot</i>
    959 de mémoire où elle vit vraiment.</p>
    960 
    961 <p>Il y a encore de la marge pour pas mal de prises de tête, et je n'ai pas
    962 fini d'implémenter tout ce qui est nécessaire pour le rendre vraiment
    963 pleinement efficace.</p>
    964 
    965 <p>Ce compilateur fonctionne actuellement avec un analyseur syntaxique qui
    966 transforme efficacement le code C en arbre syntaxique, annoté d'informations
    967 sur le type de données C. Après ça, un autre passage examine cet arbre et
    968 produit du code comme celui-là [comme du Lisp]. Ensuite viennent plusieurs
    969 passages d'optimisation : un pour traiter par exemple les sauts à travers
    970 des sauts, les sauts aboutissant à des sauts, les sauts à <code>.+1</code>
    971 et tout ce qui peut être immédiatement simplifié ; puis la reconnaissance
    972 des sous-expressions communes ; puis la recherche des blocs de base et
    973 l'analyse du flux de données, afin de pouvoir indiquer pour chaque
    974 instruction quelles valeurs sont utilisées dans l'instruction et nulle part
    975 ailleurs ; et aussi la liaison entre chaque instruction et les endroits où
    976 les valeurs utilisées ont été créées. Ainsi, quand j'ai une instruction qui
    977 crée un pseudo-registre R[28] et une autre instruction plus tard qui utilise
    978 R[28], sachant que c'est le premier endroit qui utilise R[28], je fais
    979 pointer la seconde en arrière sur la première et ce pointeur est celui qui
    980 servira pour contrôler les essais de combinaison des instructions. Vous ne
    981 combinez pas des instructions adjacentes, vous combinez une instruction qui
    982 utilise une valeur avec l'instruction qui a produit cette valeur. Même s'il
    983 y a d'autres instructions au milieu, elles ne sont pas concernées ; vous
    984 avez juste à vous assurer qu'elles n'interviennent pas. Et après le
    985 combinateur vient l'allocateur dynamique de registres, et enfin quelque
    986 chose pour faire la conversion en code assembleur.</p>
    987 
    988 <p>Dans le compilateur d'Arizona, le système de reconnaissance d'instructions a
    989 été créé avec Lex. La description de votre machine est simplement un
    990 programme Lex, que Lex transforme en une fonction C pour identifier les
    991 instructions valides sous forme de chaînes. À la place, j'ai un arbre de
    992 décision particulier, créé à partir d'une description de la machine écrite
    993 dans cette syntaxe qui ressemble au Lisp. Et ce système de reconnaissance
    994 est utilisé comme sous-programme dans plusieurs parties différentes du
    995 compilateur.</p>
    996 
    997 <p>Actuellement ce compilateur fonctionne à peu près aussi rapidement que le
    998 <abbr title="Portable C Compiler">PCC</abbr>. Il fonctionne sensiblement
    999 plus rapidement si vous lui dites de ne pas faire d'allocation de registre
   1000 limite. Dans ce cas il alloue les registres de la même manière que le
   1001 PCC. Dans son mode super-limite, il fait un travail d'allocation de
   1002 registres bien meilleur que le PCC et je constate que pour le VAX, il
   1003 produit le meilleur code que j'aie vu de tous les compilateurs C sur VAX.</p>
   1004 
   1005 <p>Pour le 68000, le code n'est pas encore idéal. Je peux voir par endroits,
   1006 aux étapes précoces, se passer des choses qui ne sont pas forcément
   1007 optimales parce qu'il ne peut pas vraiment anticiper. Il a un choix à faire
   1008 à une étape précoce et il fait ce qu'il pense être le mieux. Or s'il avait
   1009 fait un autre choix, une étape ultérieure aurait été assez intelligente pour
   1010 faire encore mieux. Mais l'étape précoce ne sait pas ce que l'étape
   1011 ultérieure va faire, donc je dois retravailler certaines choses.</p>
   1012 
   1013 <p>Parfois ça lui fait libérer des registres inutilement : quand des choses
   1014 atterrissent dans la mémoire et qu'il a besoin de les copier dans des
   1015 registres, il faut qu'il trouve des registres. Cela veut dire prendre des
   1016 registres déjà alloués et virer les données temporaires des <i>slots</i> de
   1017 la pile. Évidemment, maintenant que ces choses sont dans la mémoire plutôt
   1018 que dans les registres, ça peut invalider certaines instructions, donc il
   1019 lui faut tout le temps vérifier. Parfois il pense à tort qu'il devrait
   1020 copier des choses dans les registres, alors il arrive qu'il en libère trop
   1021 et n'utilise pas tous les registres qu'il pourrait.</p>
   1022 
   1023 <p><span>[Question : Avez-vous un générateur de code pour le 32000 ?]</span>Pas
   1024 encore, mais je le répète, ce n'est pas un générateur de code dont vous avez
   1025 besoin, juste une description de machine, une liste de toutes les
   1026 instructions de la machine décrites sous cette forme [comme du Lisp]. En
   1027 fait, hormis le travail d'implémenter l'idée des contraintes qui déterminent
   1028 quels arguments peuvent aller dans les registres et dans quelles sortes de
   1029 registres ils iront – travail nécessaire pour le 68000, mais pas pour le
   1030 VAX – le portage de ce compilateur du VAX au 68000 a juste pris quelques
   1031 jours. Donc il est très facile à porter.</p>
   1032 
   1033 <p>Le compilateur produit actuellement du code assembleur et il peut produire
   1034 de l'information de débogage, soit dans le format voulu par DBX, soit dans
   1035 le format interne spécial à GDB. Je dirais que le seul travail qui reste à
   1036 faire sur ce compilateur se situe à trois niveaux. Un : Je dois ajouter un
   1037 dispositif de « profilage » comme celui des compilateurs d'Unix. Deux : Je
   1038 dois rendre les allocations de registre plus intelligentes pour ne plus voir
   1039 de choses stupides apparaître en sortie. Trois : Il y a divers bogues, des
   1040 choses qu'il ne traite pas encore correctement bien qu'il se soit compilé
   1041 correctement. Je pense que ça ne prendra que quelques mois, ensuite je le
   1042 publierai.</p>
   1043 
   1044 <p>L'autre partie importante du système existant, c'est le
   1045 noyau. <span>[Question : Une pause ?]</span> Ah, ouais, je suppose que nous
   1046 avons oublié les coupures. Pourquoi est-ce que je ne finirais pas de parler
   1047 du noyau, ce qui ne devrait pas prendre plus de cinq minutes ? Ensuite nous
   1048 pourrons faire une coupure.</p>
   1049 
   1050 <p>Donc, pour le noyau je projette d'utiliser un système appelé TRIX (cela ne
   1051 signifie rien de spécial, que je sache) qui a été développé comme projet de
   1052 recherche au MIT. Ce système est basé sur l'appel de procédure à distance
   1053 <i>[Remote Procedure Call]</i>. Les programmes sont appelés domaines. Chaque
   1054 domaine est un espace d'adressage et a diverses capacités, une capacité
   1055 n'étant rien d'autre que l'aptitude à appeler un domaine. Tout domaine peut
   1056 créer des « ports de capacité » <i>[capability ports]</i> pour l'appeler et
   1057 peut passer ces ports aux autres domaines. Et il n'y a aucune différence
   1058 entre appeler le système et appeler un autre domaine utilisateur. En fait
   1059 vous ne pouvez pas dire lequel vous avez. Ainsi il est très facile de faire
   1060 implémenter des dispositifs par d'autres programmes utilisateur. Un système
   1061 de fichiers pourrait être implémenté de façon transparente par ce moyen. Il
   1062 est également transparent de communiquer à travers des réseaux. Vous pensez
   1063 que vous appelez directement un autre domaine, mais en réalité vous appelez
   1064 le domaine du serveur réseau. Il prend l'information que vous avez donnée
   1065 dans l'appel et la passe par le réseau à un autre programme serveur qui
   1066 appelle alors le domaine auquel vous essayez de parler. Mais pour vous et
   1067 cet autre domaine, cela se passe de manière transparente.</p>
   1068 
   1069 <p>Le noyau TRIX fonctionne et il a une compatibilité limitée avec Unix, mais
   1070 il lui en faut beaucoup plus. Actuellement son système de fichiers utilise
   1071 la même structure sur disque que l'ancien système de fichiers d'Unix. Ça
   1072 rendait plus facile le débogage parce qu'ils pouvaient installer les
   1073 fichiers avec Unix et donc faire fonctionner TRIX, mais ce système de
   1074 fichiers n'a aucune des fonctionnalités que je trouve nécessaires.</p>
   1075 
   1076 <p>Voilà les fonctionnalités qui, je pense, devraient être rajoutées : des
   1077 numéros de version, la restauration des fichiers effacés, les informations
   1078 sur quand, comment et où le dossier a été sauvegardé sur bande, le
   1079 remplacement nucléaire des fichiers. Ce qui est bien dans Unix, d'après moi,
   1080 c'est que lorsqu'un fichier est en cours d'écriture, on peut déjà regarder
   1081 ce qui se passe. Ainsi par exemple, vous pouvez utiliser <code>tail</code>
   1082 pour voir où ça en est ; c'est vraiment sympa. Et si le programme se plante
   1083 après avoir écrit le fichier partiellement, vous pouvez voir ce qu'il a
   1084 fait. Tout ça c'est très bien, mais le résultat partiellement écrit ne doit
   1085 jamais être considéré comme le résultat final escompté. La version
   1086 précédente doit continuer d'être visible et utilisée par tous ceux qui
   1087 tentent de l'utiliser jusqu'à ce qu'une nouvelle version soit entièrement et
   1088 correctement réalisée. Cela signifie que la nouvelle version devra être
   1089 visible dans le système de fichiers, mais pas sous le nom qu'elle est censée
   1090 avoir. Elle devra être renommée quand c'est fini. C'est d'ailleurs ce qui se
   1091 passe avec ITS, bien que chaque programme utilisateur doive le faire de
   1092 façon explicite. Pour la compatibilité d'Unix avec les programmes
   1093 utilisateur, ça doit se passer de façon transparente.</p>
   1094 
   1095 <p>J'ai un plan bizarre et plutôt coton pour essayer de faire coller les
   1096 numéros de version avec les programmes utilisateur existant sous Unix. Il
   1097 s'agit de spécifier le nom de fichier, en laissant implicite le numéro de
   1098 version si vous le spécifiez normalement. Et si vous souhaitez le faire de
   1099 façon explicite – soit parce que vous voulez déclarer explicitement quelle
   1100 version utiliser, soit parce que vous ne voulez pas de version du tout –
   1101 vous mettez un point à son extrémité. Ainsi, si vous donnez le nom de
   1102 fichier <code>FOO</code> cela signifie « cherche les versions qui existent
   1103 pour FOO et prends la dernière ». Mais si vous dites <code>FOO.</code> cela
   1104 signifie « utilise exactement le nom FOO et aucun autre ». Si vous dites
   1105 <code>FOO.3. » cela veut dire « utilise exactement le nom FOO.3</code>, qui
   1106 naturellement est la version trois de FOO et aucune autre. En sortie, si
   1107 vous dites juste <code>FOO</code>, ça va créer une nouvelle version de FOO,
   1108 mais si vous dites <code>FOO.</code>, ça va écrire un fichier nommé
   1109 exactement « FOO ».</p>
   1110 
   1111 <p>Maintenant c'est un défi de mettre au point tous ces détails et de voir s'il
   1112 persiste des problèmes, si vraiment certains logiciels Unix se plantent bien
   1113 qu'on leur ait fourni des noms avec des points et ainsi de suite, pour
   1114 tenter de leur faire garder le même comportement.</p>
   1115 
   1116 <p>Je m'attends à ce que, si on ouvre un fichier dont le nom finit par un
   1117 point, on ouvre en fait immédiatement un fichier avec ce nom-là ; on obtient
   1118 ainsi le même comportement qu'Unix : le résultat partiellement écrit est
   1119 immédiatement visible. Tandis que, si on l'ouvre avec un nom qui ne finit
   1120 pas par un point, la nouvelle version ne doit apparaître qu'à la fermeture
   1121 du fichier, et seulement si on le ferme explicitement. S'il a été fermé
   1122 parce que la tâche a échoué ou à cause du plantage du système ou de
   1123 n'importe quoi du genre, il doit être sous un nom différent.</p>
   1124 
   1125 <p>Et cette idée peut être rapprochée de l'utilisation de l'astérisque comme
   1126 joker <i>[star matching]</i> : un nom qui ne finit pas par un point équivaut
   1127 à tous les noms sans leur numéro de version. Supposons qu'un certain
   1128 répertoire ait des fichiers comme ceci :</p>
   1129 
   1130 <pre>
   1131   <code>foo.1 foo.2 bar.8</code>
   1132 </pre>
   1133 
   1134 <p>Si je dis <code>*</code>, ça équivaut à</p>
   1135 <pre>
   1136   <code>foo bar</code>
   1137 </pre>
   1138 
   1139 <p>parce que ça prend tous les noms, les débarrasse de leurs versions et
   1140 conserve tous ceux qui sont distincts. Mais si je dis <code>*.</code>, alors
   1141 ça prend tous les noms exacts, met un point après chaque nom et cherche les
   1142 équivalences. Ça me donne tous les noms avec toutes les différentes versions
   1143 qui existent. Et de la même façon, vous pouvez voir la différence entre
   1144 <code>*.c</code> et <code>*.c.</code>. Ceci [le premier] vous donnera
   1145 essentiellement les références sans version de tous les fichiers
   1146 <code>.c</code>, tandis que cela [le second] vous donnera toutes les
   1147 versions&hellip; Bon, pas vraiment, vous devriez dire <code>*.c.*.</code>,
   1148 mais ici je ne tiens pas compte des détails.</p>
   1149 
   1150 <p>Une autre chose qu'on pourrait ajouter, qui est transparente pour
   1151 l'utilisateur et est certainement compatible, c'est la tolérance du système
   1152 de fichiers aux défaillances de la machine. À savoir, écrire toutes les
   1153 informations sur le disque dans l'ordre approprié, en s'arrangeant pour
   1154 qu'on puisse presser le bouton <kbd>Arrêt</kbd> à tout moment sans
   1155 endommager le système de fichiers du disque. C'est tellement connu que je ne
   1156 peux pas imaginer qu'on puisse le négliger. Une autre idée, c'est
   1157 d'augmenter la redondance de l'information. Je ne sais pas si je le ferai,
   1158 mais j'ai des idées sur la façon de stocker dans chaque fichier tous ses
   1159 noms, ce qui permettrait, si l'un des répertoires du disque est perdu, de le
   1160 reconstruire à partir du reste du contenu du disque.</p>
   1161 
   1162 <p>En outre, je pense savoir comment rendre possible la mise à jour nucléaire
   1163 de n'importe quelle partie d'un fichier – c'est-à-dire pouvoir remplacer un
   1164 sous-bloc particulier d'un fichier par de nouvelles données de manière que
   1165 si on essaie de le lire, on voie, ou bien les nouvelles données, ou bien les
   1166 anciennes. Je crois que je peux faire ça, sans même de verrouillage.</p>
   1167 
   1168 <p>Pour la gestion du réseau, j'ai l'intention par la suite d'implémenter
   1169 TCP/IP pour ce système. Je pense également qu'il est possible d'utiliser
   1170 KERMIT pour obtenir quelque chose de pratiquement équivalent à UUCP.</p>
   1171 
   1172 <p>Un <i>shell</i> a déjà été écrit, je crois. Il a deux modes, l'un imitant le
   1173 <i>Bourne shell</i> et l'autre imitant le <i>C-shell</i>,<a
   1174 id="TransNote6-rev" href="#TransNote6"><sup>6</sup></a> dans le même
   1175 programme. Je n'en ai pas reçu de copie et je ne sais pas combien de travail
   1176 j'aurai à faire dessus. Il y a encore beaucoup d'autres utilitaires. Un MAKE
   1177 existe, LS également ; il y a BISON qui remplace YACC et qui est déjà
   1178 distribué. Il existe quelque chose d'assez proche de LEX, mais qui n'est pas
   1179 totalement compatible et a besoin d'être retravaillé. Et en général, ce qui
   1180 reste à faire est beaucoup moins important que ce qui a été fait mais on a
   1181 toujours besoin de beaucoup de gens pour aider.</p>
   1182 
   1183 <p>Les gens me demandent toujours « Quand est-ce que ça sera fini ? »
   1184 Naturellement je ne peux pas le savoir, mais c'est une mauvaise question. Si
   1185 vous comptiez payer pour ça, je comprendrais que vous vouliez savoir
   1186 exactement ce que vous allez obtenir, et quand. Mais puisque vous n'allez
   1187 pas payer, la bonne question à vous poser est : « Comment peut-on aider pour
   1188 que ça soit fini plus tôt ? » J'ai une liste de projets dans un dossier au
   1189 MIT. Les gens qui souhaitent apporter leur aide peuvent m'envoyer un
   1190 courrier à cette adresse internet et je leur enverrai en retour une liste de
   1191 projets (je me demande si ça va marcher [en regardant la craie]). Est-ce que
   1192 c'est lisible ? C'est « RMS@GNU.ORG » (suivez juste la balle magique<a
   1193 id="TransNote7-rev" href="#TransNote7"><sup>7</sup></a>). Et maintenant
   1194 faisons une pause, et après la pause, je vais dire des choses vraiment
   1195 controversées, alors ne partez pas maintenant. Si vous partez maintenant,
   1196 vous allez rater le clou de la conférence.</p>
   1197 
   1198 <p><strong>[Ici, nous avons eu 15 minutes de pause]</strong></p>
   1199 
   1200 <p>On m'a demandé de faire connaître le moyen d'obtenir des copies des
   1201 logiciels GNU. Eh bien, un des moyens est évidemment de connaître un ami qui
   1202 en a un exemplaire. Mais si ce n'est pas le cas et que vous n'êtes pas sur
   1203 Internet pour le télécharger, alors vous pouvez toujours commander une
   1204 distribution sur bande et envoyer une certaine somme à la <i>Free Software
   1205 Foundation</i> (Fondation pour le logiciel libre). Naturellement les
   1206 programmes libres <i>[free programs]</i>, ce n'est pas la même chose que la
   1207 distribution gratuite <i>[free distribution]</i>. Je l'expliquerai en détail
   1208 plus tard.</p>
   1209 
   1210 <p>J'ai ici un manuel d'Emacs, du genre bien imprimé. Il a été phototypé puis
   1211 imprimé en offset. Bien que vous puissiez également l'imprimer vous-même à
   1212 partir des sources de la distribution d'Emacs, vous pouvez en obtenir des
   1213 copies de la <i>Free Software Foundation</i>. Vous pouvez venir après pour
   1214 le regarder. Il contient également un bulletin de commande dont vous pouvez
   1215 copier les renseignements, de même que ce dessin [de la page de garde] qui a
   1216 quelquefois du succès : [montrant du doigt un personnage chassé par RMS à
   1217 cheval sur un gnou] c'est un accapareur de logiciel effrayé, je parlerai de
   1218 lui dans un moment.</p>
   1219 
   1220 <p>Le logiciel est un phénomène relativement nouveau. Les gens ont commencé à
   1221 distribuer du logiciel il y a peut-être trente ans. Il y a seulement vingt
   1222 ans à peu près que quelqu'un a eu l'idée de faire du commerce avec
   1223 ça. C'était un secteur sans a-priori sur la façon de faire ou sur les droits
   1224 que l'on pouvait avoir, mais on avait quelques idées sur les autres domaines
   1225 de la vie auxquels on pouvait emprunter leurs traditions, par analogie.</p>
   1226 
   1227 <p>Une analogie appréciée par un bon nombre de professeurs en Europe est celle
   1228 des mathématiques. Un programme est une sorte de grande formule. Par
   1229 tradition, personne ne peut posséder une formule mathématique. N'importe qui
   1230 peut la copier et s'en servir.</p>
   1231 
   1232 <p>L'analogie qui a le plus de sens pour les gens ordinaires, c'est celle des
   1233 recettes. Si vous y réfléchissez, ce qui ressemble le plus à un programme
   1234 dans la vie ordinaire, c'est une recette – des instructions pour faire
   1235 quelque chose. La différence, c'est qu'une recette est suivie par une
   1236 personne, pas par une machine de façon automatisée. Il est vrai que pour la
   1237 recette il n'y a pas de différence entre le code source et le code objet,
   1238 mais cela reste ce qu'il y a de plus proche. Et personne n'est autorisé à
   1239 posséder une recette.</p>
   1240 
   1241 <p>Mais l'analogie qui a été choisie fut celle des livres, sur lesquels
   1242 s'applique le copyright. Pourquoi ce choix a-t-il été fait ? Parce que les
   1243 gens qui avaient le plus à gagner à faire ce choix particulier ont été
   1244 autorisés à prendre la décision. Les gens qui écrivaient les programmes ont
   1245 eu le droit de décider, pas ceux qui les utilisaient. Cela a été fait d'une
   1246 façon totalement égoïste, en transformant le domaine de la programmation en
   1247 quelque chose de sinistre.</p>
   1248 
   1249 <p>Quand je suis entré dans ce secteur d'activité, quand j'ai commencé à
   1250 travailler au MIT en 1971, l'idée que les programmes que nous développions
   1251 pourraient ne pas être partagés n'était même pas discutée. Même chose à
   1252 Stanford et à <abbr title="Carnegie Mellon University">CMU</abbr>, et
   1253 partout ailleurs y compris chez Digital. À cette époque-là, le système
   1254 d'exploitation de Digital était libre. J'en ai de temps en temps récupéré
   1255 des morceaux, comme un assembleur multi-compatible pour PDP-11 que j'ai
   1256 porté sur ITS et auquel j'ai ajouté de nombreuses fonctionnalités. Il n'y
   1257 avait aucun copyright sur ce programme.</p>
   1258 
   1259 <p>C'est seulement vers la fin des années 70 que ça a commencé à
   1260 changer. J'étais extrêmement marqué par l'esprit de partage que nous avions
   1261 jusque-là. Nous espérions faire quelque chose d'utile et nous étions heureux
   1262 si les gens pouvaient s'en servir. Ainsi, quand j'ai développé le premier
   1263 Emacs et que les gens ont commencé à vouloir l'utiliser en dehors du MIT,
   1264 j'ai dit qu'il appartenait à la « communauté » Emacs. Pour utiliser Emacs
   1265 vous deviez être membre de la communauté et ça voulait dire que vous deviez
   1266 lui apporter en contribution toutes les améliorations que vous aviez
   1267 faites. Toutes les améliorations de l'Emacs original devaient m'être
   1268 renvoyées pour que je puisse les incorporer à de nouvelles versions d'Emacs,
   1269 de manière que chacun dans la communauté puisse en bénéficier.</p>
   1270 
   1271 <p>Mais ça a commencé à se dégrader quand Scribe a été développé à CMU, puis
   1272 vendu à une entreprise. Cela a dérouté beaucoup d'entre nous, dans de
   1273 nombreuses universités, parce que nous avons vu quelle tentation c'était
   1274 pour chacun et à quel point il était profitable d'être peu coopératif. Et
   1275 ceux d'entre nous qui y croyaient toujours n'avaient aucune arme pour tenter
   1276 de convaincre les autres de coopérer avec nous. Sans aucun doute, les uns
   1277 après les autres, ils allaient déserter et cesser de coopérer avec le reste
   1278 de la société, jusqu'à ce qu'il ne reste plus que ceux d'entre nous qui
   1279 avaient des consciences très fortes. Et c'est ce qui s'est passé.</p>
   1280 
   1281 <p>La programmation est maintenant devenue un domaine sinistre, où chacun pense
   1282 de façon cynique à combien il va gagner à ne pas être sympa avec les autres
   1283 programmeurs, ni avec les utilisateurs.</p>
   1284 
   1285 <p>Je veux montrer que la pratique de posséder le logiciel est à la fois
   1286 matériellement inutile, moralement nuisible à la société, et malfaisante,
   1287 ces trois choses étant interdépendantes. C'est moralement nocif parce que ça
   1288 engage chaque membre de la société qui entre en contact avec l'informatique
   1289 dans une pratique qui est manifestement du gaspillage pour les autres. Et
   1290 chaque fois que vous faites pour votre bien personnel une chose dont savez
   1291 qu'elle fait plus de mal aux autres qu'elle ne vous aide, vous êtes obligé
   1292 de devenir cynique pour pouvoir en supporter la pensée. Et c'est malfaisant
   1293 parce que ça gaspille délibérément le travail effectué sur la société, en
   1294 affaiblissant le lien social.</p>
   1295 
   1296 <p>D'abord je veux expliquer les différentes nuisances causées par les
   1297 tentatives de posséder le logiciel ou, plus généralement, toute autre
   1298 information utile, puis je m'appliquerai à réfuter les arguments des
   1299 défenseurs de cette pratique, ensuite je voudrais parler de la façon de
   1300 combattre ce phénomène et dire comment je m'y prends moi-même.</p>
   1301 
   1302 <p>L'idée de posséder l'information est nocive à trois niveaux
   1303 différents. Matériellement nocive à trois niveaux différents. Et à chaque
   1304 type de nocivité matérielle correspond une nocivité morale.</p>
   1305 
   1306 <p>Au premier niveau, c'est juste que ça décourage l'utilisation du
   1307 programme. Il y a moins de gens qui utilisent le programme, mais ça ne
   1308 demande pas moins de travail pour l'élaborer. Quand on met un prix sur
   1309 l'utilisation d'un programme en tant qu'« incitation », c'est le mot que ces
   1310 accapareurs de logiciel aiment à employer, c'est une incitation pour les
   1311 gens à ne pas l'utiliser et c'est du gâchis. Si par exemple il y a deux fois
   1312 moins de gens qui utilisent le programme à cause de son prix, le programme a
   1313 été à moitié gaspillé. La même quantité de travail a produit moitié moins de
   1314 richesse.</p>
   1315 
   1316 <p>En fait, vous n'avez rien de spécial à faire pour qu'un programme soit
   1317 diffusé vers tous ceux qui veulent l'utiliser, parce qu'ils peuvent
   1318 parfaitement le copier eux-mêmes et qu'il finit par atteindre tout le
   1319 monde. Tout ce que vous avez à faire, après avoir écrit le programme, c'est
   1320 de vous asseoir tranquillement et de laisser les gens faire ce qu'ils
   1321 veulent. Mais ce n'est pas ce qu'il se passe. Au lieu de ça, quelqu'un
   1322 essaye délibérément d'entraver le partage du programme. Mais il ne tente pas
   1323 simplement de l'entraver, il essaie de pousser les autres à l'aider. Toutes
   1324 les fois qu'un utilisateur signe un accord de confidentialité, c'est comme
   1325 s'il trahissait ses camarades utilisateurs. Au lieu de suivre la règle d'or
   1326 et de dire « J'apprécie ce programme, mon voisin le voudrait aussi, je veux
   1327 que nous l'ayons tous les deux », il dit « Ouais, donnez-le-moi. Au diable
   1328 mon voisin ! Je vous aiderai à le maintenir hors de sa portée. Ne le donnez
   1329 qu'à moi ! » C'est cet état d'esprit qui est source de nuisance morale,
   1330 cette attitude qui consiste à dire : « Au diable mes voisins, donnez-m'en, à
   1331 MOI, une copie. »</p>
   1332 
   1333 <p>Après être tombé sur des gens qui disaient qu'ils ne me laisseraient pas
   1334 avoir de copies parce qu'ils avaient signé un accord de confidentialité,
   1335 quand quelqu'un me demandait de signer un truc comme ça je savais que
   1336 c'était mal. Je ne pouvais pas faire à quelqu'un d'autre ce qui m'avait tant
   1337 exaspéré quand on me l'avait fait à moi.</p>
   1338 
   1339 <p>Mais ce n'est que le premier niveau de nocivité. Le deuxième niveau se
   1340 manifeste quand les gens veulent modifier le programme, parce qu'un
   1341 programme ne satisfait jamais vraiment tous ceux qui voudraient
   1342 l'utiliser. Tout comme ils aiment varier les recettes, disons, en mettant
   1343 moins de sel – ou peut-être aiment-ils rajouter des poivrons verts – les
   1344 gens doivent également pouvoir modifier les programmes pour obtenir les
   1345 résultats dont ils ont besoin.</p>
   1346 
   1347 <p>Les propriétaires de logiciel ne s'inquiètent pas vraiment de savoir si les
   1348 gens peuvent modifier le programme ou non, mais les en empêcher leur est
   1349 utile pour parvenir à leurs fins. Généralement, quand un logiciel est
   1350 propriétaire, vous ne pouvez pas obtenir les sources ; vous ne pouvez pas le
   1351 modifier et c'est un grand gaspillage de travail pour les programmeurs,
   1352 aussi bien qu'une grande frustration pour les utilisateurs. Par exemple, une
   1353 amie m'a dit qu'elle avait travaillé pendant de nombreux mois dans une
   1354 banque où elle était programmeuse pour écrire un nouveau programme. Or il y
   1355 avait un programme disponible dans le commerce qui était presque bon, mais
   1356 qui n'était pas tout à fait ce dont ils avaient besoin. Et tel quel, il leur
   1357 était inutile. Cela ne demandait probablement qu'un changement minime, mais
   1358 comme les sources de ce programme n'étaient pas disponibles c'était
   1359 impossible. Elle a dû repartir de zéro et perdre beaucoup de temps. Et nous
   1360 ne pouvons que spéculer sur la fraction de l'ensemble des programmeurs,
   1361 partout dans le monde, qui perdent leur temps de cette façon.</p>
   1362 
   1363 <p>Il y a aussi le cas où un programme est adéquat, mais peu pratique. Par
   1364 exemple, la première fois que nous avons eu une imprimante graphique au MIT,
   1365 nous avons écrit le logiciel nous-mêmes et nous avons installé un bon nombre
   1366 d'utilitaires sympathiques. Par exemple, il vous envoyait un message quand
   1367 votre tâche d'impression était finie, ou quand l'imprimante manquait de
   1368 papier et que vous aviez une tâche en file d'attente, et pas mal d'autres
   1369 choses qui correspondaient à ce que nous voulions. Puis on nous a donné une
   1370 imprimante graphique beaucoup plus intéressante, une des premières
   1371 imprimantes laser, mais le logiciel était fourni par Xerox et nous ne
   1372 pouvions pas le modifier. Ils n'acceptaient pas d'intégrer ces
   1373 fonctionnalités et nous ne pouvions pas le faire nous-même. Aussi avons-nous
   1374 dû nous contenter de choses qui ne « fonctionnaient qu'à moitié ». Et
   1375 c'était très frustrant de savoir que nous étions prêts à arranger ça,
   1376 désireux et capables de le faire, mais que nous n'en avions pas le droit. On
   1377 sabotait notre travail.</p>
   1378 
   1379 <p>Et il y a tous les gens qui utilisent des ordinateurs et qui disent que les
   1380 ordinateurs sont un mystère pour eux. Ils ne savent pas comment ça
   1381 fonctionne. Mais comment pourraient-ils le savoir ? Ils ne peuvent pas lire
   1382 les programmes qu'ils utilisent. La seule manière pour les gens d'apprendre
   1383 comment les programmes doivent être écrits ou comment ils font ce qu'ils
   1384 font, c'est de lire le code source.</p>
   1385 
   1386 <p>Aussi peut-on se demander si l'idée que l'utilisateur voit l'ordinateur
   1387 comme un simple outil ne serait pas une prophétie autoréalisatrice, une
   1388 conséquence de la pratique de garder secret le code source.</p>
   1389 
   1390 <p>La nocivité morale qui correspond à ce type de nocivité matérielle affecte
   1391 le sentiment d'autosuffisance. Quand une personne passe une bonne partie de
   1392 son temps à utiliser un système informatique, la configuration de ce système
   1393 devient la cité dans laquelle elle vit. L'aménagement de nos maisons et la
   1394 disposition des meubles déterminent comment nous y vivons, il en est de même
   1395 pour le système informatique que nous utilisons. Si nous ne pouvons pas le
   1396 modifier pour qu'il nous convienne, nos vies sont alors vraiment sous le
   1397 contrôle des autres, et d'une certaine manière la personne qui le constate
   1398 en est démoralisée : « Ça ne sert à rien d'essayer de changer ça, ce ne sera
   1399 jamais bien. Ce n'est pas la peine de s'embêter. Je vais juste faire mes
   1400 heures et&hellip; quand j'aurai fini, je m'en irai en tâchant de ne plus y
   1401 penser. » Ce genre d'état d'esprit, ce manque d'enthousiasme, est le
   1402 résultat obtenu quand on n'est pas autorisé à améliorer les choses alors
   1403 qu'on serait prêt à montrer de l'esprit civique.</p>
   1404 
   1405 <p>Le troisième niveau de nocivité se situe dans l'interaction entre les
   1406 développeurs de logiciel eux-mêmes, car tout domaine de connaissance avance
   1407 davantage quand les gens peuvent construire à partir du travail des
   1408 autres. Mais l'appropriation de l'information par une personne est
   1409 explicitement conçue pour empêcher toutes les autres de faire cela. Si les
   1410 gens pouvaient construire à partir du travail des autres, alors la propriété
   1411 deviendrait difficile à cerner, c'est pourquoi ils s'assurent que chaque
   1412 nouveau venu dans le domaine commence au début, ce qui ralentit
   1413 considérablement le progrès.</p>
   1414 
   1415 <p>C'est ce que nous pouvons constater : combien y a-t-il de tableurs créés par
   1416 des entreprises différentes sans qu'aucune ait profité de ce qui avait été
   1417 fait auparavant ? Oui, c'est vrai, le premier tableur qui a été écrit
   1418 n'était pas parfait. Il ne fonctionnait probablement que sur certains types
   1419 d'ordinateurs et il ne faisait pas les choses de la meilleure manière
   1420 possible. Donc il y avait diverses raisons pour lesquelles certaines
   1421 personnes voulaient en réécrire des morceaux. Mais si elles avaient
   1422 seulement dû réécrire les morceaux qu'elles voulaient vraiment améliorer, ça
   1423 leur aurait donné beaucoup moins de travail. Vous pouvez très bien voir
   1424 comment améliorer un des aspects d'un système, mais ne pas voir comment en
   1425 améliorer un autre ; en fait cela pourrait vous être très difficile de le
   1426 faire aussi bien. Si vous pouviez prendre la partie que vous trouvez bien et
   1427 refaire seulement le morceau pour lequel vous avez des idées, vous pourriez
   1428 avoir un système en tout point meilleur, avec beaucoup moins de travail que
   1429 cela n'en prendrait de le réécrire entièrement. Nous savons tous qu'il peut
   1430 être avantageux de réécrire un système complètement, mais à condition de
   1431 pouvoir lire l'ancien d'abord.</p>
   1432 
   1433 <p>Ainsi, dans le domaine de la programmation, les gens ont développé une
   1434 manière de perdre une bonne partie de leur temps, créant de ce fait un
   1435 apparent besoin en programmeurs, plus important qu'en réalité. Pourquoi y
   1436 a-t-il un manque de programmeurs ? Parce qu'avec la propriété intellectuelle
   1437 ils se sont organisés pour gaspiller la moitié de leur travail ; il semble
   1438 ainsi que nous en ayons besoin de deux fois plus. Quand les gens se tournent
   1439 vers le système de la propriété intellectuelle en disant « Regardez les
   1440 belles statistiques de l'emploi, regardez l'ampleur de cette industrie »,
   1441 cela ne prouve qu'une chose : l'ampleur du gaspillage de temps et
   1442 d'argent. Quand ils parlent de chercher des moyens d'améliorer la
   1443 productivité du programmeur, ils sont ravis de le faire si cela implique des
   1444 outils plus évolués, mais si cela implique de se débarrasser de choses
   1445 précises qui sont faites pour la réduire, ils sont contre – puisque cela
   1446 réduirait le nombre d'emplois en programmation. Il y a comme une
   1447 contradiction interne là-dedans.</p>
   1448 
   1449 <p>Et la nocivité morale qui correspond à ce niveau de nocivité matérielle
   1450 affecte l'esprit de coopération scientifique, qui autrefois était si fort
   1451 que même les scientifiques de pays en guerre continuaient de coopérer, parce
   1452 qu'ils savaient que ce qu'ils faisaient n'avait rien à voir avec la
   1453 guerre. C'était uniquement pour le bénéfice à long terme de l'humanité. De
   1454 nos jours, personne ne se préoccupe plus de ça.</p>
   1455 
   1456 <p>Pour vous représenter ce que c'est que de faire obstacle à l'utilisation
   1457 d'un programme, imaginez un sandwich que vous pourriez manger mais qui ne
   1458 serait pas consommé. Vous pourriez le manger, une autre personne pourrait le
   1459 manger, le même sandwich, autant de fois qu'elle voudrait, et il resterait
   1460 toujours aussi nourrissant qu'à l'origine.</p>
   1461 
   1462 <p>La meilleure chose à faire, ce que nous devrions faire avec ce sandwich,
   1463 serait de l'amener partout où les gens ont faim ; de l'amener à autant de
   1464 bouches que possible, de sorte qu'il alimente autant de personnes que
   1465 possible. Il est certain que nous ne devons pas mettre de prix sur ce
   1466 sandwich, parce que sinon les gens ne pourraient pas se permettre de le
   1467 manger et il serait gaspillé.</p>
   1468 
   1469 <p>Un programme est comme ce sandwich, mais en mieux, parce qu'il peut être
   1470 mangé en même temps dans de nombreux endroits différents, utilisé par des
   1471 personnes différentes les unes après les autres. C'est comme si ce sandwich
   1472 suffisait pour alimenter tout le monde, partout, pour toujours, mais que ça
   1473 lui était interdit parce que quelqu'un croyait qu'il devait le posséder.</p>
   1474 
   1475 <p>Les gens qui croient pouvoir posséder des programmes proposent généralement
   1476 deux types d'arguments. Le premier c'est : « Je l'ai écrit, c'est l'enfant
   1477 de mon esprit, mon cœur, mon âme y est. Comment peut-on me l'enlever ? Où
   1478 qu'il aille, il est à moi, à moi, À MOI !! » Très bien, mais il est curieux
   1479 tout de même que la plupart d'entre eux signent des accords stipulant qu'il
   1480 appartient à l'entreprise pour laquelle ils travaillent.</p>
   1481 
   1482 <p>Aussi je crois que cela fait partie des choses dont vous pouvez facilement
   1483 vous persuader qu'elles sont importantes, mais tout aussi aisément, qu'elles
   1484 n'ont aucune importance.</p>
   1485 
   1486 <p>Habituellement, ces personnes usent de cet argument pour exiger le droit de
   1487 contrôler jusqu'à la façon dont les gens peuvent modifier le programme. Ils
   1488 disent : « Personne ne doit pouvoir gâcher mon œuvre d'art. » Bien, imaginez
   1489 que l'inventeur du plat que vous projetez de cuisiner ait le droit de
   1490 contrôler la façon dont vous le préparez parce que c'est son œuvre
   1491 d'art. Vous voulez enlever du sel, mais il dit : « Oh, non! J'ai conçu ce
   1492 plat et il doit y avoir beaucoup de sel ! » – « Mais mon médecin m'a dit
   1493 qu'il n'était pas bon pour moi de manger salé. Que puis-je faire ? »</p>
   1494 
   1495 <p>La personne qui se sert du programme est évidemment bien plus près de
   1496 l'événement. L'utilisation du programme l'affecte directement tandis que
   1497 l'auteur a seulement une sorte de relation abstraite avec cette
   1498 utilisation. Et donc, pour donner aux gens autant de contrôle que possible
   1499 sur leurs propres vies, c'est l'utilisateur qui doit décider.</p>
   1500 
   1501 <p>Le deuxième argument est économique. « Comment les gens seront-ils payés
   1502 pour programmer ? » disent-ils, et il y a un peu de vrai là-dedans. Mais une
   1503 bonne part de ce qu'ils disent est confus. Et la confusion vient de ce qu'il
   1504 n'est pas du tout pareil de dire « Si nous voulons avoir beaucoup de gens
   1505 pour programmer, nous devons nous assurer qu'ils n'auront pas besoin de
   1506 gagner leur vie d'une autre manière » d'une part, et d'autre part de dire
   1507 « Nous devons conserver le système actuel, nous devons devenir riches en
   1508 programmant. » Il y a une grande différence entre juste percevoir un salaire
   1509 pour vivre et se faire du fric comme le font les programmeurs de nos jours,
   1510 du moins aux États-Unis. Ils disent toujours : « Comment vais-je manger ? »
   1511 Mais le problème n'est pas vraiment de savoir « comment il va manger » mais
   1512 « comment il va manger des sushis ». Ou bien : « Comment ferai-je pour avoir
   1513 un toit au-dessus de la tête ? » Mais le vrai problème est : « Comment
   1514 pourra-t-il se payer un appartement dans une copropriété ? »</p>
   1515 
   1516 <p>Le système actuel a été choisi par les gens qui investissent dans le
   1517 développement logiciel parce que ça leur donne la possibilité de se faire le
   1518 plus d'argent possible, et non parce que c'est le seul moyen possible de
   1519 récolter des fonds pour soutenir l'effort de développement d'un système. En
   1520 fait, aussi récemment qu'il y a dix ou quinze ans, il était courant de
   1521 soutenir le développement logiciel autrement. Par exemple, les systèmes
   1522 d'exploitation de Digital qui étaient libres, même au début des années 70,
   1523 ont été développés par des personnes payées pour ce travail. Beaucoup de
   1524 programmes utiles ont été développés dans les universités. De nos jours ces
   1525 programmes sont souvent vendus, mais il y a quinze ans ils étaient la
   1526 plupart du temps gratuits, et pourtant les gens étaient payés pour leur
   1527 travail.</p>
   1528 
   1529 <p>Lorsque vous avez quelque chose comme un programme, comme un sandwich infini
   1530 ou comme une route qui ne doit être construite qu'une fois, sachant qu'une
   1531 fois construite il importe assez peu de savoir combien de fois vous
   1532 l'utilisez, sachant que cela ne coûte rien de l'utiliser, il est
   1533 généralement bien mieux de ne pas mettre de coût sur cette utilisation. Et
   1534 il y a des tas de choses comme ça que nous développons aujourd'hui, en
   1535 payant des gens pour le faire. Par exemple, toutes ces rues par
   1536 là-bas. Autant il est facile de trouver des gens qui programmeront sans être
   1537 payés, autant il est vraiment impossible d'en trouver qui construiront des
   1538 routes sans être payés. La construction des routes n'est pas un travail
   1539 créatif ni amusant comme la programmation mais il y a plein de rues par
   1540 là-bas. Nous arrivons parfaitement à trouver de quoi payer ces gens et c'est
   1541 bien mieux comme ça que d'avoir dit : « Laissons des entreprises privées
   1542 construire des routes et installer des cabines de péage, et vous paierez un
   1543 péage à chaque coin de rue. Alors les entreprises qui auront sélectionné les
   1544 bons endroits pour mettre leurs routes feront des profits et les autres
   1545 feront faillite. »</p>
   1546 
   1547 <p>Il se produit une chose amusante chaque fois que quelqu'un propose une
   1548 manière de faire de l'argent en accaparant quelque chose. Jusque-là, vous
   1549 aviez probablement un bon nombre de gens vraiment enthousiastes et désireux
   1550 de travailler dans ce domaine. Et la seule question qui se posait était :
   1551 « Comment peuvent-ils trouver un moyen d'existence ? » Si nous pensons aux
   1552 mathématiciens par exemple, il y a beaucoup plus de gens qui veulent être
   1553 des mathématiciens purs que de financement pour que tout le monde le
   1554 devienne. Et même lorsqu'ils obtiennent des fonds, ils n'en obtiennent pas
   1555 beaucoup. Et ces gens ne vivent pas bien. Pour les musiciens, c'est encore
   1556 pire. J'ai vu des statistiques sur ce que gagne le musicien moyen, le péquin
   1557 moyen qui consacre la majeure partie de son temps à tenter de devenir
   1558 musicien dans le Massachusetts ; c'est quelque chose comme la moitié du
   1559 revenu moyen, ou moins. C'est à peine assez pour vivre, c'est dur. Mais il y
   1560 en a un bon nombre qui essaient. Et puis, d'une façon ou d'une autre, quand
   1561 il devient possible d'être très bien payé pour faire quelque chose,
   1562 généralement tous ces gens disparaissent. Et on commence à dire : « Personne
   1563 ne le fera à moins d'être payé aussi bien. »</p>
   1564 
   1565 <p>J'ai vu cela se produire dans le domaine de la programmation. Les mêmes qui
   1566 travaillaient au labo d'IA en étant très peu payés et qui trouvaient ça très
   1567 bien, aujourd'hui n'imagineraient pas travailler pour moins de cinquante
   1568 mille dollars par an. Que s'est-il passé ? Quand vous faites miroiter aux
   1569 gens la possibilité de faire de l'argent, quand ils en voient d'autres faire
   1570 le même travail en étant payés très cher, ils estiment devoir obtenir la
   1571 même chose et personne n'est alors disposé à continuer comme avant. Il est
   1572 facile, une fois que cela s'est produit, de penser que la seule option est
   1573 de payer les gens énormément. Mais ce n'est pas vrai. Si la possibilité de
   1574 faire de l'argent n'existait pas, vous auriez des gens qui accepteraient de
   1575 le faire pour pas grand-chose, surtout si c'était créatif et amusant.</p>
   1576 
   1577 <p>J'ai donc vu ce monde unique du labo d'IA se faire détruire, et la vente du
   1578 logiciel faire partie intégrante de ce qui l'a détruit. J'ai vu également,
   1579 comme je l'ai expliqué, qu'on a besoin de logiciel libre pour retrouver une
   1580 communauté comme celle-là. Mais en y réfléchissant davantage, j'ai compris
   1581 en quoi l'accaparement du logiciel fait du mal à l'ensemble de la société
   1582 – plus particulièrement en poussant les gens à trahir leurs voisins, ce qui
   1583 entraîne l'affaiblissement du lien social ; ce même état d'esprit qui
   1584 conduit les gens à voir quelqu'un se faire poignarder dans la rue et à
   1585 n'avertir personne ; cet état d'esprit dont nous pouvons voir tant
   1586 d'entreprises faire preuve autour de nous. Il m'est apparu clairement que
   1587 j'avais un choix à faire. Je pouvais faire partie de ce monde et me sentir
   1588 malheureux de voir ce que je faisais de ma vie, ou je pouvais décider de le
   1589 combattre. Alors j'ai décidé de le combattre. J'ai consacré ma carrière à
   1590 tenter de reconstruire la communauté de partage du logiciel, à tenter de
   1591 mettre un terme au phénomène d'accaparement d'information utile à tous. Et
   1592 le système GNU est un moyen à cet effet. C'est un moyen technique à des fins
   1593 sociales. Avec le système GNU, j'espère vacciner les utilisateurs contre la
   1594 menace des accapareurs de logiciel.</p>
   1595 
   1596 <p>En ce moment, les accapareurs réclament essentiellement le pouvoir de rendre
   1597 inutile l'ordinateur personnel. Il y a une cinquantaine d'années, il y avait
   1598 des gens aux USA, de la Mafia, qui entraient dans les magasins et les bars,
   1599 surtout les bars quand les bars étaient hors-la-loi, évidemment. Une fois
   1600 entrés, ils disaient : « Pas mal d'endroits par ici ont brûlé
   1601 dernièrement. Vous ne voudriez pas que le vôtre subisse le même sort ? Eh
   1602 bien, nous pouvons vous protéger contre les incendies, vous avez juste à
   1603 nous payer mille dollars par mois et nous ferons en sorte qu'il n'y ait pas
   1604 le feu. » Et ça s'appelait « le racket de protection ». Aujourd'hui nous en
   1605 sommes à quelque chose près à ce qu'une personne nous dise : « Vous avez un
   1606 joli ordinateur ici et vous utilisez quelques programmes. Eh bien, si vous
   1607 ne voulez pas que ces programmes disparaissent, si vous ne voulez pas que la
   1608 police vous poursuive, vous feriez mieux de me payer mille dollars et je
   1609 vous donnerai un exemplaire de ce programme avec une licence. » Et ça
   1610 s'appelle « le racket de protection du logiciel ».</p>
   1611 
   1612 <p>En réalité, ils ne font que mettre des bâtons dans les roues de tous ceux
   1613 qui font ce qui doit être fait, mais ils se prétendent à eux-mêmes, et
   1614 veulent nous faire croire, qu'ils ont une fonction utile. Bon. Ce que
   1615 j'espère, c'est que le jour où ce type de la Mafia du logiciel entrera et
   1616 dira « Vous voulez que ces programmes disparaissent de votre ordinateur ? »
   1617 l'utilisateur puisse répondre « Je n'ai plus peur de vous. J'ai le logiciel
   1618 libre GNU et il n'y a rien que vous puissiez me faire désormais. »</p>
   1619 
   1620 <p>Quelquefois, les gens essaient de se justifier de posséder le logiciel en
   1621 avançant l'idée qu'il faut donner aux gens des incitations pour produire des
   1622 choses. Je suis d'accord avec la notion d'entreprise privée en général et
   1623 avec l'espoir de gagner de l'argent en produisant des choses que d'autres
   1624 apprécient, mais ça se détraque dans le domaine du logiciel
   1625 actuellement. Produire un programme propriétaire, ce n'est pas la même
   1626 contribution à la société que produire ce même programme et le laisser
   1627 libre. Parce que l'écriture du programme est juste une contribution
   1628 potentielle à la société. La vraie contribution à la richesse de la société
   1629 se fait seulement quand le programme est utilisé. Et si vous empêchez
   1630 l'utilisation du programme, la contribution ne se fait pas vraiment. La
   1631 contribution dont la société a besoin ne réside pas dans ces programmes
   1632 propriétaires que tout le monde est tellement incité à faire. La
   1633 contribution que nous voulons vraiment est celle du logiciel libre. Notre
   1634 société se détraque parce qu'elle donne aux gens des incitations pour faire
   1635 ce qui n'est pas très utile et aucune pour faire ce qui est utile. Ainsi
   1636 l'idée sur quoi repose l'entreprise privée n'est pas mise en application. On
   1637 pourrait même dire que la société est névrotique, car après tout, quand une
   1638 personne encourage dans le comportement des autres ce qui n'est pas bon pour
   1639 elle, on appelle ça une névrose. C'est comme cela que se comporte notre
   1640 société, en encourageant les programmeurs à faire des choses qui ne sont pas
   1641 bonnes pour elle.</p>
   1642 
   1643 <p>Je sors un peu du commun. Je préfère croire que je suis un bon membre de la
   1644 société et que je contribue à quelque chose plutôt que de sentir que je
   1645 l'arnaque avec succès, c'est pourquoi j'ai décidé de faire ce que j'ai
   1646 fait. Mais cela tracasse chacun, au moins un petit peu, d'avoir le sentiment
   1647 d'être payé pour faire ce qui n'est pas vraiment utile. Par conséquent,
   1648 cessons de défendre les incitations à faire ce qui est mauvais et essayons
   1649 au moins de proposer des arrangements pour inciter les gens à faire ce qui
   1650 est bon, c'est-à-dire du logiciel libre.</p>
   1651 
   1652 <p>Merci.</p>
   1653 
   1654 <p><strong>[Après ça, RMS a répondu à des questions pendant environ une
   1655 heure. Je n'en ai inclus que quelques-unes dans cette version. La bande
   1656 était mauvaise et je n'ai pas eu le temps de faire le travail nécessaire sur
   1657 la totalité]</strong></p>
   1658 
   1659 <dl>
   1660 <dt><b>Question :</b> Est-ce que quelqu'un a tenté de vous causer des ennuis ?</dt>
   1661 
   1662 <dd><p><b>Réponse :</b> La seule fois où l'on a tenté de me causer des ennuis,
   1663 c'était ces propriétaires, ces prétendus propriétaires, autoproclamés, de
   1664 Gosling Emacs. Hormis le fait qu'ils n'avaient aucune raison de le faire,
   1665 ils ne pouvaient pas faire grand-chose. D'ailleurs, je voudrais attirer
   1666 l'attention de tout le monde sur la façon dont les gens se servent du
   1667 langage pour vous inciter à penser d'une certaine façon et pas
   1668 autrement. Une grande part de la terminologie actuelle dans ce domaine a été
   1669 choisie par les propriétaires autoproclamés de logiciel pour vous inciter à
   1670 assimiler le logiciel à des biens matériels et à oublier les
   1671 différences. L'exemple le plus flagrant en est le terme « pirate ». Refusez
   1672 s'il vous plaît d'utiliser le terme « pirate » pour décrire quelqu'un qui
   1673 souhaite partager du logiciel avec son voisin comme tout bon citoyen.</p>
   1674 
   1675 <p>J'ai oublié de vous dire ceci : La notion de copyright est apparue après
   1676 l'invention de la presse à imprimer. Dans les temps anciens, les auteurs se
   1677 copiaient les uns les autres librement et ceci n'était pas considéré comme
   1678 un mal. Et c'était même très utile : certaines œuvres originales n'ont pu
   1679 survivre, bien que de manière fragmentaire, que grâce à des citations
   1680 extensives dans d'autres œuvres qui, elles, ont survécu.</p>
   1681 
   1682 <p>C'est parce que la copie des livres se faisait à l'unité ; il était dix fois
   1683 plus difficile d'en faire dix copies qu'une seule. Puis la presse à imprimer
   1684 a été inventée. Ceci n'a pas empêché les gens de copier les livres à la
   1685 main, mais comparée à l'impression, la copie manuelle était si pénible
   1686 qu'elle aurait aussi bien pu être impossible.</p>
   1687 
   1688 <p>Quand les livres ont pu être produits en masse, le copyright commença à
   1689 avoir un sens. De plus, celui-ci ne confisquait pas la liberté des lecteurs
   1690 ordinaires, puisqu'en tant que membre du public qui n'avait pas de presse,
   1691 vous ne pouviez pas copier de livre de toute façon. Le copyright ne vous
   1692 privait donc d'aucune liberté. Il a été inventé, et avait du sens
   1693 moralement, à cause d'un changement technologique. Or aujourd'hui le
   1694 changement inverse se produit. La copie individuelle d'information se fait
   1695 de mieux en mieux et nous pouvons voir que la finalité du progrès
   1696 technologique est de permettre de copier n'importe quel genre
   1697 d'information&hellip; <span>[coupure due à l'inversion de la bande]</span>.</p>
   1698 
   1699 <p>Ainsi nous retournons à la même situation que dans le monde antique où le
   1700 copyright n'avait aucun sens.</p>
   1701 
   1702 <p>Considérons notre concept de propriété. Il a son origine dans les objets
   1703 matériels. Ces derniers satisfont la loi de conservation, à peu de choses
   1704 près. Oui c'est vrai, je peux casser une craie en deux, mais ce n'est pas
   1705 ça ; elle va s'user, se « consommer ». Mais fondamentalement ceci est une
   1706 chaise [pointant une chaise du doigt]. Je ne peux pas simplement claquer des
   1707 doigts et en avoir deux. La seule manière d'en avoir une deuxième, c'est de
   1708 la construire comme l'a été la première. Ça prend plus de matières
   1709 premières, plus de travail de production. Nos idées de propriété ont été
   1710 développées pour que le sens moral s'accorde avec ces faits.</p>
   1711 
   1712 <p>Pour une portion d'information que tout le monde peut copier, les faits sont
   1713 différents, et donc les attitudes morales correspondantes sont
   1714 différentes. Les attitudes morales proviennent de la réflexion sur le nombre
   1715 de gens que cela va aider et le nombre de gens que cela va léser de faire
   1716 certaines choses. Lorsqu'il s'agit d'un objet matériel, vous pouvez venir
   1717 prendre cette chaise, mais vous ne pouvez pas venir la copier. Et si vous
   1718 emportiez la chaise, cela ne produirait rien, vous n'auriez aucune
   1719 excuse. Si quelqu'un dit « J'ai travaillé pour faire cette chaise, une seule
   1720 personne peut avoir cette chaise, ça peut aussi bien être moi », nous
   1721 pourrions aussi bien dire « Oui, c'est compréhensible. » Quand une personne
   1722 dit « J'ai gravé les bits de ce disque, une seule personne peut l'avoir,
   1723 alors n'essayez pas de me l'enlever », ça se comprend aussi. Si une seule
   1724 personne peut avoir le disque, pourquoi pas celui à qui il appartient ?</p>
   1725 
   1726 <p>Mais quand quelqu'un d'autre arrive et dit « Je ne vais pas abîmer votre
   1727 disque, je vais juste en faire un autre comme lui par magie, je l'emmènerai
   1728 et vous pourrez continuer à utiliser ce disque comme vous le faisiez
   1729 auparavant », eh bien, c'est la même chose que si quelqu'un disait « J'ai un
   1730 copieur magique de chaise. Vous pouvez continuer à profiter de votre chaise
   1731 en l'ayant toujours à disposition mais j'en aurai une aussi. » C'est une
   1732 bonne chose.</p>
   1733 
   1734 <p>Si les gens n'ont pas à construire mais juste à claquer des doigts et
   1735 reproduire, c'est merveilleux. Mais ce changement technologique ne convient
   1736 pas à ceux qui voudraient pouvoir posséder des copies particulières et en
   1737 tirer de l'argent. C'est une idée qui ne correspond qu'aux objets qui se
   1738 conservent. Aussi font-ils leur possible pour transformer les programmes en
   1739 objets matériels. Vous êtes-vous demandés pourquoi, quand vous allez dans un
   1740 magasin de logiciel et que vous achetez un exemplaire d'un programme, cela
   1741 revient à acheter quelque chose qui ressemble à un livre ? Ils veulent que
   1742 les gens pensent à leur achat comme à un objet matériel, sans se rendre
   1743 compte qu'il est en réalité sous forme de données numériques copiables.</p>
   1744 
   1745 <p>Après tout, qu'est-ce qu'un ordinateur à part une machine universelle ? Vous
   1746 avez probablement étudié les machines universelles de Turing, ces machines
   1747 qui peuvent imiter n'importe quelle autre machine. L'avantage d'une machine
   1748 universelle, c'est que vous pouvez lui faire imiter n'importe quelle autre
   1749 machine et que les modes d'emploi peuvent être copiés et changés, toutes
   1750 choses que vous ne pouvez pas faire avec un objet matériel. Et c'est
   1751 exactement ce que les accapareurs de logiciel veulent que le public arrête
   1752 de faire. Ils veulent profiter du changement technologique, en marche vers
   1753 les machines universelles, mais ils ne veulent pas que le public en profite.</p>
   1754 
   1755 <p>En gros, ils tentent de conserver « l'âge de l'objet matériel », mais
   1756 celui-ci est dépassé. Notre conception du bien et du mal doit être synchrone
   1757 avec les faits réels du monde dans lequel nous vivons.</p>
   1758 </dd>
   1759 
   1760 <dt><b>Question :</b> Ainsi ça se ramène à la propriété de
   1761 l'information. Pensez-vous qu'il y ait des exemples où, selon vous, il soit
   1762 juste de posséder l'information ?</dt>
   1763 
   1764 <dd><p><b>Réponse :</b> Pour une information qui n'est pas utile au public ou qui a
   1765 un caractère personnel, je dirais OK. En d'autres termes, l'information qui
   1766 porte, non sur la manière de faire les choses mais sur ce que vous avez
   1767 l'intention de faire ; l'information dont la seule valeur pour les autres
   1768 est spéculative ; celle qui leur permet de vous faire perdre de l'argent
   1769 mais avec laquelle ils ne peuvent véritablement rien créer. Je dirais qu'il
   1770 est parfaitement raisonnable de garder ce genre de chose secrète et sous
   1771 contrôle.</p>
   1772 
   1773 <p>Mais l'information créatrice, celle que les gens peuvent utiliser ou dont
   1774 ils peuvent profiter, et ce d'autant mieux que plus de gens y auront accès,
   1775 nous devons toujours en encourager la copie.</p>
   1776 </dd>
   1777 </dl>
   1778 </div>
   1779 
   1780 <div class="translators-notes">
   1781 
   1782 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
   1783 <hr /><b>Notes de traduction</b><ol>
   1784 <li><a id="TransNote1" href="#TransNote1-rev"
   1785 class="nounderline">&#8593;</a> 
   1786 ITS <i>(Incompatible Timesharing System)</i> : « Système à temps partagé
   1787 incompatible », conçu par les hackers du laboratoire d'intelligence
   1788 artificielle et nommé en opposition avec CTSS <i>(Compatible Time Sharing
   1789 System)</i>, utilisé précédemment au MIT.</li>
   1790 <li><a id="TransNote2" href="#TransNote2-rev"
   1791 class="nounderline">&#8593;</a> 
   1792 Nous traduisons maintenant <i>proprietary</i> par « privateur ».</li>
   1793 <li><a id="TransNote3" href="#TransNote3-rev"
   1794 class="nounderline">&#8593;</a> 
   1795 <i>Wheel bit</i> (litt. bit de gouvernail) : il s'agit d'un bit particulier
   1796 du nombre binaire définissant un utilisateur sous Twenex (ou certains autres
   1797 systèmes à temps partagé des années 80), qui permet à cet utilisateur de
   1798 faire certaines opérations interdites à l'utilisateur normal. Les privilèges
   1799 du mode <i>wheel</i> sont analogues à ceux de <i>root</i> sous Unix.</li>
   1800 <li><a id="TransNote4" href="#TransNote4-rev"
   1801 class="nounderline">&#8593;</a> 
   1802 DDT signifiait à l'origine <i><abbr title="Digital Equipment
   1803 Corporation">DEC</abbr> Debugging Tape</i> (bande de débogage de
   1804 DEC). C'était un ensemble de programmes, développé en 1961, permettant de
   1805 déboguer le système d'exploitation du PDP-1 (les bandes dont il s'agissait
   1806 étaient des bandes perforées). Des systèmes similaires existent pour des
   1807 machines plus récentes, ils ont pour nom <i>Dynamic Debugging Technique</i>,
   1808 de manière à garder le même sigle. DDT fait allusion à l'insecticide <i>[bug
   1809 killer]</i> de l'époque.</li>
   1810 <li><a id="TransNote5" href="#TransNote5-rev"
   1811 class="nounderline">&#8593;</a> 
   1812 <i>Free University Compiler Kit</i> peut s'interpréter de deux manières
   1813 différentes, car on ne sait pas si l'adjectif <i>free</i> qualifie
   1814 <i>compiler kit</i> ou <i>university</i>. En fait, il s'agit du « kit de
   1815 compilation de l'Université Libre (d'Amsterdam) ».</li>
   1816 <li><a id="TransNote6" href="#TransNote6-rev"
   1817 class="nounderline">&#8593;</a> 
   1818 <i>C-shell</i> se prononce de la même façon que <i>seashell</i>
   1819 (coquillage). Il n'est pas impossible que ce jeu de mots soit voulu.</li>
   1820 <li><a id="TransNote7" href="#TransNote7-rev"
   1821 class="nounderline">&#8593;</a> 
   1822 <i>Bouncing ball</i> : peut-être une allusion à la « balle bondissante » du
   1823 karaoke qui rebondit sur les paroles affichées à l'écran au moment où il
   1824 faut les chanter.</li>
   1825 </ol></div>
   1826 </div>
   1827 
   1828 <!-- for id="content", starts in the include above -->
   1829 <!--#include virtual="/server/footer.fr.html" -->
   1830 <div id="footer" role="contentinfo">
   1831 <div class="unprintable">
   1832 
   1833 <p>Veuillez envoyer les requêtes concernant la FSF et GNU à &lt;<a
   1834 href="mailto:gnu@gnu.org">gnu@gnu.org</a>&gt;. Il existe aussi <a
   1835 href="/contact/">d'autres moyens de contacter</a> la FSF. Les liens
   1836 orphelins et autres corrections ou suggestions peuvent être signalés à
   1837 &lt;<a href="mailto:webmasters@gnu.org">webmasters@gnu.org</a>&gt;.</p>
   1838 
   1839 <p>
   1840 <!-- TRANSLATORS: Ignore the original text in this paragraph,
   1841         replace it with the translation of these two:
   1842 
   1843         We work hard and do our best to provide accurate, good quality
   1844         translations.  However, we are not exempt from imperfection.
   1845         Please send your comments and general suggestions in this regard
   1846         to <a href="mailto:web-translators@gnu.org">
   1847 
   1848         &lt;web-translators@gnu.org&gt;</a>.</p>
   1849 
   1850         <p>For information on coordinating and contributing translations of
   1851         our web pages, see <a
   1852         href="/server/standards/README.translations.html">Translations
   1853         README</a>. -->
   1854 Merci d'adresser vos commentaires sur les pages en français à &lt;<a
   1855 href="mailto:trad-gnu@april.org">trad-gnu@april.org</a>&gt;, et sur les
   1856 traductions en général à &lt;<a
   1857 href="mailto:web-translators@gnu.org">web-translators@gnu.org</a>&gt;. Si
   1858 vous souhaitez y contribuer, vous trouverez dans le <a
   1859 href="/server/standards/README.translations.html">guide de traduction</a>
   1860 les infos nécessaires.</p>
   1861 </div>
   1862 
   1863 <!-- Regarding copyright, in general, standalone pages (as opposed to
   1864      files generated as part of manuals) on the GNU web server should
   1865      be under CC BY-ND 4.0.  Please do NOT change or remove this
   1866      without talking with the webmasters or licensing team first.
   1867      Please make sure the copyright date is consistent with the
   1868      document.  For web pages, it is ok to list just the latest year the
   1869      document was modified, or published.
   1870      
   1871      If you wish to list earlier years, that is ok too.
   1872      Either "2001, 2002, 2003" or "2001-2003" are ok for specifying
   1873      years, as long as each year in the range is in fact a copyrightable
   1874      year, i.e., a year in which the document was published (including
   1875      being publicly visible on the web or in a revision control system).
   1876      
   1877      There is more detail about copyright years in the GNU Maintainers
   1878      Information document, www.gnu.org/prep/maintain. -->
   1879 <p>
   1880 Copyright &copy; 1987 Richard Stallman et Bjrn Remseth
   1881 </p>
   1882 <p>
   1883 La reproduction exacte et la distribution de copies intégrales de cette
   1884 transcription sont permises sur n'importe quel support d'archivage, pourvu
   1885 que l'avis de copyright et le présent avis de permission y figurent de
   1886 manière apparente.
   1887 </p>
   1888 
   1889 <!--#include virtual="/server/bottom-notes.fr.html" -->
   1890 <div class="translators-credits">
   1891 
   1892 <!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
   1893 Traduction : Miluz.<br /> Révision : <a
   1894 href="mailto:trad-gnu&#64;april.org">trad-gnu&#64;april.org</a></div>
   1895 
   1896 <p class="unprintable"><!-- timestamp start -->
   1897 Dernière mise à jour :
   1898 
   1899 $Date: 2022/06/11 14:31:02 $
   1900 
   1901 <!-- timestamp end -->
   1902 </p>
   1903 </div>
   1904 </div>
   1905 <!-- for class="inner", starts in the banner include -->
   1906 </body>
   1907 </html>