Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

James Gosling : Richard Stallman « a copié tout mon code source et juste changé les notes de copyright »
Explique le créateur de Java à propos de GNU Emacs

Le , par Michael Guilloux

127PARTAGES

18  1 
GNU Emacs est un éditeur de texte extensible, personnalisable, gratuit et libre créé par le fondateur du projet GNU Richard Stallman. C'est le plus populaire de la famille des éditeurs de texte Emacs. Disponible pour GNU/Linux, Windows et macOS, il est écrit en C et fournit Emacs Lisp comme langage d'extension.

L'Emacs originel est né dans les années 70 au MIT. Il a été écrit par Richard Stallman, initialement avec Guy Steele, un informaticien américain, spécialiste de la conception de langages de programmation et impliqué dans la conception de Common Lisp, Scheme, Fortran 90 et Java. L'Emacs originel ne fonctionnait que sur PDP-10, un ordinateur créé à la fin des années 1960 par Digital Equipment Corporation. De nombreuses versions d'Emacs ont donc été écrites dans les années suivantes pour d'autres systèmes informatiques, notamment pour les machines Lisp, des ordinateurs conçus pour interpréter Lisp efficacement et nativement. Emacs n'a pas tout de suite été écrit pour Unix.

Le premier éditeur similaire à Emacs à fonctionner sur UNIX est Gosling Emacs développé en 1981 par le créateur du langage Java, James Gosling. Il est écrit en langage C et son langage d'extension, Mocklisp, a une syntaxe très similaire au Lisp, mais n'a pas de liste ou d'autre type de données structurées. Gosling a en premier lieu permis de redistribuer Gosling Emacs sans restriction formelle, mais l'a vendu à Unipress Software en 1984, le rendant ainsi logiciel propriétaire.

Après Gosling Emacs, Richard Stallman a écrit sa deuxième implémentation d'Emacs, elle aussi développée en C et fonctionnant sous Unix. Le père du mouvement du GNU a-t-il volé le code source de James Gosling ? C'est ce qui semble ressortir d’une interview de James Gosling qui date du mois de mars, mais qui fait surface à un moment où la réputation et le leadership de Richard Stallman sont déjà mis à mal par l’affaire Epstein.

James Gosling : RMS a copié tout mon code source et juste changé les notes de copyright

James Gosling est interrogé sur son histoire par Hansen Hsu et Marc Weber du Computer History Museum. Près de trois heures s'écoulent et on aborde l'Emacs de Gosling. Dans le vif du sujet (après 2h53min) et rebondissant sur ce que racontait le créateur de Java, Hsu pose une question. « Alors, votre algorithme d'affichage a été incorporé par Richard Stallman dans GNU Emacs ? » En guise de réponse, Gosling affirme : « En fait, c'était plus que ça. Il a essentiellement pris tout le code source... C'est vrai. [GNU Emacs] a commencé avec tout mon code source et [RMS] a juste modifié les notes de copyright ».

« Vraiment ? Il a donc simplement volé votre programme... et l'a revendiqué comme étant le sien ? » Lance Hsu, qui ne manque pas de rire, apparemment étonné d'une telle déclaration. Mais James Gosling confirme ce qu'il vient de dire : « Ouais », avec un long soupir, donnant l'impression d'être gêné par une triste vérité qu'il venait de révéler. Il ne trouve presque plus les mots pour continuer pendant quelques secondes. Puis il commence à donner plus de détails sur l'histoire.

Ce qui s'est passé, d'après le créateur du langage Java, c'est qu'à cette époque, il est arrivé à une étape dans ses études où il a compris que soit il devenait "Mr Emacs" à vie, soit il accordait plus de temps à ses études pour obtenir son diplôme, et il a estimé qu'obtenir le diplôme était plus important. Alors, il s'est tourné vers tous ceux qui étaient susceptibles d'être intéressés par son Emacs pour leur demander s'ils voulaient en assurer la maintenance. Il s’est tourné notamment vers des gens du MIT, de l'UCLA, etc. Tous appréciaient bien Emacs, mais ils avaient tous des emplois à plein temps. Donc personne ne pouvait s'en occuper.

