XEmacs

XEmacs

Description de cette image, également commentée ci-après
XEmacs 21.5.
Informations
Première version Voir et modifier les données sur Wikidata
Dernière version 21.4.22 (Instant Classic, )[1]Voir et modifier les données sur Wikidata
Version avancée 21.5.35 (kohlrabi, )[2]Voir et modifier les données sur Wikidata
Dépôt foss.heptapod.net/xemacs/xemacsVoir et modifier les données sur Wikidata
Écrit en C et LispVoir et modifier les données sur Wikidata
Interface GTKVoir et modifier les données sur Wikidata
Système d'exploitation Type UnixVoir et modifier les données sur Wikidata
Type Éditeur de texte
Plateforme informatiqueVoir et modifier les données sur Wikidata
Licence Licence publique générale GNU version 2Voir et modifier les données sur Wikidata
Site web www.xemacs.orgVoir et modifier les données sur Wikidata

XEmacs (anciennement Lucid Emacs) est un éditeur de texte (et un IDE, entre autres) pour X Window, basé sur un fork d'une version de GNU Emacs (présumée être la version 19) de la fin des années 1980, produit d'une collaboration entre Lucid Inc., SunPro (une division de Sun Microsystems) et l’université d'Illinois.

Lorsque Lucid a cessé ses activités en 1994, d'autres développeurs ont repris le code[3]. Des sociétés telles que Sun Microsystems voulaient continuer à commercialiser Lucid Emacs, mais l'utilisation de la marque était devenue juridiquement ambiguë, personne ne sachant qui contrôlerait éventuellement la marque « Lucid ». En conséquence, le « X » dans « XEmacs », représente un compromis entre les parties impliquées dans le développement d'XEmacs[4].

Ce "X" n'est donc pas lié au système X Window. Après avoir initialement pris en charge uniquement X11[5], XEmacs s'est ensuite intéressé aux terminaux en mode texte et aux systèmes de fenêtrage autres que X11. Les installateurs purent donc compiler XEmacs et GNU Emacs avec ou sans support d'X. Pendant un moment, XEmacs était même le seul à inclure certaines fonctionnalités qui restaient spécifiques au mode texte, comme la colorisation, dont GNU Emacs manquait.

La communauté du logiciel libre fait généralement référence à GNU Emacs, XEmacs et quelques autres éditeurs similaires -- collectivement ou individuellement -- en tant qu' « emacsen » (par analogie avec oxen ), voire « emacs », puisqu'ils s'inspirent tous de l'original TECO (« Text Editor and COrrector ») Emacs (Emacs signifiait à l'origine : « Editing MACroS running on TECO », « macros d'édition fonctionnant sur TECO »).

Fonctionnalités

[modifier | modifier le code]

XEmacs dispose de commandes pour manipuler des mots et des paragraphes (suppression, déplacements, copie, déplacements dans les phrases, etc.), de la coloration syntaxique (pour rendre le code source plus facile à lire), ainsi que des « macros », pour exécuter le traitement par lots de commandes d'édition définies par l'utilisateur.

Cet éditeur propose une aide en ligne complète, ainsi que cinq manuels qui sont disponibles sur le site web officiel.
XEmacs prend en charge beaucoup de langages humains, ainsi que des modes d'édition pour de nombreux langages de programmation et de balisage.
Il fonctionne sur nombre de systèmes d'exploitation, notamment : Unix / Linux, BSD et Mac OS X. L'exécution sur Mac OS nécessite X. Il existe deux versions d'XEmacs pour l'environnement Microsoft Windows : un installeur natif et un paquet Cygwin.

Une des fonctionnalités très appréciée des utilisateurs (qui est également présente dans Emacs), est la personnalisation ; les possibilités sont incroyables (« sky is the limit »). On peut reconfigurer presque toutes les fonctionnalités de l'éditeur en utilisant le langage ELisp (Emacs Lisp) . Les modifications apportées au code Lisp ne nécessitant pas que l'utilisateur redémarre ou recompile l'éditeur ; on a, cela dit, la possibilité de le recompiler, ce qui donnera un code plus concis, moins lourd et, donc, plus rapide à exécuter (au moins sur le matériel plus ancien, avec des ressources limitées en mémoire et en CPU).
Les programmeurs ont mis à disposition de nombreuses extensions Lisp pré-écrites.

Il y a de nombreux paquets (packages) pour étendre les possibilités d'XEmacs. Les utilisateurs peuvent, soit les télécharger au coup par coup -- via le gestionnaire de paquets d'XEmacs --, soit les appliquer en masse à l'aide du paquet xemacs-sumo.
Ce gestionnaire de paquet est antérieur de près d'une décennie au système de packages ELPA utilisé par GNU Emacs, avec lequel il est incompatible. Depuis la versions 21.1, cette fonctionnalité a été retirée du noyau d'XEmacs, mais rendue disponible séparément, sous forme de paquets ; cela permet aux utilisateurs d'exclure les paquets dont ils n'ont pas besoin. XEmacs doit être redémarré avant que les nouveaux paquets ne soient chargés.

Développement

[modifier | modifier le code]

XEmacs a toujours eu un environnement de développement très ouvert, comprenant des CVS anonymes (plus tard, un accès Mercurial) et des listes de diffusion de développement accessibles au grand public.
XEmacs est livré avec un manuel interne de plus de 500 pages[6].

Le développement d'XEmacs comporte trois branches : stable, gamma et bêta ; la version bêta offrant plus de nouvelles fonctionnalités, mais ayant potentiellement subi moins de tests, ce qui implique moins de stabilité et moins de sécurité.

