Aller au contenu

Les éditeurs de texte et les langages de programmation

Un éditeur de texte permet avant tout d'éditer du texte brut : une suite de caractères. En Informatique, on trouve du texte brut partout : un programme écrit dans un langage de programmation classique est un fichier texte, une page HTML est un fichier texte, la plupart des fichiers de configuration des logiciels en sont également...

Il est important pour vous d'avoir un éditeur avec un bon support pour le langage que vous êtes en train de manipuler. C'est un énorme gain de temps, car il va pointer immédiatement vos lacunes en utilisant les outils disponibles pour vous y aider. Lorsque vous serez plus expérimenté, cela sera encore important pour éviter quelques fautes d'inattention, mais vous apprécierez surtout d'avoir sous la main la documentation de votre propre projet, sa capacité de modification (refactorisation du code), sa capacité d'insertion de patron de code, de débogage intégré, etc.

Il y a de très nombreux langages utilisés. Et de nouveaux sont créés régulièrement. En 2007, la conférence HOPL III, sur l'histoire des langages de programmations, a dénombré plus de 8 500 langages créés depuis le début de l'informatique. Certains ont disparu, ou sont devenus anecdotiques, mais ce décompte de 8 500 n'inclut pas 20% du top50 de la popularité des langages qui sont apparus après 2007 ((TIOBE Index)[https://www.tiobe.com/tiobe-index/]) : Go, Rust, Node.js, Julia, Elixir, Raku, Swift, Kotlin, TypeScript, Dart, Clojure et Nim.

Pour écrire ces langages, vous avez deux types d'éditeurs de texte : les spécialisés et les généralistes. Les éditeurs spécialisés dans quelques langages vont très bien faire ces quelques langages. Par exemple, Spyder 5 est un excellent éditeur pour Python. Néanmoins, il sera un choix moyen, voir mauvais, pour presque tous les autres langages.

À L'Ensimag, vous utiliserez une quinzaine de langages différents dès la première année, et ce nombre va croitre encore en 2A, 3A, puis dans votre vie professionnelle. Nous vous conseillons donc d'apprendre à vous servir de très bons éditeurs généralistes.

Nous en avons sélectionné trois pour leurs complémentarités et leurs utilités.

Et pour savoir celui qui vous convient à vous, et dans quel cadre, nous vous conseillons d'apprendre sérieusement les bases des trois éditeurs.

  • Vim, ou neovim, pour sa capacité d'édition ultra-rapide et son extensibilité pour en faire un IDE moderne. Il a hérité des commandes de son grand-père, ed (1969), qui était l'éditeur standard UNIX avant l'invention des écrans. Vous ne voulez pas perdre du temps quand il faut une minute d'impression par ligne de code. Son grand-oncle, sed, le frère de ed, est toujours un outil classique de manipulation automatique de flot de texte (Stream EDitor) que vous utiliserez régulièrement dans vos scripts bash.
  • Emacs, un langage de programmation dynamique camouflé en éditeur. Sa compétence unique est de pouvoir combiner ses dizaines de milliers de fonctions. Les autres éditeurs ont des greffons (plugins) qui permettent d'additionner des fonctionnalités, les unes à côté des autres. Emacs les combinent. Cela lui donne des capacités hors normes. Vous l'apprécierez avec votre progression, car vous pourrez injecter votre expérience dans cet éditeur et le façonner à vos besoins. Org-mode et Magit sont ses killer applications du moment qui rendent jaloux les autres IDE.
  • Visual Studio Code, l'éditeur de texte (de Microsoft) à la mode. Lui demande une forte courbe d'apprentissage dans sa configuration, mais c'est invisible au début car il masque les difficultés (clic sur un bouton, 90% de réussite). C'est un problème pour votre compréhension de ce qui se passe. Il est à la mode pour quelques années seulement. Depuis 2000, ce rôle de troisième éditeur à la mode à l'Ensimag a été tenu successivement par : nedit, netbeans, gedit, eclipse, sublimetext, atom, et maintenant VS Code. 7 éditeurs différents sur 20 ans.

Il y a beaucoup d'autres challengers libres comme kate (qui ressemble visuellement à VS code, mais ne masque rien), helix, kakoune, qtcreator, kdevelop, code::blocks, geany, nano, ou des challengers propriétaires, comme la famille JetBrains (Fleet, IntelliJ, CLion, Goland, Rider, etc.), SublimeText, Cursor ou XCode (macOS).