IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

NeoVim est meilleur, mais pourquoi les développeurs ne l'adoptent-ils pas
Par Kush Creates

Le , par Kush Creates

5PARTAGES

4  0 
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.


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
Vous avez lu gratuitement 20 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.

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