Les développeurs ont publié le 9 février 1997 la version 20.0 et la version 21.0 le 12 juillet 1998. En janvier 2009, la branche stable avait atteint la version 21.4.22 et la branche bêta la version 21.5.28. À compter de 2007, il n'y a plus de version gamma.
Avec la sortie de XEmacs 21.4.0, les numéros de versions suivent un schéma selon lequel un deuxième nombre impair signale une version de développement et un deuxième nombre pair indique une version stable.

XEmacs et GNU Emacs

[modifier | modifier le code]

Plusieurs des principaux développeurs d'XEmacs ont publié des comptes-rendus de la scission entre XEmacs et GNU Emacs ; lire, par exemple le résumé de Stephen Turnbull [7].
L'un des principaux désaccords concerne la cession des droits d'auteur : la FSF considère normal -- et même nécessaire -- qu'ils lui reviennent, afin de lui permettre de défendre le code contre d'éventuelles violations de la GPL[8], tandis que les développeurs d'XEmacs, eux, ont soutenu que la non-attribution des droits d'auteur a permis aux grandes entreprises de s'impliquer ; car, parfois, celles-ci peuvent accorder des licences pour leur propre code, mais, en raison d'une attitude prudente concernant les obligations envers leurs actionnaires, elles peuvent aussi avoir du mal à autoriser la cession de la totalité du code.

En définitive, la FSF détient les droits d'auteur sur une grande partie du code d'XEmacs, en raison de leur attribution préalable lors de tentatives de fusion et de développement croisé[9].
Pour qu'un nouveau morceau de code d'XEmacs entre dans GNU Emacs, cela dépend souvent de la volonté du ou des développeur(s) dudit morceau de code. Les nouvelles fonctionnalités d’un éditeur apparaissent plus ou moins rapidement dans l’autre (et inversement). De plus, de nombreux développeurs contribuent à la fois aux deux projets.

Le projet XEmacs a pour politique de maintenir la compatibilité avec l'API de GNU Emacs. « Les développeurs d'XEmacs s'efforcent de garder leur code compatible avec celui de GNU Emacs, notamment au niveau Lisp[10]. »

En décembre 2015, le responsable du projet, Stephen J. Turnbull, a publié un message sur une liste de développement XEmacs, indiquant que le projet était « à la croisée des chemins » en termes de compatibilité future avec GNU Emacs ; ce, en raison à la fois de la diminution régulière du nombre des développeurs et des progrès de GNU Emacs.
Plusieurs options ont été présentées pour les orientations futures, notamment celle de mettre un point d'arrêt définitif au développement ; mais aussi celle de créer un nouveau fork à partir de la version actuelle de GNU Emacs ou, enfin, de mettre le projet en mode maintenance, pour le cas où quelqu'un voudrait reprendre le développement à l'avenir[11]. Cette dernière option est celle qui a été retenue.

En 2020, en raison de l'arrêt du support Mercurial, le projet a déplacé son référentiel source vers Heptapod. En mai 2023, le projet a publié la première nouvelle version bêta de XEmacs depuis près d'une décennie avec la bêta 21.5.35 « kohlrabi »[12].

Capture d'écran de SXEmacs 22.1.10

Le projet SXEmacs a démarré un fork à partir d'XEmacs 21.4 et en a poursuivi le développement pendant plus d'une décennie, publiant de nouvelles versions jusqu'en 2020, la dernière version disponible étant la 22.1.17.

Références

[modifier | modifier le code]
  1. (en) « XEmacs: XEmacs 21.4.22 "Instant Classic" is released », (consulté le )
  2. (en) « XEmacs: XEmacs 21.5.35 "kohlrabi" is released », (consulté le )
  3. (en-US) john s jacobs anderson, stealing content the FAQ, « XEmacs: History of XEmacs » [archive du ], sur Xemacs.org (consulté le )
  4. (en-US) « XEmacs Internals Manual: A History of Emacs », sur Xemacs.org (consulté le )
  5. (en-US) « Lucid Emacs was released 30 years ago », sur www.jwz.org, (consulté le )
  6. (en-US) « XEmacs Internals Manual: Table of Contents »
  7. (en-US) « XEmacs: XEmacs vs. GNU Emacs », sur Xemacs.org (consulté le )
  8. (en-US) « Why the FSF gets copyright assignments from contributors - GNU Project - Free Software Foundation », sur Fsf.org (consulté le )
  9. « Xemacs vs GNU Emacs » : « XEmacs is GNU software because it's a modified version of a GNU program. And it is GNU software because the FSF is the copyright holder for most of it... XEmacs has no choice, because much of its code is copyrighted by the Free Software Foundation, and is only available to XEmacs under the GPL. »
  10. (en-US) « Frequently asked questions about XEmacs: Introduction », sur Xemacs.org (consulté le )
  11. « XEmacs at a crossroads » [archive du ] : « For the past decade, work on XEmacs has continued at a low level, and mostly not visible in user-level features. In the meantime, GNU Emacs has implemented almost all XEmacs features...At the same time, a number of features that XEmacs lacks, and would require substantial effort to port, have been implemented...the developers who have been the primary contributors of code currently have personal and professional commitments that prevent them from devoting enough time to XEmacs to implement the large features necessary for full compatibility with GNU Emacs for the foreseeable future...several developers who have contributed heavily in the past have acknowledged that they *won't* be doing so for the foreseeable future. It's only fair that we let you, our users and supporters, know about that. »
  12. (en-US) « XEmacs: XEmacs 21.5.35 "kohlrabi" is released », sur Xemacs.org (consulté le )

Article connexe

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]