Guerre des éditeurs de texte

Septembre 2011

S'il y a bien une guerre qui fait rage depuis des décennies dans le monde de la programmation c'est celle des éditeurs de textes.

Oui cette fois on ne fais plus dans la dentelle, on va parler de plus en plus programmation sur ce site est c'est tant mieux vu qu'on s'adresse à des geeks, développeurs ou simples curieux désirants s'instruire.

Bon, on ne sait pas vraiment qui tu es ami lecteur (ou lectrice) mais j'espère que tu seras intéressé par ces propos.

Les origines de la guerre des éditeurs de textes

La sainte guerre des éditeurs de textes à lieu depuis de nombreuses années. Pour mieux comprendre se phénomène il faut savoir que les éditeurs de textes sont importants pour la programmation de logiciels. Ainsi, plus un éditeur est pratique et perfectionné et plus on arrive à programmer des logiciels rapidement.

Il s'agit évidemment de la théorie car, en pratique, beaucoup d'autres facteurs peuvent ralentir le développement d'un logiciel. On pourra noter parmi ces facteurs : la complexité du logiciel, le langage de programmation utilisé (C, Java, Perl, Python, Objective-C, etc.) et la compétence du programmeur.

Mais, il faut bien l'admettre : un éditeur de texte qu'on maîtrise nous fait gagner du temps. Il s'agit là de la première origine de la guerre des éditeurs de textes.

De plus, le langage est souvent imposé en entreprise. On impose au programmeur de développer un site Internet en HTML avec le langage de script interprété PHP et le serveur de base de données MySQL (il s'agit d'un exemple). Par contre, l'employeur laisse souvent au programmeur le choix de l'éditeur de texte.

Il s'agit là aussi d'une autre origine de cette guerre. En effet, il n'est pas rare de trouver dans une même équipe de développement des personnes utilisants des éditeurs différents.

Où a lieu la guerre des éditeurs ?

La guerre peut avoir lieu à n'importe quel endroit ou des programmeurs peuvent se rencontrer. Depuis le milieu des années 90 elle a surtout lieu sur Internet.

Généralement les programmeurs aiment se chamailler et "troller" sur les éditeurs en commentant chaque annonce d'une nouvelle version d'un de ces logiciels ou, plus simplement, en échangeant sur les forums de discussion dédié à UNIX ou Linux.

On trouve aussi des traces de cette guerre sur les groupes de discussions USENET dédiés aux systèmes d'exploitation, à la programmation ou à l'informatique en règle générale.

Les débuts de la guerre des éditeurs de textes

Le début de cette guerre (Wikipedia parle de tradition ce qui est plutôt bien trouvé comme terme) remonte aux années 70.

Il faut bien comprendre qu'à cette époque l'informatique n'en est qu'à ses débuts et que l'informatique personnelle n'a pas encore débutée. Ainsi, l'une des priorités logicielles sur un système d'exploitation est de concevoir un éditeur de texte qui va permettre la modification de l'OS et la création de nouveaux programmes.

Pour simplifier, l'histoire de la guerre des éditeurs de textes nous allons directement attaqué avec le logiciel ed créé en 1971 par Ken Thompson pour UNIX. ed est le premier éditeur pour UNIX. Il a la particularité d'être assez abstrait lorsqu'on l'utilise aujourd'hui car il s'agit d'un "éditeur de ligne" (line éditeur).

En effet, les machines n'étaient pas assez performante à l'époque pour permettre l'affichage de l'intégralité d'un fichier. Du coup, ed ne lit le fichier que ligne par ligne.

Cette particularité fait qu'encore aujourd'hui ed est utilisé pour lire des fichiers de grande taille (plusieurs centaines de giga octets) sans soucis !

Mais voilà, un petit malin à créé un logiciel encore plus performant quelques années après : ex. ex est un dérivé de ed et propose toujours ce mode d'édition surprenant, ligne à ligne.

Inspiré par ex, Billy Joy écrit en 1978 la première implémentation du logiciel vi. vi est un éditeur de texte encore très apprécié aujourd'hui pour son fonctionnement par mode.

Ainsi, dans le mode "insertion" le fichier peut être modifié. Cependant, une fois vi passé en mode "visuel", le fichier ne peut pas être modifié (lecture seule) et est donc protégé contre les mauvaises manipulations.

En parallèle, le développement de ce qui deviendra Emacs début en 1976. A l'origine Emacs n'est pas encore un vrai éditeur mais plutôt un ensemble de macros pour un autre éditeur.

Mais petit à petit son créateur, Richard Stallman, enrichi son logiciel pour le rendre de plus en plus performant et, surtout, indépendant de tout autre outil.

Depuis la fin des années 70, les développements de vi et Emacs avancent rapidement et plusieurs versions se succèdent. Malheureusement pour Emacs, vi est inclus gratuitement dans le système UNIX de l'université de Berkley rendant très populaire vi comme éditeur.

Mais, au milieu des années 80, Emacs est complètement réécrit et devient un logiciel Open Source et donc gratuit. Il peut ainsi être distribué rapidement et devient l'un des éditeurs les plus appréciés sur UNIX.

En effet, Emacs ne dispose pas de plusieurs modes et s'utilise comme les éditeurs modernes. Lorsqu'on ouvre un fichier texte avec Emacs, le fichier est directement modifiable.

Au milieu des années 80 la guerre des éditeurs est donc lancée. Les programmeurs doivent alors choisir leur camp : vi ou emacs. (d'autres éditeurs existaient à l'époque mais ces deux représentants sont les logiciels les plus avancés du genre)

Emacs ou vi : quelle différence ?

