Voici pourquoi certains développeurs utilisent toujours Vim

Nicolas Furno |

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.


avatar BeePotato | 

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

avatar Nicolas Furno | 

@ BeePotato :

Fixed.

avatar emacs_rules | 

@BeePotato

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

avatar saoullabit | 

@BeePotato

Me suis fait la même remarque :-)

avatar oomu | 

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

avatar Kenny31i | 

Ç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 | 

@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 | 

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

avatar Kenny31i | 

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 | 

Vous pouvez rajouter Adobe avec son Brackets dans le comparatif ?

avatar Mrleblanc101 | 

@heero

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

avatar EBLIS | 

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

avatar Ielvin | 

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 | 

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 | 

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

avatar bunam | 

@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 | 

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

avatar lmouillart | 

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

avatar saoullabit | 

@lmouillart

Je vais demander une modération du commentaire

avatar phoenisis | 

@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 | 

@lmouillart

Ha ha, c’est exactement ça :)

Xcode et Emacs pour mon usage quotidien

avatar KeepAlive | 

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 | 

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 | 

@SHHHHHH

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

avatar Mehuneau | 

@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.

avatar legimly | 

coda aussi est. pas mal ;-)

avatar hawker | 

Les tests montrent surtout a quel point sublime est excellent. Il peche nul part, voir même excelle partout plutôt, tout en ayant une superbe gui.

avatar kitetrip | 

Effectivement j'utilise tous les jours Sublime et il est vraiment top.
En plus il reste relativement leger quand on voit ses concurrents

avatar françois bayrou | 

+1

avatar Rictusi | 

Team Sublime! +1

Les tests montrent bien sa supériorité en effet.

Mes collègues utilisent Atom et Visual Studio. Quelques fonctions sont intéressantes, mais pas indispensable pour moi.

Visual Studio, j'ai lu les CGU avant d'installer, autant dire que je n'ai jamais cliqué sur le bouton accepter.

Et Atom est beaucoup trop lourd, pas besoin de graphique pour s'en rendre compte, il suffit de regarder un collègue le lancer xD.

Après vim ou emac, il faudrait que je m'y mette un jour...

avatar BeePotato | 

@ hawker : « Les tests montrent surtout a quel point sublime est excellent. Il peche nul part, voir même excelle partout plutôt, tout en ayant une superbe gui. »

Hum. De mon point de vue, son interface est justement par où il pèche.

avatar webHAL1 | 

@hawker

Entièrement d'accord ! Sublime Text est vraiment un logiciel idéal pour qui veut écrire du code efficacement.
À mon avis il n'est pas aussi simple d'accès que d'autres, mais il reste infiniment plus facile à appréhender que vi, même si je ne pense pas que les deux cherchent à répondre au même besoin.

Cordialement,

HAL1

avatar oomu | 

j'utilise toujours Vi régulièrement. Tellement la commande est rapide à taper, les raccourcis courts pour se déplacer rapidement et le programme capable de passer à dizaines de milliers de lignes plus bas, modifier, sauver, zou à la maison!

Mais... mon préféré reste Emacs. HAHA !
En particulier XEmacs que j'ai utilisé souvent pour faire des sites webs, avec d'excellents modules de complétion, coloration et validation en temps réel du code html/xhtml. super.

avatar lmouillart | 

