NeoVim est meilleur, mais pourquoi les d�veloppeurs ne l'adoptent-ils pas, par Kush Creates
"L'�diteur de demain avec l'exp�rience utilisateur d'hier" - Une plong�e profonde dans le potentiel inexploit� de NeoVim et les am�liorations sp�cifiques dont il a besoin pour rivaliser avec les �diteurs de code et les IDE de l'�re moderne.
Des assistants de configuration guid�s au d�bogage int�gr�, d�couvrez comment NeoVim pourrait se transformer d'une curiosit� d'utilisateur en un outil de d�veloppement de choix pour les programmeurs de tous niveaux.
Pour votre information, EDI : Environnement de D�veloppement Int�gr�
Introduction
Dans le paysage en constante �volution des outils de d�veloppement, NeoVim t�moigne de la philosophie selon laquelle moins peut en effet �tre plus. Pourtant, malgr� ses prouesses techniques, sa vitesse fulgurante et ses possibilit�s de personnalisation infinies, de nombreux d�veloppeurs s'accrochent encore � leurs EDI encombrants comme � une couverture de s�curit�.
En tant que personne ayant dans� avec VS Code, Visual Studio, IntelliJ IDEA, NetBeans et WebStorm avant de trouver du r�confort dans NeoVim, j'ai �t� t�moin des deux c�t�s de cette fracture num�rique.
Depuis de nombreuses ann�es, NeoVim a �volu� de mani�re significative, mais la migration massive des d�veloppeurs reste difficile � suivre. Pourquoi ? Parce que parfois la puissance ne suffit pas - parfois, il faut rendre cette puissance accessible.
Les atouts ind�niables de NeoVim
Commen�ons par ce qui fait de NeoVim le joyau cach� des environnements de d�veloppement :
Une personnalisation in�gal�e :
- NeoVim n'est pas seulement personnalisable ; c'est pratiquement une toile vierge qui attend votre touche artistique.
- Les options de personnalisation sont virtuellement illimit�es. Vous voulez que votre �diteur joue un petit chant de victoire � chaque fois que vous corrigez un bogue ? Il existe probablement un script Lua pour cela.
- Vous avez besoin d'un flux de travail enti�rement personnalis� qui corresponde � votre style de codage unique ? NeoVim dit "oui, et quoi d'autre ?".
Efficacit� des ressources et performance :
- NeoVim excelle avec des performances rapides comme l'�clair, m�me dans les bases de code massives. Alors que VS Code s'�touffe sur ce projet d'entreprise monolithique, NeoVim ronronne, indexant les fichiers avec l'efficacit� d'un biblioth�caire caf�in�.
- NeoVim valide et indexe de grands projets en quelques secondes, tandis que les utilisateurs de VS Code restent � regarder leurs ic�nes tournantes, contemplant le sens de la vie.
- Cela devient douloureusement �vident lorsque l'on travaille sur de gros projets et que VS Code d�cide de faire une pause caf� � chaque fois que l'on ouvre un nouveau fichier. Dans ce laps de temps, les utilisateurs de NeoVim ont d�j� int�gr� trois fonctionnalit�s et en sont � la moiti� de la quatri�me.
L'exp�rience WSL :
- L'ex�cution de NeoVim dans WSL 2 avec votre distro Linux pr�f�r�e dans Windows Terminal est une v�ritable r�v�lation, c'est comme d�couvrir que les l�gumes peuvent avoir un bon go�t lorsqu'ils sont pr�par�s correctement.
- Cela cr�e un environnement de d�veloppement et une exp�rience qui sont � la fois puissants et flexibles. C'est comme avoir le meilleur de tous les mondes sans le gonflement qui vient avec la plupart des �diteurs de code et des IDE modernes.
Pourquoi les d�veloppeurs restent � l'�cart : Les dures v�rit�s
Malgr� ces avantages, NeoVim reste un outil de niche. Voici pourquoi les d�veloppeurs h�sitent � franchir le pas :
1. L'exp�rience d'int�gration : "Voici une toile vierge. Bonne chance".
Les nouveaux utilisateurs de NeoVim sont souvent accueillis par ce qui s'apparente � une ardoise num�rique vierge et une commande :help cryptique. C'est l'�quivalent de tendre � quelqu'un des mat�riaux de construction et de lui dire : "J'ai entendu dire que vous vouliez une maison".
L'exp�rience initiale se d�roule � peu pr�s comme suit :
- Installer Vim puis NeoVim
- L'ouvrir
- Voir un �cran presque vide
- Taper des lettres au hasard parce que vous ne savez pas comment entrer en mode insertion
- Google "how to setup NeoVim"
- Voir 2 � 3 heures de tutoriel mais toujours devoir maintenir la configuration
- Fatigu� parce que certains LSP, Linters, DAP et Formatters ne sont pas des outils efficaces, DAP et Formatters ne fonctionnent pas
- Installer VS Code
M�me avec des distros NeoVim comme LazyVim, AstroNvim, LunarVim et NvChad qui tentent de r�soudre ce probl�me, leur documentation pr�sume souvent d'un niveau de connaissance que les d�butants n'ont tout simplement pas. Ils lancent des termes comme "LSP", "treesitter" et "DAP" comme si tout le monde en connaissait la signification en t�l�chargeant leur distro.
La documentation vous dira "ajoutez simplement ceci � votre configuration" sans pr�ciser auquel des 37 fichiers de configuration ils se r�f�rent. Est-ce init.lua ? lua/plugins/config.lua ? Ce fichier al�atoire que vous avez cr�� il y a trois semaines dans une tentative d�sesp�r�e de faire fonctionner l'autocompl�tion ?
2. La courbe d'apprentissage : Le Mont Everest a de meilleures mains courantes
L'apprentissage de NeoVim n'est pas seulement raide, il est pratiquement vertical. Le paradigme d'�dition modale n�cessite de rec�bler votre cerveau, et les raccourcis clavier semblent avoir �t� con�us par quelqu'un qui aime vraiment voir les gens souffrir.
Le paradigme de l'�dition modale est fantastique une fois ma�tris�, mais pour les nouveaux venus, c'est comme essayer d'�crire avec sa main non dominante tout en se tenant sur la t�te.
"Oh, vous voulez copier une ligne ? C'est yy. Vous voulez coller ? C'est p. Vous voulez enregistrer votre fichier ? C'est :w. Vous voulez quitter ? C'est :q. Vous voulez sauvegarder et quitter ? C'est :wq. Vous voulez arr�ter sans sauvegarder ? C'est :q ! Vous voulez remettre en question vos choix d'�diteur ? Continuez � utiliser NeoVim pendant encore une heure".
Pendant ce temps, dans VS Code, les touches Ctrl + C, Ctrl + V et Ctrl + S fonctionnent exactement comme elles l'ont fait depuis l'aube des interfaces graphiques.
Cette friction initiale suffit � renvoyer de nombreux d�veloppeurs dans les bras confortables de leurs �diteurs d'interface graphique.
3. Investissement en temps : "Je veux juste coder, pas construire un �diteur"
Les d�veloppeurs sont souvent soumis � des d�lais tr�s courts. Le processus de r�flexion devient alors le suivant : "Pourquoi passer 20 heures � configurer Neteller ? � Pourquoi passer 20 heures � configurer NeoVim alors que je pourrais utiliser ces 20 heures pour construire quelque chose ?"
C'est l'�tat d'esprit de la � voie rapide vers le code �, et ce n'est pas faux. Lorsque votre responsable vous harc�le pour obtenir la fonctionnalit� qui devait �tre livr�e hier, exp�rimenter le plugin de ligne de statut le plus joli n'est pas vraiment une priorit�.
Imaginez que vous essayez de configurer des LSP, des DAP, des Formatters et des Linters pendant 3-4 heures et que vous n'obtenez toujours pas le r�sultat escompt�.
4. Une documentation qui suppose que vous savez d�j� tout
Les distros NeoVim comme LazyVim, AstroNvim, LunarVim et NvChad ont fait des progr�s, mais leur documentation donne toujours l'impression d'avoir �t� �crite par des d�veloppeurs pour des d�veloppeurs qui sont d�j� des experts de NeoVim :
"Ajoutez simplement ce snippet Lua � votre configuration"
Super, mais... quelle configuration ? O� ? Comment ? Dois-je red�marrer quelque chose ? Pourquoi rien ne se passe ? Pourquoi suis-je maintenant dans un terminal flottant avec des caract�res chinois apparaissant de mani�re al�atoire ?
5. Gestion des plugins : Le labyrinthe des d�pendances
L'�cosyst�me de plugins de NeoVim est robuste mais fragment�. Vous avez besoin d'un gestionnaire de plugins pour installer les plugins, puis vous avez besoin de plugins pour g�rer les plugins qui g�rent votre �diteur, puis vous avez besoin d'une configuration pour ces plugins, et enfin vous devez r�soudre les in�vitables conflits.
"Oh, vous avez install� le plugin A et le plugin B ? Dommage qu'ils aient tous les deux les m�mes raccourcis clavier et que votre �diteur plante � chaque fois que vous appuyez sur la barre d'espacement".
Aujourd'hui, nous sommes toujours confront�s � de multiples gestionnaires de plugins, � des plugins incompatibles et � la crainte constante que la mise � jour d'un paquet ne casse l'ensemble de votre installation. Pendant ce temps, les utilisateurs de VS Code cliquent sur "installer" et se remettent au travail.
Je ne dis pas que VS Code est meilleur, mais j'essaie de faire comprendre que VS Code permet aux d�veloppeurs d'installer/d�sinstaller des plugins en un clic, mais que m�me apr�s avoir cod� 10 lignes de configuration dans NeoVim, les changements seront interrompus.
6. Le trou noir de la configuration
L'�cosyst�me de plugins de NeoVim est robuste mais fragment�. Vous avez besoin d'un gestionnaire de plugins pour installer les plugins, puis vous avez besoin de plugins pour g�rer les plugins qui g�rent votre �diteur, puis vous avez besoin de configuration pour ces plugins, et enfin vous devez r�soudre les in�vitables conflits.
M�me avec les distros, la quantit� de bricolage n�cessaire pour obtenir un environnement productif peut �tre �crasante. Les d�veloppeurs se disent : "Pourquoi passer des jours � configurer un �diteur alors que je pourrais �crire du vrai code ?"
Lorsqu'un d�veloppeur travaille dans un environnement de d�veloppement commun au sein d'une entreprise ou d'une organisation, l'indentation de l'espace, le formatage et d'autres types de choses sont communs � tous les d�veloppeurs, de sorte qu'ils utilisent simplement le dossier de configuration .vscode commun.
.vscode est un dossier qui contient les param�tres de l'espace de travail de VS Code ainsi que les configurations.
7. Outils sp�cifiques au framework : "O� est mon g�n�rateur de composants XYZ ?"
Les �diteurs de code et les EDI modernes offrent des outils sp�cifiques au framework qui am�liorent consid�rablement la vitesse de d�veloppement. VS Code dispose d'extensions officielles pour Laravel, Angular.JS, React.JS, Svelte.JS, Vue.JS, Ruby On Rails, Django, Spring, etc. qui fournissent des LSP, du scaffolding, de la g�n�ration de code, de la formation de code et des aper�us sp�cialis�s.
L'int�gration des frameworks JavaScript de WebStorm, l'int�gration de Laravel de Herd, l'int�gration de Spring d'IntelliJ IDEA, l'int�gration de Django de PyCharm, l'int�gration de Ruby On Rails de RubyMine, tous ces EDI comprennent la relation entre les mod�les, les composants, les linters, les formateurs, les LSP et les services, en fournissant une navigation et un refactoring qui respectent ces relations.
Dans NeoVim, vous �tes principalement limit� � un support de langage g�n�rique sans la compr�hension profonde du framework qui rend le d�veloppement web moderne plus facile � g�rer.
8. Le syndrome "fonctionne sur ma machine"
L'un des aspects les plus frustrants de NeoVim est l'incoh�rence entre les environnements. Votre configuration parfaitement �labor�e qui fonctionne sans probl�me sur votre bureau Linux s'effondre soudainement sur votre MacBook. Essayez de mettre en place la m�me configuration sur une machine Windows, et vous pourriez tout aussi bien �tre en train de traduire du sum�rien ancien.
Ensuite, vous devez installer 90 d�pendances, puis vous vous �tes souvenu que vous aviez besoin d'un gestionnaire de plugins diff�rent, donc vous devez maintenant installer des gestionnaires de plugins et ensuite cela fonctionnera (peut-�tre).
Les utilisateurs d'�diteurs de code et de LSPs sont habitu�s � ouvrir leur �diteur sur n'importe quelle machine et � tout retrouver exactement l� o� ils l'ont laiss�, les param�tres synchronis�s via le cloud, les extensions automatiquement install�es. Les utilisateurs de NeoVim, quant � eux, sont occup�s � d�boguer les raisons pour lesquelles leur parseur treesitter et leurs LSPs se mettent en d�faut sur une machine mais pas sur une autre.
La voie � suivre : comment NeoVim peut conqu�rir l'�re moderne
Si NeoVim veut aller au-del� de son culte et entrer dans le courant dominant, voici la feuille de route :
1. Une exp�rience d'accueil r�volutionnaire
NeoVim a besoin d'un processus d'installation guid� et interactif qui pose des questions pertinentes et configure l'�diteur en cons�quence. Au lieu de jeter les utilisateurs dans le grand bain, il devrait offrir un assistant �tape par �tape :
Pr�f�rences de l'explorateur de fichiers :
- "O� voulez-vous que votre explorateur de fichiers s'affiche ? � gauche, � droite ou par d�faut ?"
- Des captures d'�cran claires comparant nvim-tree, neo-tree et oil.nvim avec des exemples visuels de chaque
- Configuration en un clic bas�e sur la s�lection
Prise en charge de la/des langue(s) :
- "Quelles sont les langues avec lesquelles vous travaillez ?" (menu d�roulant � s�lection multiple)
- Installation automatique des LSP, linters et formateurs appropri�s
- Pr�configur� avec les param�tres optimaux �valu�s par Developer Experience (DX)
- Explication claire de ce qui est install�
S�lection du th�me :
- Galerie visuelle de th�mes montrant des captures d'�cran de l'�diteur
- Cat�gories telles que "Dark", "Light" et "Dracula-vampire mode" (pour les sessions de codage nocturnes)
- Aper�u en direct au survol des options, similaire au s�lecteur de th�mes de VS Code
Pr�f�rences pour les lignes d'�tat et les onglets :
- Comparaison visuelle entre des options telles que lualine et staline
- Options d'onglets de m�moire tampon avec des captures d'�cran de barbar ou de bufferline
- Explications claires de ce que chaque option apporte
Int�gration Git :
- Des bascules simples pour les fonctionnalit�s communes de Git comme les indicateurs de goutti�re pour les changements
- Options d'int�gration de la ligne de bl�me
- Pr�f�rences de l'interface Commit
- Installation de LazyGit pour une meilleure interface graphique pour les trucs Git
Philosophie de liaison des touches :
- "Quel style de raccourci clavier vous convient ?" avec des options comme Vim classique, VS Code-style, le plus populaire ou le mieux not� par la communaut�
- Constructeur de raccourci clavier personnalis� avec d�tection des conflits
- G�n�ration d'une antis�che imprimable bas�e sur la configuration finale
Apr�s l'installation, un message popup : "Votre configuration personnalis�e a �t� sauvegard�e dans ~/.config/nvim. Une documentation d�taill�e sur les configurations et les plugins est disponible � l'adresse https://example.com/".
2. Int�gration p�dagogique par niveau
NeoVim devrait inclure un tutoriel interactif au sein m�me de l'�diteur, et non pas un simple vimtutor, mais une exp�rience moderne et ludique qui apprend progressivement aux utilisateurs.
NeoVim ou d'autres distros NeoVim devraient ajouter un syst�me bas� sur les niveaux et les points qui peut �tre utilis� localement dans l'appareil et l'utilisateur peut apprendre les raccourcis clavier de Vim et d'autres choses importantes en jouant � ce type de tuteur d'int�gration �ducative bas� sur les niveaux.
Un syst�me de niveaux et de points comme le fait boot.dev lorsqu'un d�veloppeur apprend un nouveau langage et/ou une nouvelle technologie � partir de son site web.
Imaginez une barre lat�rale avec des conseils quotidiens qui pr�sentent une nouvelle fonctionnalit� puissante chaque jour, avec des exemples anim�s. Ou un "NeoVim Challenge Mode" qui r�compense les utilisateurs qui apprennent des mod�les d'�dition efficaces.
3. Environnements pr�-configur�s
Au lieu d'attendre de chaque d�veloppeur qu'il construise son environnement parfait � partir de z�ro, NeoVim ou les distros NeoVim devraient offrir des configurations pr�-configur�es pour les sc�narios de d�veloppement les plus courants :
- D�veloppement Web (HTML, CSS, TailwindCSS, JavaScript/TypeScript)
- D�veloppement Python
- D�veloppement Go
- D�veloppement Rust
- D�veloppement Java / Kotlin
- D�veloppement C# / .Net
- D�veloppement C / C++
Chaque environnement serait livr� avec les plugins appropri�s, les serveurs de langage, les formateurs de code et les valeurs par d�faut ad�quates, tout en permettant une personnalisation.
4. Un march� unifi� de plugins
NeoVim a besoin d'une place de march� de plugins visuelle et consultable, similaire � la place de march� d'extensions de VS Code (https://marketplace.visualstudio.com/vscode/).
Les utilisateurs devraient pouvoir parcourir, installer et configurer les plugins sans avoir � �diter les fichiers de configuration.
La place de march� de NeoVim devrait inclure des �valuations, des critiques, des informations sur la compatibilit� et une installation en un clic avec une r�solution automatique des d�pendances.
5. Am�lioration de l'image et de la communaut�
Soyons honn�tes : NeoVim a un petit probl�me d'image. Il est souvent consid�r� comme un outil pour les �litistes ou les puristes de la programmation. Un marketing plus accessible qui met en avant les gains de productivit� sans le facteur d'intimidation pourrait aider � �largir son attrait.
Les d�veloppeurs qui utilisent NeoVim et Emacs sont consid�r�s comme des intellos et des personnes de la vieille �cole qui codent sur ThinkPad.
6. Les composants de l'interface graphique l� o� ils comptent
Tout en conservant son approche centr�e sur le terminal, NeoVim devrait adopter des composants d'interface graphique pour les t�ches o� ils apportent une r�elle valeur ajout�e :
- Interfaces de d�bogage int�gr�es
- Outils de diff et de fusion Git
- Visualisation de profil pour l'optimisation des performances
- Visualisation de donn�es pour les langages appropri�s
Ces composants pourraient �tre impl�ment�s en tant que fonctionnalit�s optionnelles qui maintiendraient la compatibilit� avec les environnements exclusivement terminaux tout en am�liorant l'exp�rience l� o� les capacit�s graphiques sont disponibles.[/LIST]
Le r�le de la communaut�
La communaut� NeoVim est passionn�e et bien inform�e, mais cette passion cr�e parfois une barri�re involontaire. Il y a une tendance � r�pondre aux questions des nouveaux arrivants par "RTFM" ou "consultez le wiki", en oubliant que le manuel et le wiki sont souvent aussi intimidants que l'�diteur lui-m�me.
Ce dont nous avons besoin est :
- Une documentation plus conviviale pour les d�butants avec des instructions claires et sp�cifiques
- Des tutoriels vid�o qui ne supposent pas de connaissances pr�alables de Vim. (ThePrimeagen, Teej_dv et Josean Martinez l'ont d�j� fait)
- Configurations de mod�les avec des commentaires d�taill�s expliquant chaque param�tre. (Kickstart.Nvim l'a d�j� fait)
- Une attitude plus accueillante envers les questions "idiotes"
Les distros essaient, mais...
Les distros NeoVim comme LazyVim, AstroNvim, LunarVim et NvChad tentent de combler le foss�, mais elles tombent souvent dans les m�mes pi�ges :
- Une documentation qui dit "ajoutez ceci � votre configuration" sans pr�ciser quel fichier et o� l'ajouter
- L'hypoth�se d'une connaissance de base de Vim et Lua
- Le fait de submerger les utilisateurs avec trop de fonctionnalit�s � la fois
- Le fait de se concentrer sur les utilisateurs puissants plut�t que sur les nouveaux venus
Ces distros doivent se rappeler que leur public cible comprend des personnes qui ouvrent Vim et NeoVim pour la premi�re fois, et pas seulement des v�t�rans de Vim � la recherche d'une nouvelle saveur.
Conclusion : L'avenir est prometteur, m�me s'il est l�g�rement flou
NeoVim a le potentiel pour devenir l'�diteur dominant de choix pour les d�veloppeurs de tous niveaux d'exp�rience. Sa base technique est solide, ses performances sont in�gal�es, et ses possibilit�s de personnalisation sont in�gal�es.
Ce ne sont pas les limitations techniques qui lui font obstacle, mais les facteurs humains : facilit� d'utilisation, courbe d'apprentissage et investissement en temps. En s'attaquant � ces probl�mes, NeoVim pourrait passer du statut d'"�diteur utilis� par les d�veloppeurs chevronn�s" � celui d'"�diteur qui rend tous les d�veloppeurs plus productifs".
� l'�re moderne, la question ne devrait pas �tre "Pourquoi les d�veloppeurs n'adoptent-ils pas NeoVim ?" mais plut�t "Pourquoi quelqu'un utiliserait-il quelque chose d'autre ?"
D'ici l�, je serai l�, heureux d'utiliser ma configuration sur-ing�ni�e de NeoVim, jugeant silencieusement mes coll�gues lorsqu'ils attendent que leurs EDIs se chargent, et les aidant occasionnellement � chercher sur Google "comment configurer Vim" lorsqu'ils l'ouvrent accidentellement.
Parce que certaines traditions ne meurent jamais.
Article sous licence Creative Commons Attribution 4.0 International.
Source : NeoVim Is Better, But Why Developers Aren't Switching To It?
Et vous ?
Pensez-vous que cette r�flexion est cr�dible ou pertinente ?
Quel est votre avis sur le sujet ?
Voir aussi :
Pourquoi les d�veloppeurs et les entreprises devraient r�fl�chir � deux fois avant d'utiliser des �diteurs � WYSIWYG �, par Kush Creates
Quels sont vos environnements de d�veloppement int�gr�s (EDI) pr�f�r�s en 2023 ? Pourquoi ? Partagez vos avis
La version 9.0 de l'�diteur de texte Vim est disponible, avec une nouvelle d�clinaison du langage de script, et une am�lioration des performances
Partager