« J'ai même demandé à Stallman, et sa réponse n'était pas juste "non", c'était plutôt un "non" catégorique, surtout parce que c'était pour Unix... Le fait est qu'à cette époque, pour Stallman, Unix était le diable et il l'a clairement fait savoir", explique James Gosling qui a toutefois réussi à trouver deux personnes qui étaient prêtes à maintenir Gosling Emacs. Elles dirigeaient une petite entreprise appelée Unipress. James Gosling leur a demandé de faire en sorte que le programme soit gratuit pour les universités et à un prix dérisoire pour les autres utilisateurs. Et ils ont dit : « Bien. Nous sommes juste deux gars dans un garage. Nous n'avons pas besoin de beaucoup. Et [Gosling Emacs] semble être assez populaire, alors nous pensons que nous pourrons avoir de quoi payer notre loyer et nous nourrir. » C'est ainsi que Gosling Emacs a été cédé à la petite entreprise. Mais Stallman semble avoir été terrifié par l'idée que l'Emacs de Gosling était devenu un logiciel propriétaire alors que l'Emacs originel qu'il a écrit était associé à un esprit de partage et de coopération.


James Gosling, en 2005

« Stallman panique et il se procure une copie de mon code source, et modifie beaucoup de choses. En réalité, il ne l'a pas fait. Il a juste édité la quasi-totalité des en-têtes de droits d'auteur, avant de republier le programme sous le nom de GNU Emacs. Et ensuite, IBM et Digital Equipment (DEC) l'ont récupéré et commencé à le distribuer », explique Gosling. « Ainsi, les deux types dans le garage qui se débrouillaient bien ont soudainement découvert qu'IBM et DEC distribuaient leur produit gratuitement et qu'ils étaient en train de faire faillite. Ils ont donc décidé de poursuivre DEC et IBM. Cela s'est transformé en un très grand procès et ils ont gagné. C'était une sorte de victoire à la Pyrrhus. Donc, IBM et DEC leur ont payé des dommages, mais cela n’a pas arrêté GNU Emacs. »

« C'est ainsi que les choses se sont poursuivies et que ces gars-là ont changé d'activités, ce qui m’a toujours fait me sentir mal, car ils se sont vraiment fait avoir. Eh oui, donc au tout début de GNU Emacs, c'était littéralement ligne pour ligne [mon code source] ». James Gosling explique qu'il y a des « témoins experts » qui ont fouillé dans le code source de Richard Stallman et qui ont reconnu que c'était pareil à son code. « Ils ont en fait découvert que rien n'avait été changé dans certains des premiers fichiers sources de GNU Emacs distribués. » Mais ensuite, cela a évolué pour devenir le GNU Emacs que tout le monde utilise aujourd'hui.

L'interview révèle encore que lorsque l'entreprise Unipress a traduit IBM et DEC en justice, elle a ignoré Stallman simplement parce qu'il n'avait pas d'argent. « Je veux dire, vous ne pouvez pas poursuivre un sans-abri, n'est-ce pas ? Vous savez, [Stallman] avait des opinions étranges sur les modèles économiques de l'époque », explique Gosling dans la vidéo suivante (lire à partir de 2:53), où il raconte comment Stallman lui aurait piqué son code source.



RMS : Gosling semblait être influencé par le même esprit de partage et de coopération que celui de l'Emacs originel, mais il a changé par la suite

En 2002, RMS partageait son expérience avec Lisp et le développement de GNU Emacs. Parlant de sa deuxième implémentation d'Emacs, voici un extrait des propos du père du mouvement du logiciel libre : « 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 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. »

« Cela dit, ce n'était pas le premier Emacs écrit en C et fonctionnant sous Unix. Le premier a été écrit par James Gosling et s'appelait GosMac. Une 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 originel. J'ai d'abord distribué l'Emacs originel aux gens du MIT. Quelqu'un voulait le porter sur Twenex – il fonctionnait à l'origine sur l'Incompatible Timesharing Systema (ITS) 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 bénéficie. Personne n'a jamais essayé de faire appliquer cette règle, mais autant que je sache les gens coopéraient effectivement. »

« Au début, Gosling avait vraiment l'air de collaborer dans cet esprit. Il a écrit dans un manuel ce 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 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 », explique Richard Stallman, avant de continuer :

« À 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 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 à 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 nombres et quelques autres choses spécialisées. »

« J'en ai conclu que je ne pouvais pas l'utiliser et qu'il me fallait tout reprendre à zéro, à commencer par l'écriture d'un véritable interpréteur Lisp. J'ai progressivement adapté toutes les parties de l'éditeur aux structures de données du vrai Lisp plutôt qu'à des structures de données ad hoc, de manière à permettre aux programmes Lisp des utilisateurs d'accéder aux structures de données des parties internes de l'éditeur pour les manipuler. »


