Voici quelques-unes des caractéristiques d'intérêt pour les développeurs :
- Un très puissant éditeur, permettant le chercher-remplacer sur les chaînes et les expressions régulières (motifs), sauter à la fin ou au début d'un bloc, etc.
- Menus déroulants et aide en ligne.
- Colorisation syntaxique en fonction du langage et indentation.
- Totalement personnalisable.
- Vous pouvez compiler et déverminer des programmes dans Emacs.
- Sur erreur de compilation, vous pouvez aller directement à la ligne de code source fautive.
- Une interface amicale au programme info utilisé pour lire la documentation hypertexte GNU, incluant la documentation sur Emacs elle-même.
- Une interface agréable à gdb, vous permettant de voir le code source au fur et à mesure que vous vous déplacez dans votre programme.
- Vous pouvez lire les nouvelles Usenet et envoyer des e-mails pendant que votre programme est en compilation.
Dans la culture UNIX, Emacs est traditionnellement l'un des deux belligérants de la guerre des éditeurs, son opposant étant vi (ou son équivalent amélioré Vim).
En août, l’équipe responsable de son développement a annoncé la disponibilité de GNU Emacs 27.1 qui est livrée avec :
- la possibilité d'utiliser la bibliothèque HarfBuzz pour la mise en forme de texte. HarfBuzz est un moteur de mise en forme de texte. Si vous donnez à HarfBuzz une police et une chaîne contenant une séquence de points de code Unicode, HarfBuzz sélectionne et positionne les glyphes correspondants dans la police, en appliquant toutes les règles de mise en page et les caractéristiques de la police. HarfBuzz vous renvoie ensuite la chaîne sous une forme adaptée à la langue et au système d'écriture.
- La prise en charge de l’analyse native JSON.
- Un support intégré pour les entiers de taille arbitraire.
- Le support des conventions XDG pour les fichiers init.
- Etc.
Depuis, une discussion intéressante a surgi au sein de la communauté. Le sujet du débat portait sur les mesures à prendre pour rendre l'éditeur à nouveau populaire. Fait intéressant, Richard Stallman voulait également intervenir pour donner son avis.
Cette discussion découle de l'évidence. Emacs n'est pas populaire. Connu principalement par ceux qui utilisent GNU / Linux, ou par ceux qui abordent ce monde par d’autres canaux, il affecte un nombre relativement faible d'utilisateurs. Son énorme potentiel, entre autres, est souvent assombri par une courbe d'apprentissage assez abrupte et (malheureusement ?) par une concurrence de plus en plus féroce
Selon cette enquête de 2019, le taux d'adoption de Vim est plus de 5 fois plus élevé.
Un Emacs plus moderne
Le fil de discussion initial a été lancé par le développeur dénommé Ergus le 6 septembre dans un contexte où les utilisateurs proposaient de considérer certains changements pour la version Emacs 28. Plutôt que de se concentrer sur de nouvelles fonctionnalités, cependant, Ergus a proposé de rendre certaines fonctionnalités existantes plus accessibles :
« Ce sont principalement des changements "visibles" qui profiteront aux nouveaux utilisateurs et aux premières impressions, car je ne comprends pas pourquoi on cache les meilleures fonctionnalités jusqu'à ce que l'utilisateur apprenne à les configurer (ainsi que quelques lisp). »
Beaucoup de suggestions sont revenues dans les discussions suivantes, en commençant par l'idée que le thème par défaut pour Emacs devrait être amélioré. En particulier, Ergus a suggéré l'adoption d'un thème sombre par défaut « pour rendre Emacs plus moderne ». Il a souvent été mentionné au cours de la discussion qu'Emacs a besoin d'un aspect et d'une convivialité plus « modernes », bien qu'il y ait, naturellement, une certaine divergence d'opinions sur ce que signifie « moderne ».
Un thème sombre par défaut pourrait ne pas être déployé dans le futur, mais il semble y avoir un accord général sur le fait qu'Emacs pourrait bénéficier d'une meilleure approche plus centralisée des thèmes de couleur, plutôt que d'avoir des noms de couleur codés en dur dans divers packages Elisp. À partir de là, un moteur de thème approprié pourrait être pris en charge, rendant les thèmes sombres et autres facilement accessibles à ceux qui les souhaitent.
Il y a eu une discussion sur l'adoption de la palette de couleurs Solarized en particulier. Cependant, comme l'a souligné Dmitry Gutov, Solarized offre une expérience à faible contraste; un coup d'œil à cette capture d'écran d'Emacs avec des couleurs Solarized le rend assez clair.
Emacs avec des couleurs Solarized
Un autre domaine où Emacs n'est pas suffisamment « moderne », semble-t-il, concerne les liaisons clavier et souris. Du côté du clavier, les utilisateurs s'attendent à certaines actions de certaines frappes; ^ X pour couper une sélection, ^ V pour la coller, etc. Ces liaisons se font facilement en activant le mode Cua, mais les nouveaux utilisateurs ont tendance à ne pas connaître ce mode ni comment l'activer. De nombreux participants à la discussion ont déclaré que ce mode devrait être activé par défaut.
Cela, bien sûr, briserait la mémoire d'un grand nombre d'utilisateurs Emacs existants, qui n'apprécieraient probablement pas la perturbation. Ou, comme l'a dit Richard Stallman :
« Il n'est pas possible de modifier ces raccourcis clavier de base pour imiter d'autres éditeurs plus récents. Cela créerait un éditeur différent vers lequel nous, les utilisateurs d'Emacs, ne passerions jamais. Il est dommage que les personnes qui ont implémenté les nouveaux éditeurs aient choisi l'incompatibilité avec Emacs.
Pour le meilleur ou pour le pire, cependant, les "nouveaux éditeurs" semblent avoir gagné à cet égard. Les liaisons par défaut dans Emacs peuvent ne pas changer de sitôt, mais cela ne signifie pas qu'Emacs ne peut pas fournir un moyen aux utilisateurs d'obtenir ce comportement sans avoir besoin d'apprendre d'abord Lisp ».
La situation avec le comportement de la souris est similaire; comme l'ont souligné plusieurs participants à la discussion, les utilisateurs d'interfaces graphiques en sont venus à s'attendre à ce qu'un clic droit produise un menu des actions disponibles. Dans Emacs, à la place, ce bouton marque une région ("sélection", avec un second clic au même endroit en tirant ("coupant" le texte sélectionné. De nombreux utilisateurs expérimentés d'Emacs en sont venus à aimer ce comportement, mais il est surprenant pour les nouveaux arrivants. Le bouton droit de la souris avec la touche de contrôle enfoncée produit un menu défini par le mode majeur actuel, mais ce n'est évidemment pas ce qui est demandé ici; ce menu, disent certains, devrait présenter des actions globales plutôt spécifiques au mode.
Stallman a suggéré d'offrir un « mode remanié » qui amènerait le menu contextuel à un clic droit sans ornement, et qui y ajouterait également certaines des commandes d'édition de base attendues. Ce serait relativement facile à faire, a-t-il dit, car les liaisons de souris sont séparées de tout le reste. En outre, comme il l'a noté, le comportement actuel de la souris est dérivé de « ce qui était la norme dans X Windows vers 1990 ».
Découvrabilité
En général, Emacs a toutes les capacités que les nouveaux utilisateurs pourraient souhaiter avoir (et plus), mais ces capacités peuvent être difficiles à découvrir et à utiliser. Ainsi, un certain nombre des changements proposés concernaient la facilitation de la découverte. Cela a été une surprise apparente pour certains développeurs Emacs, qui ont longtemps pensé que la barre de menus en haut de chaque fenêtre était un moyen facile pour les utilisateurs de découvrir les fonctionnalités. Mais évidemment, il est courant de désactiver la barre de menus pour Emacs; comme l'a dit Gregory Heytings, « les menus ne sont pas "modernes"». Pour être « moderne », une application doit soit attacher ses menus au bouton droit de la souris, soit au plus fournir un « menu hamburger » à partir d'un seul bouton.
Emacs pourrait certainement passer à ce mode, du moins jusqu'à ce que les barres de menus soient à nouveau à la mode. Mais il existe également d'autres idées pour améliorer la découvrabilité. L'une d'elles serait d'offrir une « visite guidée » aux nouveaux utilisateurs lors de la première invocation de l'éditeur qui introduirait rapidement les fonctionnalités de base d'Emacs; ce serait une amélioration du tutoriel qui existe maintenant. Il y a également eu une discussion sur la production d'une série de vidéos, ou peut-être simplement sur l'utilisation des nombreuses vidéos qui existent actuellement. Stefan Monnier a suggéré de courtes vidéos pour correspondre à la capacité d'attention perçue des jeunes utilisateurs, « idéalement drôles et sexy, peut-être avec un chat ».
Un pas au-delà de la visite guidée serait une sorte « d'assistant de configuration » qui fonctionnerait à la première invocation d'Emacs. Il pourrait offrir des visites guidées, mais cela donnerait également à l'utilisateur la possibilité de configurer l'éditeur de manière à mieux répondre à ses attentes. Des fonctionnalités telles que le mode Cua pourraient être activées, par exemple, les liaisons de la souris ajustées et un thème sombre sélectionné sans qu'il soit nécessaire de taper une seule parenthèse. Cela pourrait suffire à surmonter le choc initial d'exposition à Emacs pour de nombreux nouveaux utilisateurs.
Une autre suggestion qui a été fréquemment soulevée est d'activer divers modes qui ne sont pas activés par défaut dans Emacs; en effet, plusieurs d'entre eux ne sont pas du tout livrés avec Emacs. Par exemple, Ibuffer est généralement considéré comme supérieur à la liste de tampons Emacs standard, donc beaucoup pensent qu'il devrait remplacer la liste standard. Le mécanisme « d'annulation » d'Emacs est plus performant que ce qui est fourni dans de nombreux autres éditeurs, mais il est également considéré comme difficile à utiliser; certains utilisateurs pensent que le mode d'annulation de l'arborescence facilite l'annulation et devrait être livré avec Emacs et activé par défaut. Il existe plusieurs modes qui améliorent les capacités de recherche de commandes et d'autocomplétion de l'éditeur, notamment Ivy, Helm et Ido. Beaucoup de ces derniers, soutient-on, fournissent un comportement plus conforme aux attentes actuelles et améliorent la découvrabilité ; l'un d'entre eux devrait être adopté et choisi par défaut.
Attirer les développeurs
Un problème avec beaucoup de ces paquets est qu'ils ne font pas réellement partie de GNU Emacs. Changer cela obligerait souvent l'auteur à signer les droits d'auteur à la Free Software Foundation, ce qui n'est pas quelque chose que tous les auteurs sont prêts à faire. Des problèmes similaires se posent avec de nombreuses « distributions » dérivées d'Emacs, telles que spacemacs ou Doom, qui ont clairement facilité le chemin vers Emacs pour certains utilisateurs. Certaines des idées trouvées dans ces distributions méritent peut-être d'être incluses dans Emacs, mais cela ne se produit pas. Le responsable d'Emacs, Eli Zaretskii, s'est plaint que les créateurs de ces distributions ne contribuent pas à leur travail.
Cela pointe vers une idée qui n'a pas vraiment surgi dans la discussion, mais qui devrait être prise en compte: une partie de la clé pour rendre Emacs plus attractif pour les utilisateurs pourrait être de rendre sa communauté de développement plus attrayante pour les contributeurs. L'adoption de certains des outils les plus axés sur la forge et préférés par les jeunes développeurs pourrait aider à cet égard, tout comme un modèle de gouvernance moins centralisé. Emacs reste un projet GNU à l'ancienne, un fait qui fait parfois grincer les dents de ses développeurs. Augmenter la pertinence d'Emacs dans les années à venir nécessitera plus que de nouvelles combinaisons de touches et des vidéos de chats; il faudra sans doute s’attacher à améliorer l’expérience à tous les niveaux.
Sources : liste de diffusion (Ergus, Dmitry Gutov, Richard Stallman, Jonathan Corbet, Gregory Heytings, Stefan Monnier, Eli Zaretskii)
Et vous ?
Quel environnement de développement ou éditeur utilisez-vous ? Sur quel système d'exploitation ?
Quels sont les éléments qui vous intéressent le plus sur l'outil dont vous vous servez ?
Que pensez-vous d'Emacs ?
Que pensez-vous des suggestions proposées ?
Quelle serait, selon vous, l'illustration d'un Emacs plus « moderne » ?