summaryrefslogtreecommitdiff
path: root/talermerchantdemos/blog/articles/fr/rms-lisp.html
diff options
context:
space:
mode:
Diffstat (limited to 'talermerchantdemos/blog/articles/fr/rms-lisp.html')
-rw-r--r--talermerchantdemos/blog/articles/fr/rms-lisp.html311
1 files changed, 169 insertions, 142 deletions
diff --git a/talermerchantdemos/blog/articles/fr/rms-lisp.html b/talermerchantdemos/blog/articles/fr/rms-lisp.html
index 4d6bbe3..2c3a6ed 100644
--- a/talermerchantdemos/blog/articles/fr/rms-lisp.html
+++ b/talermerchantdemos/blog/articles/fr/rms-lisp.html
@@ -1,18 +1,32 @@
<!--#set var="ENGLISH_PAGE" value="/gnu/rms-lisp.en.html" -->
<!--#include virtual="/server/header.fr.html" -->
-<!-- Parent-Version: 1.77 -->
+<!-- Parent-Version: 1.96 -->
+<!-- This page is derived from /server/standards/boilerplate.html -->
+<!--#set var="TAGS" value="gnu-history" -->
+<!--#set var="DISABLE_TOP_ADDENDUM" value="yes" -->
<!-- This file is automatically generated by GNUnited Nations! -->
<title>Mes expériences avec Lisp et le développement de GNU Emacs - Projet GNU -
Free Software Foundation</title>
+<style type="text/css" media="print,screen"><!--
+a[href*='#foot-'] { font-size: .94em; }
+-->
+</style>
<!--#include virtual="/gnu/po/rms-lisp.translist" -->
<!--#include virtual="/server/banner.fr.html" -->
+<!--#include virtual="/gnu/gnu-breadcrumb.fr.html" -->
+<!--GNUN: OUT-OF-DATE NOTICE-->
+<!--#include virtual="/server/top-addendum.fr.html" -->
+<div class="article reduced-width">
<h2>Mes expériences avec Lisp et le développement de GNU Emacs</h2>
-<blockquote><p>(Transcription du discours de Richard Stallman à la conférence
-internationale Lisp, le 28 octobre 2002)</p></blockquote>
+<div class="infobox">
+<p>Transcription du discours de Richard Stallman à la conférence internationale
+Lisp, le 28 octobre 2002.</p>
+</div>
+<hr class="thin" />
<p>Comme aucun de mes discours habituels n'a à voir avec Lisp, aucun ne serait
approprié pour aujourd'hui. Donc je vais improviser. Comme j'ai fait
@@ -20,7 +34,7 @@ suffisamment de choses dans ma carrière en relation avec Lisp, je devrais
être capable de raconter quelque chose d'intéressant.</p>
<p>Ma première expérience avec Lisp a été de lire le manuel Lisp 1.5 au
-lycée. C'est à ce moment-là que l'idée m'a frappé de plein fouet : qu'il
+lycée. C'est à ce moment-là que l'idée m'a frappé de plein fouet : qu'il
puisse y avoir un langage informatique comme cela. La première fois que j'ai
eu la chance de faire quelque chose avec Lisp fut quand je suis arrivé à
Harvard et que j'ai écrit un interpréteur Lisp pour le <abbr
@@ -34,7 +48,7 @@ qu'est un vrai logiciel, qui fait de vraies tâches sur un système.</p>
JonL White après avoir débuté au <abbr title="Massachusetts Institute of
Technology">MIT</abbr>. J'ai été engagé au laboratoire d'intelligence
artificielle (IA) non pas par JonL, mais par Russ Noftsker, ce qui est
-plutôt ironique vu ce qui s'est passé par la suite ; il a vraiment dû
+plutôt ironique vu ce qui s'est passé par la suite ; il a vraiment dû
regretter ce jour‑là.</p>
<p>Pendant les années 70, avant que ma vie ne soit politisée par des événements
@@ -71,8 +85,8 @@ pour <abbr title="Text Editor and COrrector">TECO</abbr>. C'était notre
éditeur de texte, et c'était un langage de programmation extrêmement laid,
le plus laid qui puisse exister. En effet, il n'était pas conçu comme
langage de programmation, mais comme langage d'édition et de commande. Il y
-avait des commandes comme <code>5l</code>, qui signifiait « avance de 5
-lignes », ou bien <code>i</code> puis une chaîne de caractère et Échap pour
+avait des commandes comme <code>5l</code>, qui signifiait « avance de 5
+lignes », ou bien <code>i</code> puis une chaîne de caractère et Échap pour
insérer cette chaîne. Vous pouviez taper une chaîne de caractères qui était
une série de commandes, ce qui s'appelait une chaîne de commande. Vous la
terminiez par Échap Échap, et elle était exécutée.</p>
@@ -83,28 +97,28 @@ des premières fut une structure de boucle, qui était &lt; &gt;. Vous pouviez
placer ces chevrons autour de quelque chose, et cette chose s'exécutait en
boucle. Il y avait d'autres commandes cryptiques qu'on pouvait utiliser pour
sortir de la boucle si une condition était vérifiée. Pour faire Emacs,
-nous <a id="foot-1-rev" href="#foot-1">(1)</a> avons ajouté des méthodes
+nous <a id="foot-1-rev" href="#foot-1">[1]</a> avons ajouté des méthodes
pour avoir des sous-programmes avec des noms. Avant cela, c'était une sorte
de Basic, et le nom des sous-programmes ne pouvaient avoir qu'une seule
lettre. Il était difficile de faire de gros programmes avec. Nous avons donc
ajouté du code pour qu'ils puissent avoir des noms plus long. En fait, il y
-avait des méthodes plutôt sophistiquées : je pense que Lisp a hérité sa
+avait des méthodes plutôt sophistiquées : je pense que Lisp a hérité sa
méthode <i>unwind-protect</i> de TECO.</p>
<p>Nous avons commencé à intégrer des méthodes plutôt sophistiquées, toutes
avec la syntaxe la plus horrible que vous puissiez imaginer, et cela
-marchait ; en tout cas, les gens étaient capables d'écrire des programmes
+marchait ; en tout cas, les gens étaient capables d'écrire des programmes
avec. La leçon évidente était qu'un langage comme TECO, qui n'a pas été
conçu pour programmer, menait à une impasse. Un langage sur lequel on
construit des extensions ne doit pas être vu comme langage de programmation
après coup, il doit être <em>conçu</em> comme langage de programmation. En
fait, nous avons découvert que le mieux adapté à cet usage était Lisp.</p>
-<p>C'est Bernie Greenberg qui l'a découvert <a id="foot-2-rev"
-href="#foot-2">(2)</a>. Il a écrit une version d'Emacs avec le MacLisp de
-Multics ; il écrivait ses commandes en MacLisp de façon très
+<p>C'est Bernie Greenberg qui l'a découvert <a id="foot-2-rev"
+href="#foot-2">[2]</a>. Il a écrit une version d'Emacs avec le MacLisp de
+Multics ; il écrivait ses commandes en MacLisp de façon très
simple. L'éditeur lui-même était entièrement écrit en Lisp. L'Emacs de
-Multics a été un grand succès : programmer de nouvelles commandes d'édition
+Multics a été un grand succès : programmer de nouvelles commandes d'édition
était si pratique que même les secrétaires de son service s'y sont
mises. Elles se servaient d'un manuel que quelqu'un avait écrit pour montrer
comment étendre Emacs, sans dire qu'il s'agissait de programmation. Donc les
@@ -129,7 +143,7 @@ MacLisp de Multics avait un compilateur aussi bien qu'un interpréteur
(c'était un système Lisp complet) mais les gens voulaient implémenter
quelque chose comme ça sur d'autres systèmes où il n'y avait pas encore de
compilateur Lisp. Car sans compilateur Lisp on ne pouvait écrire l'éditeur
-entier en Lisp : cela aurait été trop lent, en particulier l'affichage, s'il
+entier en Lisp : cela aurait été trop lent, en particulier l'affichage, s'il
avait fallu faire tourner du Lisp interprété. Donc nous avons développé une
technique hybride. L'idée était d'écrire ensemble l'interpréteur Lisp et les
parties bas niveau de l'éditeur, de telle sorte que certaines parties de
@@ -144,7 +158,7 @@ certaines des parties du travail les moins exigeantes en temps étaient
faites à un niveau supérieur par un programme TECO). On aurait pu faire tout
le travail en écrivant un programme TECO, mais c'était trop lent, donc nous
l'avons optimisé en en mettant une partie en langage machine. C'est cette
-idée que nous avons utilisée dans la technique hybride : la plus grosse
+idée que nous avons utilisée dans la technique hybride : la plus grosse
partie de l'éditeur serait écrite en Lisp, mais certaines parties ayant
besoin d'une vitesse d'exécution particulièrement rapide seraient écrites à
un niveau inférieur.</p>
@@ -154,7 +168,7 @@ implémentation d'Emacs. Le langage de bas niveau n'était plus du langage
machine mais du C. C'était un bon langage, efficace pour des programmes
portables fonctionnant dans un système d'exploitation de type Unix. Il y
avait un interpréteur Lisp, mais j'ai implémenté des méthodes pour les
-tâches spéciales d'édition directement en C : manipuler les piles de
+tâches spéciales d'édition directement en C : manipuler les piles de
l'éditeur, insérer des interlignes, lire et écrire des fichiers, réafficher
la pile à l'écran, gérer les fenêtres de l'éditeur.</p>
@@ -164,31 +178,31 @@ chose étrange est arrivée à Gosling. Au début, il semblait être influencé
par le même esprit de partage et de coopération que celui de l'Emacs
original. J'ai d'abord distribué l'Emacs original aux gens du MIT. Quelqu'un
voulait le porter sur Twenex – il fonctionnait à l'origine sur
-l'<i>Incompatible Timesharing System</i><a id="TransNote1-rev"
+l'<i>Incompatible Timesharing System</i> <a id="TransNote1-rev"
href="#TransNote1"><sup>a</sup></a> que nous utilisions au MIT. Ils l'ont
porté sur Twenex, ce qui signifiait qu'il y avait quelques centaines
d'installations dans le monde qui pouvaient éventuellement l'utiliser. Nous
-avons commencé à le leur distribuer, en posant comme règle que « vous deviez
-renvoyer toutes vos améliorations » pour que tout le monde en
+avons commencé à le leur distribuer, en posant comme règle que « vous deviez
+renvoyer toutes vos améliorations » pour que tout le monde en
bénéficie. Personne n'a jamais essayé de faire appliquer cette règle, mais
autant que je sache les gens coopéraient effectivement.</p>
<p>Au début, Gosling avait vraiment l'air de collaborer dans cet esprit. Il a
-écrit dans un manuel qu'il appelait le programme « Emacs » en espérant que
+écrit dans un manuel qu'il appelait le programme « Emacs » en espérant que
d'autres dans la communauté l'amélioreraient jusqu'à ce qu'il soit digne de
-ce nom. C'est la bonne approche pour créer une communauté : demander aux
+ce nom. C'est la bonne approche pour créer une communauté : demander aux
gens de se joindre à vous pour participer à l'amélioration du
programme. Mais après cela il a apparemment changé d'état d'esprit et vendu
le programme à une entreprise.</p>
<p>À ce moment-là, je travaillais sur le système GNU (un système d'exploitation
-libre de type Unix que beaucoup de gens nomment par erreur « Linux »). Il
+libre de type Unix que beaucoup de gens nomment par erreur « Linux »). Il
n'y avait pas d'éditeur Emacs libre fonctionnant sur Unix. J'avais en
revanche un ami qui avait participé au développement de l'Emacs de
Gosling. Gosling lui avait donné, par courriel, la permission de distribuer
sa propre version. Il m'a proposé d'utiliser cette version. Puis j'ai
découvert que l'Emacs de Gosling n'avait pas réellement de Lisp. Il avait un
-langage de programmation connu sous le nom de « mocklisp », qui ressemblait
+langage de programmation connu sous le nom de « mocklisp », qui ressemblait
pour la syntaxe à Lisp, mais n'avait pas ses structures de données. Donc les
programmes n'étaient pas des données et des éléments vitaux de Lisp
manquaient. Ses structures de données étaient les chaînes de caractères, les
@@ -205,19 +219,19 @@ manipuler.</p>
<p>L'unique exception était le réaffichage. Pendant longtemps, le réaffichage a
été une sorte d'autre planète. L'éditeur arrivait sur cette planète, et les
choses continuaient avec des structures de données très spéciales qui
-pouvaient être corrompues par le « ramasse-miette »,<a id="TransNote2-rev"
+pouvaient être corrompues par le « ramasse-miette »,<a id="TransNote2-rev"
href="#TransNote2"><sup>b</sup></a> ou par les interruptions, et vous ne
pouviez exécuter aucun programme Lisp pendant ce temps-là. Nous avons changé
-ça depuis ; il est maintenant possible d'exécuter du code Lisp pendant le
+ça depuis ; il est maintenant possible d'exécuter du code Lisp pendant le
réaffichage. C'est quelque chose de très pratique.</p>
-<p>Ce second programme Emacs était du « logiciel libre » dans le sens moderne
-du terme ; il faisait partie d'une campagne politique explicite pour libérer
+<p>Ce second programme Emacs était du « logiciel libre » dans le sens moderne
+du terme ; il faisait partie d'une campagne politique explicite pour libérer
le logiciel. L'essence de cette campagne était que chacun devait être libre
de faire les choses que nous faisions au temps du MIT, travailler ensemble
sur du logiciel et travailler avec qui voulait travailler avec nous. C'est
la base du mouvement du logiciel libre – l'expérience que j'ai eue, la vie
-que j'ai vécue au labo d'IA du MIT : travailler sur le savoir de l'humanité,
+que j'ai vécue au labo d'IA du MIT : travailler sur le savoir de l'humanité,
sans empêcher qui que ce soit de le réutiliser et de le disséminer.</p>
<p>À cette époque, on pouvait fabriquer un ordinateur dans le même ordre de
@@ -232,7 +246,7 @@ finissaient par planter au bout d'un moment.</p>
<p>La machine Lisp était capable d'exécuter des instructions presque aussi vite
que ces autres machines, mais à chaque instruction une instruction
-<code>car</code> faisait une vérification de type ; par conséquent, lorsque
+<code>car</code> faisait une vérification de type ; par conséquent, lorsque
vous essayiez d'obtenir le <code>car</code> d'un nombre dans un programme
compilé, vous obteniez immédiatement une erreur. Nous avons construit la
machine et fait un système d'exploitation Lisp pour elle. Il était presque
@@ -241,23 +255,23 @@ microcode. Certaines personnes ont porté de l'intérêt à la fabrication de la
machine Lisp, ce qui voulait dire qu'elles allaient lancer une entreprise.</p>
<p>Il y avait deux conceptions différentes du type de société que ça devait
-être. Greenblatt voulait lancer ce qu'il appelait une « entreprise de
-hacker ». Cela signifie qu'il voulait une entreprise dirigée par des hackers
+être. Greenblatt voulait lancer ce qu'il appelait une « entreprise de
+hacker ». Cela signifie qu'il voulait une entreprise dirigée par des hackers
et qui fonctionnerait d'une manière favorable aux hackers. Elle aurait
-également pour but de maintenir la culture du labo d'IA <a id="foot-3-rev"
-href="#foot-3">(3)</a>. Malheureusement, comme Greenblatt n'avait aucune
+également pour but de maintenir la culture du labo d'IA <a id="foot-3-rev"
+href="#foot-3">[3]</a>. Malheureusement, comme Greenblatt n'avait aucune
expérience des affaires, d'autres personnes du groupe de la machine Lisp ont
émis des doutes sur ses chances de réussite. Elles pensaient que son plan
pour éviter les investissements extérieurs ne marcherait pas.</p>
-<p>Pourquoi voulait-il éviter les investissements extérieurs ? Parce que,
+<p>Pourquoi voulait-il éviter les investissements extérieurs ? Parce que,
lorsqu'une entreprise a des investisseurs extérieurs, ils prennent le
contrôle et ne vous laissent pas avoir le moindre scrupule. Et si vous
finissez par avoir des scrupules, ils vous remplacent également à la
direction.</p>
<p>Greenblatt a donc eu l'idée de chercher un client prêt à payer d'avance pour
-acheter les composants. Ils construiraient les machines et les livreraient ;
+acheter les composants. Ils construiraient les machines et les livreraient ;
avec le bénéfice réalisé, ils seraient en mesure d'acheter les composants
pour quelques machines de plus, de les vendre, d'acheter des composants pour
plus de machines, etc., etc. Les autres personnes du groupe ne pensaient pas
@@ -266,8 +280,8 @@ que cela puisse fonctionner.</p>
<p>Greenblatt a ensuite recruté Russel Noftsker, la personne qui m'avait
engagé, et qui avait entre-temps quitté le labo d'IA pour monter une
entreprise florissante. Russel passait pour avoir des capacités pour les
-affaires. Il l'a démontré en disant aux autres membres du groupe : « Jetons
-Greenblatt, oublions son idée et créons une autre entreprise. » Poignarder
+affaires. Il l'a démontré en disant aux autres membres du groupe : « Jetons
+Greenblatt, oublions son idée et créons une autre entreprise. » Poignarder
dans le dos&hellip; un véritable homme d'affaires en effet. Ces personnes
ont décidé de former une société nommée Symbolics. Elles chercheraient des
investissements extérieurs, n'auraient aucun scrupule et feraient tout leur
@@ -276,16 +290,16 @@ possible pour gagner.</p>
<p>Mais Greenblatt n'a pas abandonné. Lui et les quelques personnes qui lui
étaient restées loyales ont décidé de lancer tout de même <i>Lisp Machines
Inc.</i> et de poursuivre leur projet initial. Et devinez quoi, ils ont
-réussi ! Ils ont trouvé leur premier client et ont été payés d'avance. Ils
+réussi ! Ils ont trouvé leur premier client et ont été payés d'avance. Ils
ont construit leurs machines, les ont vendues, et ont construit de plus en
plus de machines. Ils ont effectivement réussi alors même qu'ils n'avaient
pas l'aide de la plupart des personnes du groupe. Symbolics a eu un bon
-départ également ; il y avait donc deux entreprises concurrentes de machines
+départ également ; il y avait donc deux entreprises concurrentes de machines
Lisp. Quand Symbolics a vu que <abbr title="Lisp Machines Inc.">LMI</abbr>
n'allait pas s'écrouler, ils ont commencé à chercher des moyens de la
détruire.</p>
-<p>Il y a donc eu l'abandon de notre labo, suivi par une « guerre » dans notre
+<p>Il y a donc eu l'abandon de notre labo, suivi par une « guerre » dans notre
labo. L'abandon s'est fait quand Symbolics a débauché tous les hackers, à
l'exception de moi et de quelques autres qui travaillaient chez LMI à temps
partiel. Puis, pour éliminer les gens qui travaillaient à temps partiel pour
@@ -301,14 +315,14 @@ lesquels les deux entreprises lui avaient donné des licences. Personne
n'avait imaginé que le groupe de hackers du labo d'IA disparaîtrait, mais ce
fut le cas.</p>
-<p> Les gens de Symbolics ont trouvé une combine <a id="foot-4-rev"
-href="#foot-4">(4)</a>. Ils ont dit au labo : « Nous continuerons à mettre à
+<p> Les gens de Symbolics ont trouvé une combine <a id="foot-4-rev"
+href="#foot-4">[4]</a>. Ils ont dit au labo : « Nous continuerons à mettre à
votre disposition nos modifications du système pour votre usage, mais vous
ne pourrez pas les installer dans le système de machine Lisp du MIT. À la
place, nous vous donnerons accès à celui de Symbolics et vous pourrez le
-faire fonctionner, mais c'est tout ce que vous pourrez faire. »</p>
+faire fonctionner, mais c'est tout ce que vous pourrez faire. »</p>
-<p>En pratique, cela voulait dire qu'ils nous obligeaient à choisir un camp :
+<p>En pratique, cela voulait dire qu'ils nous obligeaient à choisir un camp :
utiliser la version du MIT, ou la version de Symbolics. Quel que soit notre
choix, cela déterminait à quel système iraient nos améliorations. Si nous
travaillions sur la version de Symbolics pour l'améliorer, nous
@@ -320,12 +334,12 @@ exister. Donc nous ne pouvions plus rester neutres.</p>
<p>Jusque-là, je n'avais pris parti pour aucune des deux entreprises, bien que
cela me rendît malheureux de voir ce qui était arrivé à notre communauté et
au logiciel. Mais maintenant, Symbolics m'avait forcé la main. Alors, pour
-essayer d'aider LMI à poursuivre son activité <a id="foot-5-rev"
-href="#foot-5">(5)</a>, j'ai commencé à dupliquer toutes les améliorations
+essayer d'aider LMI à poursuivre son activité <a id="foot-5-rev"
+href="#foot-5">[5]</a>, j'ai commencé à dupliquer toutes les améliorations
que Symbolics avait faites au système de machine Lisp. Je réécrivais des
améliorations équivalentes moi-même (c'est-à-dire avec mon propre code).</p>
-<p>Au bout d'un moment <a id="foot-6-rev" href="#foot-6">(6)</a>, je suis
+<p>Au bout d'un moment <a id="foot-6-rev" href="#foot-6">[6]</a>, je suis
arrivé à la conclusion que cela irait mieux si je ne regardais même pas leur
code. Dans les annonces de versions bêta qui donnaient les notes de version,
je pouvais voir quelles allaient être les fonctionnalités et les implémenter
@@ -337,7 +351,7 @@ deux entreprises ont continué d'exister. Mais je ne voulais pas passer des
années et des années à punir quelqu'un, dans le seul but de contrer une
mauvaise action. J'imagine qu'ils avaient été assez punis parce qu'ils
étaient coincés avec de la concurrence qui n'allait pas laisser tomber ni
-disparaître <a id="foot-7-rev" href="#foot-7">(7)</a>. De toute manière, il
+disparaître <a id="foot-7-rev" href="#foot-7">[7]</a>. De toute manière, il
était temps de commencer à bâtir une nouvelle communauté pour remplacer
celle que leurs actions, ainsi que d'autres, avaient rayée de la carte.</p>
@@ -345,11 +359,11 @@ celle que leurs actions, ainsi que d'autres, avaient rayée de la carte.</p>
les hackers n'étaient pas tous au MIT. La guerre lancée par Symbolics est ce
qui a déclenché la disparition du groupe du MIT, mais il y avait d'autres
événements en cours au même moment. Il y avait des gens qui abandonnaient la
-coopération ; tout cela a détruit la communauté et il n'en est pas resté
+coopération ; tout cela a détruit la communauté et il n'en est pas resté
grand-chose.</p>
<p>Après avoir arrêté de punir Symbolics, il m'a fallu réfléchir à la suite. Il
-fallait que je fasse un système d'exploitation libre, c'était clair ; la
+fallait que je fasse un système d'exploitation libre, c'était clair ; la
seule façon de faire travailler des gens ensemble et de les faire partager
était d'avoir un système d'exploitation libre.</p>
@@ -361,10 +375,10 @@ rapidement que les autres ordinateurs exécutaient les leurs, en ayant tout
de même le bénéfice de la vérification de type. Sans cela, on en était
réduit à quelque chose comme les compilateurs Lisp pour les autres
machines. Les programmes étaient plus rapides, mais instables. Ça va bien si
-on exécute un programme sur un système en temps partagé ; si un programme
+on exécute un programme sur un système en temps partagé ; si un programme
plante, ce n'est pas un désastre, c'est quelque chose que les programmes
font occasionnellement. Mais cela ne convenait pas pour l'écriture d'un
-système d'exploitation ; j'ai donc rejeté l'idée de prendre comme modèle le
+système d'exploitation ; j'ai donc rejeté l'idée de prendre comme modèle le
système comme la machine Lisp.</p>
<p>Au lieu de ça, j'ai décidé de faire un système d'exploitation de type Unix
@@ -382,11 +396,11 @@ possible.</p>
<p>Par exemple, à ce moment-là, la seule construction de boucle était
<code>while</code>, et elle était extrêmement simple. Il n'existait aucun
-moyen de sortir de cette boucle <code>while</code> ; vous ne pouviez faire
+moyen de sortir de cette boucle <code>while</code> ; vous ne pouviez faire
qu'un <code>catch</code> et un <code>throw</code>, ou tester une variable
dans la boucle. Cela montre à quel point j'essayais de réduire le
programme. Nous n'avions pas de <code>caar</code>, de <code>cadr</code>,
-etc. ; simplifier au maximum était l'esprit de GNU Emacs, l'esprit du Lisp
+etc. ; simplifier au maximum était l'esprit de GNU Emacs, l'esprit du Lisp
d'Emacs, depuis l'origine.</p>
<p>Évidemment les machines sont plus grosses maintenant et nous ne travaillons
@@ -396,8 +410,8 @@ jours. Nous avons envie de l'étendre un peu maintenant, mais nous ne voulons
pas l'étendre au niveau du Common Lisp. Il m'est arrivé une fois
d'implémenter le Common Lisp sur la machine Lisp, mais je n'en ai pas été
vraiment satisfait. Ce que je n'aime pas trop, ce sont les arguments
-mots-clefs <a id="foot-8-rev" href="#foot-8">(8)</a>. Ils ne me semblent pas
-très « Lisp » ; je le fais de temps à autre, mais le moins possible.</p>
+mots-clefs <a id="foot-8-rev" href="#foot-8">[8]</a>. Ils ne me semblent pas
+très « Lisp » ; je le fais de temps à autre, mais le moins possible.</p>
<p>L'implication du projet GNU avec Lisp ne s'est pas arrêtée là. Plus tard
vers 1995, nous pensions lancer un projet de bureau graphique. Il était
@@ -411,8 +425,8 @@ mauvaise opinion de TCL, avant tout parce que ce n'était pas du Lisp. Cela
ressemblait un peu à Lisp, mais pas au niveau sémantique, et ce n'était pas
aussi propre. Puis quelqu'un m'a montré une publicité dans laquelle Sun
essayait de recruter quelqu'un pour travailler sur TCL afin d'en faire le
-« langage d'extension standard de facto » au niveau mondial. Et j'ai pensé :
-« Nous devons empêcher cela. » C'est ainsi que nous avons commencé à faire
+« langage d'extension standard de facto » au niveau mondial. Et j'ai pensé :
+« Nous devons empêcher cela. » C'est ainsi que nous avons commencé à faire
de Scheme le langage d'extension standard pour GNU. Pas Common Lisp parce
qu'il était trop gros. L'idée était d'avoir un interpréteur Scheme conçu
pour être lié à des applications à la manière de TCL. Nous recommanderions
@@ -434,21 +448,21 @@ favori, et cela marcherait également avec d'autres configurations.</p>
<p>Tant que l'extensibilité des langages est faible, les utilisateurs doivent
utiliser uniquement le langage qu'on leur fournit. Ce qui signifie que les
gens qui préfèrent un langage particulier doivent concourir pour le choix
-des développeurs d'application : « S'il vous plaît, monsieur le développeur
-d'applications, mettez mon langage dans votre application, pas le sien. »
-Ensuite, les autres utilisateurs n'ont plus le choix ; quelle que soit
+des développeurs d'application : « S'il vous plaît, monsieur le développeur
+d'applications, mettez mon langage dans votre application, pas le sien. »
+Ensuite, les autres utilisateurs n'ont plus le choix ; quelle que soit
l'application qu'ils utilisent, elle arrive avec un langage et ils sont
limités à ce langage. Mais quand vous avez un langage puissant qui peut
implémenter les autres en les traduisant, alors vous donnez le choix aux
utilisateurs et vous éliminez la guerre des langages. Nous espérons que
-c'est ce que fera « Guile », notre interpréteur Scheme. Nous avions une
+c'est ce que fera « Guile », notre interpréteur Scheme. Nous avions une
personne l'été dernier qui travaillait à terminer un traducteur de Python
vers Scheme. Je ne sais pas s'il est entièrement fini maintenant, mais si
quelqu'un est intéressé par ce projet, contactez-moi. Voilà donc notre
projet pour l'avenir.</p>
<p>Je n'ai pas parlé de logiciel libre, mais laissez-moi vous dire rapidement
-un petit peu de ce que cela signifie. « Logiciel libre » ne se réfère pas au
+un petit peu de ce que cela signifie. « Logiciel libre » ne se réfère pas au
prix, cela ne veut pas dire que vous l'obtiendrez gratuitement (vous pouvez
avoir à payer les copies, ou bien vous pouvez les obtenir gratuitement).<a
id="TransNote3-rev" href="#TransNote3"><sup>c</sup></a> Cela signifie que
@@ -456,7 +470,7 @@ vous êtes libre en tant qu'utilisateur. L'essentiel, c'est que vous êtes
libre d'utiliser le programme, libre d'étudier ce qu'il fait, libre de le
modifier pour l'adapter à vos besoins, libre de redistribuer des copies aux
autres et libre de publier des versions améliorées ou étendues. Voilà ce que
-signifie « logiciel libre ». Si vous utilisez des logiciels non libres, vous
+signifie « logiciel libre ». Si vous utilisez des logiciels non libres, vous
perdez cette liberté capitale, donc ne le faites jamais.</p>
<p>Le but du projet GNU est de faciliter aux gens le rejet des logiciels non
@@ -479,13 +493,13 @@ vous n'êtes autorisé à vous aider vous-même. Divisés et impuissants, voilà
l'état des utilisateurs de logiciel non libre.</p>
<p>Nous avons produit une variété énorme de logiciels libres. Nous avons fait
-ce que les gens disaient que nous n'arriverions jamais à faire ; nous avons
+ce que les gens disaient que nous n'arriverions jamais à faire ; nous avons
deux systèmes d'exploitation constitués de logiciel libre. Nous avons de
nombreuses applications, mais évidemment nous avons encore beaucoup à
faire. C'est pourquoi nous avons besoin de votre aide. J'aimerais vous
-demander de faire du bénévolat pour le projet GNU ; aidez-nous à développer
+demander de faire du bénévolat pour le projet GNU ; aidez-nous à développer
le logiciel libre pour qu'il y ait plus d'emplois. Allez voir sur <a
-href="/help/">http://www.gnu.org/help</a> pour trouver des idées sur la
+href="/help/help.html">gnu.org/help</a> pour trouver des idées sur la
manière de nous aider. Si vous voulez commander des choses, il y a un lien
pour cela sur cette page. Si vous voulez des articles sur des questions
philosophiques, allez voir dans /philosophy. Si vous cherchez des logiciels
@@ -493,90 +507,103 @@ libres, allez voir dans /directory, qui actuellement répertorie environ
1900 logiciels (ce qui représente une fraction de tout les logiciels libres
existants). S'il vous plaît, écrivez-en d'autres et offrez-les au projet
GNU. Mon livre d'essais, <cite>Free Software, Free Society</cite> (Logiciel
-libre, société libre), est en vente et peut être acheté sur <a
-href="/">www.gnu.org</a>. <i>Happy hacking!</i> (Codez joyeusement !)</p>
+libre, société libre), est en vente et peut être acheté sur
+www.gnu.org&#8239;<a id="foot-9-rev" href="#foot-9" >[9]</a>. <i>Happy
+hacking!</i> (Codez joyeusement !)</p>
+<div class="column-limit"></div>
+<h3 class="footnote">Notes</h3>
<ol>
-<li id="foot-1">Guy Steele a conçu la bibliothèque symétrique originale de commandes
-d'Emacs, puis lui et moi avons commencé à implémenter Emacs (au-dessus de
-TECO), mais après une longue session de développement conjointe, Steele a
-commencé à s'éloigner. J'ai donc terminé Emacs. D'autres, en particulier
-Eugene C. Cicciarelli et Mike McMahon, ont par la suite contribué de manière
-substantielle. <a href="#foot-1-rev" class="nounderline">&#8593;</a></li>
-
-<li id="foot-2">Bernie Greenberg dit que l'implémentation d'Emacs de Dan Weinberg pour la
-machine Lisp est arrivée avant celle de Greenberg pour Multics. Je lui
-présente mes excuses pour cette erreur. <a href="#foot-2-rev"
-class="nounderline">&#8593;</a></li>
-
-<li id="foot-3">Le plan de Greenblatt, d'après ce que j'ai compris, était d'engager les gens
-du laboratoire à temps partiel afin qu'ils puissent continuer à travailler
-au labo d'IA. Au lieu de cela, Symbolics les a engagés à temps plein, et
-donc ils ont arrêté de travailler au MIT. <a href="#foot-3-rev"
-class="nounderline">&#8593;</a></li>
-
-<li id="foot-4">L'arrière-pensée de ce plan, que je n'ai pas explicitée dans le discours,
-était que durant cette période initiale les ex-hackers du labo d'IA, que ce
-soit chez Symbolics ou chez LMI, continuent à apporter leurs modifications
-au système pour machine Lisp du MIT, bien que le contrat ne l'exige pas. Le
-plan de Symbolics était de briser cette coopération unilatéralement. <a
-href="#foot-4-rev" class="nounderline">&#8593;</a></li>
-
-<li id="foot-5">Ce n'est pas que le sort de LMI m'intéressait particulièrement, mais plutôt
-que je ne voulais pas laisser Symbolics gagner grâce à son agression contre
-le labo d'IA. <a href="#foot-5-rev" class="nounderline">&#8593;</a></li>
-
-<li id="foot-6">Cette phrase a été mal interprétée ; je n'aurais, paraît-il, jamais, à aucun
-moment jeté un œil sur le code de Symbolics. En réalité, cette phrase dit
-que je l'ai bel et bien regardé, au début. Le code source de Symbolics était
-disponible au MIT où j'étais en droit de le lire, et au début c'est ainsi
-que je me suis rendu compte de leurs modifications.
+<li id="foot-1"><a href="#foot-1-rev" class="nounderline">&#8593;</a> Guy Steele a conçu la
+bibliothèque symétrique originale de commandes d'Emacs, puis lui et moi
+avons commencé à implémenter Emacs (au-dessus de TECO), mais après une
+longue session de développement conjointe, Steele a commencé à
+s'éloigner. J'ai donc terminé Emacs. D'autres, en particulier Eugene
+C. Cicciarelli et Mike McMahon, ont par la suite contribué de manière
+substantielle.</li>
+
+<li id="foot-2"><a href="#foot-2-rev" class="nounderline">&#8593;</a> Bernie Greenberg dit
+que l'implémentation d'Emacs de Dan Weinberg pour la machine Lisp est
+arrivée avant celle de Greenberg pour Multics. Je lui présente mes excuses
+pour cette erreur.</li>
+
+<li id="foot-3"><a href="#foot-3-rev" class="nounderline">&#8593;</a> Le plan de Greenblatt,
+d'après ce que j'ai compris, était d'engager les gens du laboratoire à temps
+partiel afin qu'ils puissent continuer à travailler au labo d'IA. Au lieu de
+cela, Symbolics les a engagés à temps plein, et donc ils ont arrêté de
+travailler au MIT.</li>
+
+<li id="foot-4"><a href="#foot-4-rev" class="nounderline">&#8593;</a> L'arrière-pensée de ce
+plan, que je n'ai pas explicitée dans le discours, était que durant cette
+période initiale les ex-hackers du labo d'IA, que ce soit chez Symbolics ou
+chez LMI, continuent à apporter leurs modifications au système pour machine
+Lisp du MIT, bien que le contrat ne l'exige pas. Le plan de Symbolics était
+de briser cette coopération unilatéralement.</li>
+
+<li id="foot-5"><a href="#foot-5-rev" class="nounderline">&#8593;</a> Ce n'est pas que le
+sort de LMI m'intéressait particulièrement, mais plutôt que je ne voulais
+pas laisser Symbolics gagner grâce à son agression contre le labo d'IA.</li>
+
+<li id="foot-6"><a href="#foot-6-rev" class="nounderline">&#8593;</a> Cette phrase a été mal
+interprétée ; je n'aurais, paraît-il, jamais, à aucun moment jeté un œil sur
+le code de Symbolics. En réalité, cette phrase dit que je l'ai bel et bien
+regardé, au début. Le code source de Symbolics était disponible au MIT où
+j'étais en droit de le lire, et au début c'est ainsi que je me suis rendu
+compte de leurs modifications.
<p>Mais cela signifiait que je devais faire un effort particulier pour résoudre
chaque problème différemment, de manière à éviter de copier le code de
Symbolics. Après un moment, j'ai conclu que c'était mieux de ne pas le
regarder du tout. De cette façon, je pouvais écrire le code de la meilleure
-façon, sans me soucier de ce qui était dans le code de Symbolics. <a
-href="#foot-6-rev" class="nounderline">&#8593;</a></p></li>
+façon, sans me soucier de ce qui était dans le code de Symbolics.</p></li>
+
+<li id="foot-7"><a href="#foot-7-rev" class="nounderline">&#8593;</a> Symbolics s'est plaint
+au MIT que mon travail, en contrant leur plan, avait coûté à Symbolics un
+million de dollars.</li>
-<li id="foot-7">Symbolics s'est plaint au MIT que mon travail, en contrant leur plan, avait
-coûté à Symbolics un million de dollars. <a href="#foot-7-rev"
-class="nounderline">&#8593;</a></li>
+<li id="foot-8"><a href="#foot-8-rev" class="nounderline">&#8593;</a> Cela ne me dérange pas
+si une mégafonction très complexe prend des arguments mots-clés. Ce qui me
+dérange, c'est de les mettre dans des fonctions simples et basiques comme
+« member ».</li>
-<li id="foot-8">Cela ne me dérange pas si une mégafonction très complexe prend des arguments
-mots-clés. Ce qui me dérange, c'est de les mettre dans des fonctions simples
-et basiques comme « member ». <a href="#foot-8-rev"
-class="nounderline">&#8593;</a></li>
+<li id="foot-9"> <a href="#foot-9-rev" class="nounderline">&#8593;</a>En 2021, on peut
+acheter ce livre sur <a
+href="https://shop.fsf.org/books-docs/free-software-free-society-selected-essays-richard-m-stallman-3rd-edition">GNU
+Press</a>.</li>
</ol>
+</div>
<div class="translators-notes">
<!--TRANSLATORS: Use space (SPC) as msgstr if you don't have notes.-->
-<hr /><b>Notes de relecture</b><ol id="translator-notes-alpha">
-<li id="TransNote1"><i>Incompatible Timesharing System</i> (ITS) : « système
-à temps partagé incompatible », conçu par l'équipe du laboratoire
-d'intelligence artificielle et nommé en opposition avec CTSS <i>(Compatible
-Time Sharing System)</i>, système d'exploitation utilisé précédemment au
-MIT. <a href="#TransNote1-rev" class="nounderline">&#8593;</a></li>
-<li id="TransNote2"><i>Garbage collection</i> : mise à jour de tables
-d'allocation de mémoire (d'après « Le Jargon Français »). <a
-href="#TransNote2-rev" class="nounderline">&#8593;</a></li>
-<li id="TransNote3">En anglais, le mot <i>free</i> veut dire libre, mais
-aussi gratuit, d'où la confusion possible. <a href="#TransNote3-rev"
-class="nounderline">&#8593;</a></li>
+<hr /><b>Notes de traduction</b><ol id="translator-notes-alpha">
+<li><a id="TransNote1" href="#TransNote1-rev"
+class="nounderline">&#8593;</a>
+<i>Incompatible Timesharing System</i> (ITS) : « système à temps partagé
+incompatible », conçu par l'équipe du laboratoire d'intelligence
+artificielle et nommé en opposition avec CTSS <i>(Compatible Time Sharing
+System)</i>, système d'exploitation utilisé précédemment au MIT.</li>
+<li><a id="TransNote2" href="#TransNote2-rev"
+class="nounderline">&#8593;</a>
+<i>Garbage collection</i> : mise à jour de tables d'allocation de mémoire
+(d'après <cite>Le Jargon Français</cite>).</li>
+<li><a id="TransNote3" href="#TransNote3-rev"
+class="nounderline">&#8593;</a>
+En anglais, le mot <i>free</i> veut dire libre, mais aussi gratuit, d'où la
+confusion possible.</li>
</ol></div>
</div>
<!-- for id="content", starts in the include above -->
<!--#include virtual="/server/footer.fr.html" -->
-<div id="footer">
+<div id="footer" role="contentinfo">
<div class="unprintable">
-<p>Veuillez envoyer les requêtes concernant la FSF et GNU à <a
-href="mailto:gnu@gnu.org">&lt;gnu@gnu.org&gt;</a>. Il existe aussi <a
+<p>Veuillez envoyer les requêtes concernant la FSF et GNU à &lt;<a
+href="mailto:gnu@gnu.org">gnu@gnu.org</a>&gt;. Il existe aussi <a
href="/contact/">d'autres moyens de contacter</a> la FSF. Les liens
-orphelins et autres corrections ou suggestions peuvent être signalés à <a
-href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
+orphelins et autres corrections ou suggestions peuvent être signalés à
+&lt;<a href="mailto:webmasters@gnu.org">webmasters@gnu.org</a>&gt;.</p>
<p>
<!-- TRANSLATORS: Ignore the original text in this paragraph,
@@ -589,18 +616,17 @@ href="mailto:webmasters@gnu.org">&lt;webmasters@gnu.org&gt;</a>.</p>
&lt;web-translators@gnu.org&gt;</a>.</p>
- <p>For information on coordinating and submitting translations of
+ <p>For information on coordinating and contributing translations of
our web pages, see <a
href="/server/standards/README.translations.html">Translations
README</a>. -->
-Nous faisons le maximum pour proposer des traductions fidèles et de bonne
-qualité, mais nous ne sommes pas parfaits. Merci d'adresser vos commentaires
-sur cette page, ainsi que vos suggestions d'ordre général sur les
-traductions, à <a href="mailto:web-translators@gnu.org">
-&lt;web-translators@gnu.org&gt;</a>.</p>
-<p>Pour tout renseignement sur la coordination et la soumission des
-traductions de nos pages web, reportez-vous au <a
-href="/server/standards/README.translations.html">guide de traduction</a>.</p>
+Merci d'adresser vos commentaires sur les pages en français à &lt;<a
+href="mailto:trad-gnu@april.org">trad-gnu@april.org</a>&gt;, et sur les
+traductions en général à &lt;<a
+href="mailto:web-translators@gnu.org">web-translators@gnu.org</a>&gt;. Si
+vous souhaitez y contribuer, vous trouverez dans le <a
+href="/server/standards/README.translations.html">guide de traduction</a>
+les infos nécessaires.</p>
</div>
<!-- Regarding copyright, in general, standalone pages (as opposed to
@@ -619,7 +645,7 @@ href="/server/standards/README.translations.html">guide de traduction</a>.</p>
There is more detail about copyright years in the GNU Maintainers
Information document, www.gnu.org/prep/maintain. -->
-<p>Copyright &copy; 2003, 2007, 2013, 2014, 2020 Free Software Foundation, Inc.</p>
+<p>Copyright &copy; 2003, 2007, 2013, 2021 Free Software Foundation, Inc.</p>
<p>Cette page peut être utilisée suivant les conditions de la licence <a
rel="license"
@@ -631,17 +657,18 @@ Commons attribution, pas de modification, 4.0 internationale (CC BY-ND
<div class="translators-credits">
<!--TRANSLATORS: Use space (SPC) as msgstr if you don't want credits.-->
-Traduction : Marc de Maillard.<br /> Révision : <a
+Traduction : Marc de Maillard.<br /> Révision : <a
href="mailto:trad-gnu&#64;april.org">trad-gnu&#64;april.org</a></div>
<p class="unprintable"><!-- timestamp start -->
Dernière mise à jour :
-$Date: 2020/12/06 11:30:28 $
+$Date: 2022/05/04 15:02:13 $
<!-- timestamp end -->
</p>
</div>
</div>
+<!-- for class="inner", starts in the banner include -->
</body>
</html>