Fermer le menu

Voici pourquoi certains développeurs utilisent toujours Vim

Nicolas Furno | | 21:56 |  86

Pourquoi est-ce que certains développeurs utilisent vi, cet éditeur de code qui date des années 1970 ? Souvent, ils utilisent plutôt Vim, une version améliorée des années 1990, mais cela reste ancien à l’échelle de l’informatique. De fait, c’est l’un des plus vieux outils destinés aux développeurs et même s’il existe aujourd'hui des dizaines et des dizaines d’éditeurs de code plus récents, plus modernes et plus complets. Ces développeurs restent pourtant toujours avec cette interface austère et uniquement textuelle.

Vim dans toute sa splendeur, avec ce même article en cours de rédaction. Cliquer pour agrandir
Vim dans toute sa splendeur, avec ce même article en cours de rédaction. Cliquer pour agrandir

Certains, parce qu’ils n’arrivent pas à sortir de Vim comme le veut la blague très répandue dans le milieu*. D’autres, parce que malgré son grand âge, ou plutôt grâce à son grand âge, Vim conserve quelques solides arguments à faire valoir. L’un de ces développeurs a publié récemment un article où il expose ses arguments que l’on pourrait qualifier sans appel.

Déjà, Vim est partout et notamment sur tous les serveurs. N’importe quelle distribution GNU/Linux est fournie avec ce vétéran et un développeur web retrouvera ses marques partout. Mais surtout, Vim est léger, étant dépourvu de toute interface et surtout ayant été créé à une époque où il n’y avait pas le choix, il fallait optimiser au maximum n’importe quelle application.

Léger, à quel point ? Ces tests de performance démontrent bien l’écart énorme entre Vim et les nouveaux acteurs du secteur, Atom de GitHub et Visual Studio Code de Microsoft. Précisons que ces deux logiciels sont multiplateformes et ils n’exploitent pas du code natif, mais des technologies du web. Ce qui a un impact significatif sur les performances, comme vous pourrez le constater vous-même…

Premier test : combien de mémoire vive consomme chaque éditeur de code pour ouvrir un fichier de 60 octets ? 349 Mo et 256 Mo pour Code et Atom, contre 5 Mo pour Vim. Cliquer pour agrandir
Premier test : combien de mémoire vive consomme chaque éditeur de code pour ouvrir un fichier de 60 octets ? 349 Mo et 256 Mo pour Code et Atom, contre 5 Mo pour Vim. Cliquer pour agrandir
Deuxième test, cette fois pour ouvrir un fichier de 6 Mo. Vim se contente de 12 Mo environ, quand Atom consomme à lui seul 845 Mo de mémoire vive rien que pour ouvrir ce fichier. Cliquer pour agrandir
Deuxième test, cette fois pour ouvrir un fichier de 6 Mo. Vim se contente de 12 Mo environ, quand Atom consomme à lui seul 845 Mo de mémoire vive rien que pour ouvrir ce fichier. Cliquer pour agrandir

Dans ses tests, notre développeur a aussi intégré Nano, un autre éditeur uniquement textuel plus récent, et Sublime Text, un éditeur plus moderne, mais développé avec du code natif. Vim n’est pas toujours en tête, par exemple il prend quatre fois plus de temps à ouvrir ce même fichier de 6 Mo. Néanmoins, il n’a besoin que de quatre secondes, quand Visual Studio Code fait attendre son utilisateur pendant vingt secondes.

Troisième test : combien de temps faut-il attendre pour pouvoir éditer ce fichier de 6 Mo ? Deux clans se distinguent à nouveau très bien. Cliquer pour agrandir
Troisième test : combien de temps faut-il attendre pour pouvoir éditer ce fichier de 6 Mo ? Deux clans se distinguent à nouveau très bien. Cliquer pour agrandir
Dernier test, une opération pour rechercher/remplacer 100 000 occurrences d’un même mot dans un fichier. Vim n’a besoin que de quatre secondes, là où Atom a nécessité environ 800 secondes. Oui, deux cents fois plus. Cliquer pour agrandir
Dernier test, une opération pour rechercher/remplacer 100 000 occurrences d’un même mot dans un fichier. Vim n’a besoin que de quatre secondes, là où Atom a nécessité environ 800 secondes. Oui, deux cents fois plus. Cliquer pour agrandir