La page wikipedia mentionnant la guerre des éditeurs fait surtout état de la concurrence entre vi et Emacs. Pourtant, la guerre des éditeurs porte sur d'autres logiciels que nous verrons plus tard.

Les avantages et inconvénients de chaque éditeurs sont une constituante importante de la guerre et alimentent les discussions les plus intenses.

Seulement, comme vu précédemment, seuls les compétences de l'utilisateur vont faire la différence. Un bon programmeur doit être capable d'utiliser en toute circonstance ces éditeurs (on ne sait jamais sur quelle machine on doit intervenir).

Pour mieux comprendre ce qui se passe (et alimenter à nouveau la guerre), nous allons écrire quelques arguments en faveur d'un éditeur ou de l'autre :

vi :

  • vi est beaucoup plus léger et rapide qu'emacs
  • vi est disponible sur tous les unix et linux
  • vim, la version boostée de vi, est scriptable dans de nombreux langages
  • emacs reconnait la supériorité de vi avec un mode vi (nommé "viper-mode") pour imiter ce dernier

emacs :

  • emacs peut être utilisé pour beaucoup plus que de l'édition de texte grâce à un langage de programmation et des plugins (lire ses mails, par exemple)
  • emacs ne nécessite pas de changement de mode pour éditer un texte
  • emacs fonctionne plus naturellement pour un utilisateur débutant
  • emacs inclus un mode vi (nommé "viper-mode") pour imiter ce dernier et faciliter le passage d'un éditeur à l'autre (oui cet arguments est un avantage pour les deux éditeurs)

Il existe encore beaucoup d'autres arguments (certains très drôles en faveur d'un éditeur ou d'un autre), mais je pense que vous avez compris le principe.

Une guerre des éditeurs de texte dans la guerre des éditeurs de textes

Mais qu'est-ce que c'est que cette histoire ? Et bien tout simplement, la guerre des éditeurs de texte ne consiste pas seulement à sélectionner un éditeur entre vi, emacs ou tout autre représentant du genre.

Car une fois qu'on a choisi son éditeur, il faut ensuite choisir sa variante préférée !

Ainsi, certains utilisateurs de vi ne jure que par vim qui est une déclinaison de vi avec quelques ajouts (vim : "vi improved") ou encore Elvis (et oui !) un autre clone très réussi.

De même, les utilisateurs d'emacs passent des nuits entière à se demander lequel de GNU Emacs, JED, JOE ou MicroEmacs est le top du top en matière d'Emacs.

Une fois de plus, pour une bonne guerre des navigateurs tout est question d'arguments. Les utilisateurs de MicroEmacs ne manqueront pas de souligner que ce dernier a été utilisé par Linus Torvald pour programmer le célèbre système Linux...

Les sous-guerre des éditeurs

Si vous n'êtes ni en faveur d'emacs ni de vi, vous pouvez tout de même participer à la guerre même si ce n'est pas tout à fait la vraie guerre ! Mais attention, il vous faudra de sérieux arguments pour défendre votre logiciel préféré.

Le top en matière d'argument est d'utiliser un éditeur de texte sur un système d'exploitation obscure ou difficilement accessible.

Ainsi, une guerre a vu le jour entre l'éditeur sam et l'éditeur acme tous deux disponibles uniquement sur le système Plan9 de Bell Labs !

Mais rassurez-vous si vous utilisez quelque chose moins courant mais de pas obscure (comme un Mac) vous pourrez aussi vous lancer dans de grandes discussions sur le sujet.

Si vous utilisez un éditeur très moderne (UltraEdit) ou un ide (genre XCode pour programmer sous Mac) vous pouvez naturellement participer à la guerre. Mais attention car les éditeurs vi et emacs sont aussi disponibles sur Windows et Mac OS X.

En participant à une guerre d'éditeurs sur un forum de discussions vous allez devoir répondre à des questions du style "Comment tu fais avec ton éditeur XXXXXX pour remplacer les occurrences du mot "ultra" uniquement s'il apparait en début de ligne ?".

Bref, armez-vous de courage et d'une bonne connaissance de votre éditeur !

Si vous souhaitez tout de même aller au combat, voici une liste de quelques éditeurs intéressants à essayer (non encore cité dans cet article) :

  • pspad (windows)
  • notepad++ (windows)
  • textwrangler (mac os x)
  • nano et pico (multi-plateforme)
  • smultron (mac os x)

Quelques exemples notables de guerres sur le web

Voici quelques liens amusants qui vont vous permettre de constater l'ampleur du conflit qui anime la communauté informatique mondiale. Mais, vous constaterez aussi que l'art du troll à son importance :

  • slashdot (anglais) : ce sujet concerne un livre sur VIM, naturellement des les premiers commentaires on conseille de ne pas lire ce livre mais d'utiliser emacs à la place !
  • slashdot, toujours (anglais) : article qui concerne la sortie de la dernière version de emacs. Une lecteur indique que ce logiciel pourrait être très intéressant s'il était seulement capable d'éditer des fichiers textes (oups) !
  • linuxfr (français) : encore un sujet sur la sortie de Emacs 23 avec quelques commentaires de lecteurs bien sentis.

Est-ce que tout ceci est bien sérieux ?

Vous êtes en droit de vous poser la question, c'est naturel. Et bien non, cette guerre n'est pas sérieuse du tout puisque tout le monde sait que vi, enfin vim plus particulièrement, est le meilleur éditeur de texte disponible sur le marché.

Et au cas où vous seriez sceptiques LinuxJournal en a la preuve via un sondage effectué en 2009 sur ces lecteurs. Vi serait utilisé par 36% des programmeurs utilisant Linux !

Un petit lien vers la page Wikipedia sur la guerre d'éditeur pour finir de vous divertir.

Pour d'autres articles, cliquez ICI.