"Tellement la commande est rapide à taper" => alias vi=emacs
(-:

avatar oomu | 

pisque c'est comme ça, je retourne à "e".

avatar saoullabit | 

@lmouillart

Hey !!! La modération !!!!

avatar nayals | 

J'ai justement tapé cette question sur Google hier. Flippant.

avatar Mehuneau | 

Et si ça ne marche pas,
:q!

avatar ever1 | 

Vous êtes pas tres juste avec vim dans le screen shoot, mettez lui des plugins de coloration, autocompletion, un thème et changez de police, ce sera plus joli

avatar Captain Bumper | 

Sur le dernier graphique, Atom prend 800 secondes pour réaliser la tâche et non 80 soit 200 fois plus que Vim... à moins que le graphique soit faux...

avatar Nicolas Furno | 

@ Captain Bumper :

Ah mais oui, même moi j’avais du mal à y croire… ?

avatar NerdForever | 

:q

:q

avatar Aimable | 

Je ne suis pas developer ou coder, mais j'utilise vie tous les jours. Lorsque j'ai commencé à utiliser Linux, fin 90's, rien que pour configurer l'interface graphique, il fallait aller dans des fichiers en ligne de commande. J'utilisais pico ou nano. Mais je suis vite passé à vim car au taf, sur les serveurs il n'y a que ça et bien, je ne peux pas utiliser autres chose. Alors pourquoi cette guegeurre stérile entre vi(m), nano et emacs (à part son côté humoristique bien sûr) ? Chacun fait comme il a l'habitude surtout. La finalité est la meme. Et en ligne de commande on a pas la possibilité de se taper une interface graphique qui mange 800Mo de ram d'une [censure] propriétaire ?

avatar ErGo_404 | 

Le problème de vim, c'est que pour être productif et à peu près au niveau des IDE récents, il faut passer des heures à apprendre les raccourcis et installer/configurer les plugins. Le gain de productivité est complètement effacé par le temps qu'il faut pour tout mettre en place.

Je comprends éventuellement ceux qui sont restés dessus car ils ont passé le temps pour apprendre et la vie leur semble facile, mais pour un débutant en programmation il y a suffisamment de galères comme ça pour ne pas se rajouter un fardeau comme la courbe d'apprentissage de vim.

Sans compter que comparer l'utilisation en ram n'a pas vraiment de sens. Sur un serveur, on peut utiliser nano qui est présent partout et très léger, mais beaucoup plus simple. Sur une machine de développement, un IDE complet reste plus confortable (et parfois obligatoire, pour développer sur iOS ou Android par exemple) et le problème de la ram ne se pose pas forcément.

avatar byte_order | 

> Sur un serveur, on peut utiliser nano qui est présent partout et très léger

Nope. Nano n'est pas dispo sur tous les serveurs.
Le seul éditeur qu'on trouve sur tous les Unix, que ce soit Linux, AIX, Solaris, OS X etc quelque soit leur version et distribution, c'est VI, parfois VIM.
Mais pas Nano.

C'est comme dire que Bash est dispo partout. C'est faux. Le seul shell qu'on trouve partout, c'est SH. Soit via Bash, soit parce qu'il n'y a pas Bash, mais bien Sh.

Au final, une maitrise minimal des outils absolument de base reste indispensable.

A l'instar de savoir se servir d'un marteau, un tourne-vis, une perceuse...

avatar marc_os | 

@ErGo_404 :
Ah il faut apprendre ?
Mais c'est terrible.
Je comprends que ce soit rédhibitoire de nos jours et que seuls les "vieux" qui ont "appris à apprendre" apprécient vi.

avatar bobdu87 | 

C'est pourtant pas difficile a comprendre.... outil qui demande un apprentissage pas facile mais qui par la suite offre une productivité hors norme et une consommation de ressources minimale....
Absolument rien de neuf là dedans...

Quand a atome, c'est bien mais c'est du javascript avec différent frameworks et le surcout délirant qui va avec...

avatar marc_os | 

@bobdu87 :
"Apprentissage pas facile"
Oui, je comprends, c'est dur. En plus il est préférable de connaître un peu de vocabulaire anglais !
- a : append
- i : insert
- esc : escape write mode
- b : before
- w : word
- q : quit
- wq : write & quit
Etc

avatar persi | 

moi il me semble que ce que montre les benchs c'est qu'il faut utiliser sublime, qui est fantastique d'ailleurs.

avatar byte_order | 

certes. Faut-il encore pouvoir l'installer.

Et pour ça, il faut parfois en passer par des outils plus simple encore, comme vim, pour pouvoir configurer d'autres trucs afin de pouvoir installer SublimeText.

^_^

Pages

CONNEXION UTILISATEUR