Conclusion sans appel de ce développeur : apprenez Vim (ou si vous y tenez vraiment, Emacs, un concurrent qui date aussi des années 1970), ce sera forcément positif. Il est vrai que cet outil nécessite un apprentissage tant il est éloigné de nos habitudes modernes. Pour les personnes intéressées, il recommande cet ouvrage consacré entièrement à Vim.

* Si jamais vous êtes présentement coincé dans Vim, rappelons le raccourci pour quitter l’éditeur de code : :q. De rien.

Catégories: 

Les derniers dossiers

Ailleurs sur le Web


86 Commentaires Signaler un abus dans les commentaires

avatar BeePotato 07/08/2017 - 22:03

L'article était sympa, jusqu'à ce qu'il se mette à suggérer l'éventualité de se mettre à utiliser emacs. ;-)

avatar Nicolas Furno macG 07/08/2017 - 22:05

@ BeePotato :

Fixed.

avatar emacs_rules 07/08/2017 - 22:05 via iGeneration pour iOS

@BeePotato

La guerre est lancée !!! ( fallait s'y attendre macg)



avatar saoullabit 07/08/2017 - 22:27 via iGeneration pour iOS

@BeePotato

Me suis fait la même remarque :-)

avatar oomu 07/08/2017 - 22:29

Emacs ! *jette une choppe de bière aux perVers* :)

avatar Kenny31i 07/08/2017 - 22:05

Ça s'ouvre plus vite mais quel est le gain de productivité des nouveaux outils de développement face à cet ancêtre. L'article de l'évoque pas mais ce ne sont pas les 15secondes d'écart à l'ouverture qui pèse dans la balance sur une journée de 8h.
Lors de ma formation j'avais eu des cours sous VI et Emacs justement, mais lorsqu'on se retrouve avec un éditeur moderne j'ai du mal à concevoir que l'on puisse retourner sur cette antiquité. Néanmoins chacun voit midi à sa porte. Si certains le préfère, libre à eux ^^

avatar emacs_rules 07/08/2017 - 22:07 via iGeneration pour iOS

@Kenny31i

Tu a sûrement jamais utilisé toutes les option d'emacs et c'est plugin.
Honnêtement après avoir tester éclipse, Visual studio and co. Je me penche sérieusement de plus en plus sur emacs

avatar bibi81 07/08/2017 - 22:25