Richard Stallman

« Ce second 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é, sans empêcher qui que ce soit de le réutiliser et de le disséminer. »

Votre avis

Richard Stallman a-t-il vraiment volé le code de James Gosling ? La question se pose encore étant donné que rien dans les propos de Stallman ne laisse croire qu'il aurait copié le travail de James Gosling. Il affirme être parti de zéro.

La chose certaine est que Stallman n'a jamais cherché à se faire de l’argent sur Emacs. Il a voulu simplement le garder « libre ». Mais s'il s'avère que James Gosling a raison, la motivation de Stallman justifie-t-elle ce dont il est accusé par quelqu'un d'aussi respecté que le créateur de Java ?

Sources : Transcription de l'interview de James Gosling, Richard Stallman (Mes expériences avec Lisp et le développement de GNU Emacs)

Et vous ?

Qu'en pensez-vous ?
S'il s'avère que James Gosling a raison, la motivation de Stallman justifie-t-elle ce dont il est accusé ?

Voir aussi :

Richard Stallman était invité à prendre la parole au siège de Microsoft Research, l'initiateur du mouvement du logiciel libre partage son expérience
RedHat recommande la « diversité » au conseil d'administration de la FSF pour la succession de Richard Stallman dans une lettre ouverte
Un ancien mainteneur de noyau de GNU partage ses réflexions sur le départ de Richard Stallman : « il est temps que la communauté des logiciels libres quitte l'adolescence et passe à l'âge adulte »
« Richard Stallman ne parle pas et ne peut pas parler au nom du mouvement du logiciel libre », a déclaré la Software Freedom Conservancy qui désapprouve ses commentaires sur l'affaire Jeffrey Epstein

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de melka one
Membre éprouvé https://www.developpez.com
Le 19/10/2019 à 17:31
si RMS a été a l'origine de emacs et que la version de James Gosling sur unix est un portage on peut pas totalement dire que RMS a copier le code source une chose est sur c'est que James Gosling c'est inspiré des idées de RMS.

S'il s'avère que James Gosling a raison, la motivation de Stallman justifie-t-elle ce dont il est accusé ?
p'têt ben qu'oui, p'têt ben qu'non
8  0 
Avatar de LittleWhite
Responsable 2D/3D/Jeux https://www.developpez.com
Le 20/10/2019 à 11:43
Bonjour,

En réalité, prenons l'hypothèse (car moi, je ne peux pas vérifier telle ou telle chose) que Gosling a programmé tout l'emacs en C. Il l'a appelé Gosling Emacs, soit. Il le publie en open source. Soit.
RMS en fait et redistribue une copie.
Puis Gosling vend son projet, le code est fermé.

OK. En fait, vu comme ça, RMS n'a fait qu'un fork d'un projet open source. Et vu comme ça, c'est ce que l'on fait tous les jours (notamment sur GitHub).

Et du coup, dans cette formulation, le seul mal qu'aurais fait RMS, c'est de changer la licence (?) sans l'accord des auteurs originaux (les changements de licence sont légèrement compliqués dans le monde du logiciel libre (et c'est tant mieux) et il faut l'accord de tous les auteurs). Par contre, faire un fork (si licence le permet) et changer de nom, il n'y a rien de mal la dedans (Open Office -> form -> Libre Office).
8  1 
Avatar de François DORIN
Expert éminent sénior https://www.developpez.com
Le 20/10/2019 à 11:56
Citation Envoyé par melka one Voir le message
si RMS a été a l'origine de emacs et que la version de James Gosling sur unix est un portage on peut pas totalement dire que RMS a copier le code source
Si je comprends bien, du moment que quelqu'un a eu une idée et qu'elle est exploitée, il a un droit de regard et d'usage de tout ce qui en dérive ? On est à la limite du brevet logiciel ! Oracle doit être content, puisque c'est justement sur ce genre d'argument qu'il se base pour des procès des API Java contre Google !