Ou XEmacs pour sa version (porno)graphique (oui bon ok, c'est douteux !). Moi je code dessus tous les jours !

avatar Kenny31i 07/08/2017 - 22:33

Effectivement, jamais xD. J'imagine que du coup cela vient apporter de la modernité à cet outil. J'utilisais Coda 2 fut un temps, mais maintenant pour les 3 lignes que j'écris dans l'année Sublime Text me suffit amplement.
Je sais que mes collègues tournaient tous sous IntelliJ et PHPstorm. Personnellement je trouvais ça d'une lourdeur extrême. Mais apparement c'était puissant. Comme quoi il en faut pour tous les goûts et tous les niveaux !

avatar heero 07/08/2017 - 22:08 via iGeneration pour iOS

Vous pouvez rajouter Adobe avec son Brackets dans le comparatif 🙂

avatar Mrleblanc101 07/08/2017 - 23:26 via iGeneration pour iOS

@heero

Brackets a été abandonné au profit du nouveau Dreamweaver

avatar EBLIS 08/08/2017 - 10:33

Abandonné par qui et pourquoi pour Dreamweaver?
Merci pour la réponse.

avatar Ielvin 07/08/2017 - 22:09 via iGeneration pour iOS

Moi ça me fait penser aux soft qui sont très mal codes et dont la lenteur est pensée pour être palliée par la puissance des machines sur lesquelles elles tournent.

Mais quand ça tourne sur des machines dites normales .. vous pouvez aller faire une course.

Une flegme d’optimiser tout ça. c’est navrant .

avatar olaola 08/08/2017 - 15:52

On sent la parole d'expert en développement.

Je pense que vous n'imaginez pas les subtitlités requises par des éditeurs comme VSC. Il ont fait des choix qui simplifient le développement d'extension, d'être cross plateforme, d'avoir un découplage UI / back qui va permettre des manières de travailler nouvelles.
On peut contester, ne pas aimer, préférer Vim etc... mais c'est être totalement étranger au développement que de penser que les développeurs de d'Atom ou VSC sont des fainéants.

avatar Jean-Jacques Cortes 07/08/2017 - 22:11 via iGeneration pour iOS

Pour la part, c'est BBEdit que j'utilise pour tous mes développements. Et en ne tapant que d'un doigt.

avatar bunam 08/08/2017 - 00:43 via iGeneration pour iOS

@Jean-Jacques Cortes

BBEdit oui pour certaines chose comme du bash ou des actions bien spécifiques
Sinon NetBeans pour les projets PHP
Eclipse et surtout IntelliJ pour Java
Nano sur les serveur quand je n'utilise pas Interarchy + BBedit
Vi heu bah je n'aime pas la torture

Et le doigt c'est au moins un de chaque côté ? 👉👈

avatar Jean-Jacques Cortes 08/08/2017 - 08:52

@bunam
Non, juste l'index droit, vraiment nul à la frappe.

avatar lmouillart 07/08/2017 - 22:11

vi/vim c'est le logiciel moisi que l'on doit utiliser quand emacs n'est pas dispo ?

avatar saoullabit 07/08/2017 - 22:29 via iGeneration pour iOS

@lmouillart

Je vais demander une modération du commentaire

avatar phoenisis 07/08/2017 - 22:31 via iGeneration pour iOS

@lmouillart

C’est exactement ça ! Emacs c’est la vie sur un terminal !
Vi/Vim/nano c’est juste le temps d’installer emacs

avatar IGerard 08/08/2017 - 06:01 via iGeneration pour iOS

@lmouillart

Ha ha, c’est exactement ça :)

Xcode et Emacs pour mon usage quotidien

avatar KeepAlive 07/08/2017 - 22:16

J'utilise depuis une dizaine d'années BBEdit / TextWrangler, un vétéran sur Mac (existe depuis 1992), je le trouve particulièrement rapide et peu gourmand en mémoire même pour manipuler des gros fichiers. S'il offre bien sûr la coloration syntaxique dans de multiples langages et l'auto-complétion des variables existant dans le même fichier, il ne fait pas d'auto-complétion en recherchant dans tous les fichiers d'un projet comme d'autres IDE plus lourds comme Eclipse. On ne peut pas tout avoir...

avatar SHHHHHH 07/08/2017 - 22:16 via iGeneration pour iOS

Remarque pour la dernière ligne: [Echap] :q
Si on ne sait pas utiliser vi on ne connais pas le rôle d'[Echap] 😉

avatar walterskinner 07/08/2017 - 22:43 via iGeneration pour iOS

@SHHHHHH

En plus la vraie commande serait plutôt [echap]:q!
Le ! Pour confirmer la sortie de vim sans sauvegarde 😀

avatar Mehuneau 07/08/2017 - 22:49 via iGeneration pour iOS

@walterskinner

"En plus la vraie commande serait plutôt [echap]:q!
Le ! Pour confirmer la sortie de vim sans sauvegarde 😀"

Parfaitement !

J'allais le dire. En fait je venais de le dire, moins bien.

Pages