s'avère que James Gosling a raison, la motivation de Stallman justifie-t-elle ce dont il est accusé ?
Absolument pas. On ne peut pas, d'un côté, vouloir lutter contre le vol de propriété intellectuel par des pays comme la Chine, et de l'autre, l'autorisé sous prétexte que c'est libre. Sans compter les conséquences : la licence actuelle d'Emacs serait, de facto, invalide, et tous les projets en dérivant également. Sauf à retirer tout le code originel (VLC a fait quelque chose de similaire dans le cadre d'un changement de licence, le retrait de toutes les portions de code dont les auteurs n'ont pu être joins / n'ont pas donné leur accord).
4  1 
Avatar de singman
Membre actif https://www.developpez.com
Le 25/10/2019 à 20:51
Pour apporter ma pierre à cette discussion, je pencherai fortement vers la version de RMS. En effet, le LISP implémenté dans Gnu Emacs est un vrai lisp, avec tous ces objets. Changer ce moteur en copiant le code source du Gosling Emacs et en patchant la partie lisp revient à réécrire 80% à 90% de l'éditeur... Gosling présente en plus RMS comme étant terrifié, paniqué (à l'idée qu'une société puisse être propriétaire de cet Emacs) alors que ça ne cadre absolument pas avec les idées et l'attitude de RMS à cette époque. Pour moi, Gosling veut se faire mousser et créer le buzz, rien de plus.
1  0 
Avatar de melka one
Membre éprouvé https://www.developpez.com
Le 20/10/2019 à 13:47
Si je comprends bien, du moment que quelqu'un a eu une idée et qu'elle est exploitée, il a un droit de regard et d'usage de tout ce qui en dérive ?
j'ai pas dit ça.
0  0 
Avatar de Oliver57
Membre à l'essai https://www.developpez.com
Le 21/10/2019 à 7:58
Citation Envoyé par matthius Voir le message
Copiez Ancestromania et Extended Man/XML Frames un maximum, c'est gratuit et libre, issu du véritable Open Source, consistant à partager ses sources.

Mais ne faites pas que cela, améliorez les ! Je vous serai reconnaissant !
Et il est ou le code source de Ancestromania et Extended Man ??? j'ai cherché j'ai pas trouvé...
0  0 
Avatar de matthius
Membre extrêmement actif https://www.developpez.com
Le 21/10/2019 à 8:47
Citation Envoyé par Oliver57 Voir le message
Et il est ou le code source de Ancestromania et Extended Man ??? j'ai cherché j'ai pas trouvé...
J'ai dû migrer vers ça :
https://sourceforge.net/u/matthieugiroux

Il semble que Software Heritage n'accepte toujours pas mercurial.
0  0 
Avatar de Ryu2000
Membre extrêmement actif https://www.developpez.com
Le 21/10/2019 à 11:49
Citation Envoyé par pedronatorBzh Voir le message
mais c'est arrivé avec mario 64
Ouais effectivement des modders ont pu réécrire le code de Super Mario 64 :
Citation Envoyé par Patrick Ruiz Voir le message
Les modders expliquent qu’ils y sont parvenus parce que Nintendo n’a pas activé les optimisations lors de la compilation. La manœuvre permet pourtant aux éditeurs de jeux vidéos de réduire la taille du code source et d’obscurcir sa structure. Les développeurs de l’éditeur japonais ont plutôt compilé sans le flag -O pour obtenir le binaire que la console exécute. En s'appuyant sur cette omission, les modders n’ont eu qu’à lire le code assembleur et à réécrire les fonctions qu’ils ont par la suite passées au test jusqu’à parvenir à une ROM fonctionnelle.
Bref là ce n'est pas le sujet, apparemment Stallman a fait un fork sans le dire. On lui a peut-être attribué trop de mérite pour son travail dans GNU Emacs.
Il y a des gens qui sont devenu ultra célèbre en s’accaparant le travail des autres (Edison a volé plein d'inventions à Tesla par exemple).
0  0 
Avatar de Anselme45
Membre extrêmement actif https://www.developpez.com
Le 22/10/2019 à 10:30
Que cela soit par le look ou par les actions, ces mecs me font penser à une équipe d'ado attardés.

Et je suis encore positif... En réalité, ils font plutôt penser à des gamins de 4 ans se chahutant à l'école maternel pour savoir qui peut s'assoir à droite de la maîtresse
0  0 
Avatar de SimonDecoline
Membre expert https://www.developpez.com
Le 19/10/2019 à 22:56
Citation Envoyé par Michael Guilloux Voir le message
S'il s'avère que James Gosling a raison, la motivation de Stallman justifie-t-elle ce dont il est accusé ?
A mon avis, oui.
Si Stallman n'avait pas diffuser Emacs en open-source, Emacs serait certainement mort et enterré depuis 30 ans. Gosling devrait plutôt remercier Stallman d'avoir donner autant de succès à Emacs.
3  4