Autor(es) original(es) | Lúcido Inc. |
---|---|
Desarrollador(es) | Comunidad XEmacs |
Versión final | 21.4.22 [1] / 30 de enero de 2009 ( 30 de enero de 2009 ) |
Versión preliminar | 21.5.35 [2] / 13 de mayo de 2023 ( 13 de mayo de 2023 ) |
Sistema operativo | Multiplataforma para GNU , Linux , Windows , macOS , [3] BSD y más |
Tipo | Editor de texto |
Licencia | GPL-2.0 o posterior |
Sitio web | www.xemacs.org |
XEmacs es un editor de texto gráfico y basado en consola que funciona en casi cualquier sistema operativo tipo Unix , así como en Microsoft Windows . XEmacs es una bifurcación basada en una versión de GNU Emacs de finales de los años 1980. Cualquier usuario puede descargar, usar y modificar XEmacs como software libre disponible bajo la Licencia Pública General GNU versión 2 o cualquier versión posterior.
Entre 1987 y 1993 se produjeron retrasos significativos en la publicación de una nueva versión de GNU Emacs (que se presume que sería la versión 19). [4] A finales de los años 1980, Lucid Inc. de Richard P. Gabriel se enfrentó a un requisito de enviar Emacs para soportar el IDE Energize C++ . Entonces Lucid reclutó un equipo para mejorar y extender el código, [5] con la intención de que su nueva versión, lanzada en 1991, formara la base de la versión 19 de GNU Emacs. Sin embargo, no tuvieron tiempo para esperar a que sus cambios fueran aceptados por la Free Software Foundation (FSF). [6] Lucid continuó desarrollando y manteniendo su versión de Emacs, mientras que la FSF lanzó la versión 19 de GNU Emacs un año después, al tiempo que fusionaba parte del código y adaptaba algunas otras partes. [7]
Cuando Lucid cerró en 1994, otros desarrolladores retomaron el código. [8] Empresas como Sun Microsystems querían seguir distribuyendo Lucid Emacs, pero el uso de la marca registrada se había vuelto legalmente ambiguo porque nadie sabía quién controlaría finalmente la marca registrada "Lucid". En consecuencia, la "X" en XEmacs representa un compromiso entre las partes involucradas en el desarrollo de XEmacs. [9]
Por lo tanto, la "X" de XEmacs no está relacionada con el sistema X Window . Después de que inicialmente sólo admitiera X11, [10] XEmacs admitió terminales basados en texto y sistemas de ventanas distintos de X11. Los instaladores pueden compilar tanto XEmacs como GNU Emacs con y sin soporte para X. Durante un período de tiempo, XEmacs incluso tuvo algunas características específicas de terminales, como el coloreado , de las que GNU Emacs carecía.
La comunidad de software generalmente se refiere a GNU Emacs, XEmacs (y varios otros editores similares) colectivamente o individualmente como emacsen (por analogía con oxen) o como emacs , ya que ambos se inspiran en el TECO Emacs original.
XEmacs tiene comandos para manipular palabras y párrafos (eliminarlos, moverlos, navegar a través de ellos, etc.), resaltado de sintaxis para que el código fuente sea más fácil de leer y "macros de teclado" para realizar lotes arbitrarios de comandos de edición definidos por el usuario.
XEmacs cuenta con una completa ayuda en línea, así como cinco manuales disponibles en el sitio web de XEmacs. XEmacs admite muchos lenguajes humanos , así como modos de edición para muchos lenguajes de programación y marcado. XEmacs se ejecuta en muchos sistemas operativos, incluidos Unix / Linux , BSD y Mac OS X. Para ejecutarse en Mac OS se requiere X11 ; mientras que el desarrollo ha comenzado [actualizar]en una versión Carbon nativa . Existen dos versiones de XEmacs para el entorno Microsoft Windows: un instalador nativo y un paquete Cygwin .
Los usuarios pueden reconfigurar casi todas las funciones del editor mediante el lenguaje Emacs Lisp . Los cambios en el código Lisp no requieren que el usuario reinicie o vuelva a compilar el editor. Los programadores han puesto a disposición muchas extensiones Lisp preescritas.
Existen muchos paquetes para ampliar y complementar las capacidades de XEmacs. Los usuarios pueden descargarlos por partes a través del gestor de paquetes de XEmacs o aplicarlos en bloque utilizando el paquete xemacs-sumo o " sumo tarballs". [11] El gestor de paquetes de XEmacs es anterior al sistema de paquetes ELPA utilizado por GNU Emacs en casi una década y es incompatible con él. Desde XEmacs 21.1, la funcionalidad ha sido sacada del núcleo de XEmacs y se ha puesto a disposición por separado como paquetes. Esto permite a los usuarios excluir paquetes que no necesitan. XEmacs tuvo un gestor de paquetes durante más de una década antes de que GNU Emacs desarrollara uno, pero XEmacs debe reiniciarse antes de cargar nuevos paquetes.
Desde el comienzo del proyecto, los desarrolladores de XEmacs se propusieron tener un ciclo de lanzamiento frecuente. [12] También buscaron una mayor apertura a la experimentación, y XEmacs a menudo ofrece nuevas características antes que otros emacsen, siendo pioneros (por ejemplo) en imágenes en línea, fuentes variables y coloreado de terminales. A lo largo de los años, los desarrolladores han reescrito extensamente el código para mejorar la consistencia y seguir las convenciones de programación modernas que enfatizan la abstracción de datos. XEmacs tiene un sistema de empaquetado para paquetes Lisp mantenidos independientemente. La última [actualizar]versión tiene soporte GTK+ [13] y un puerto Carbon nativo para Mac OS X. [14]
XEmacs siempre ha tenido un entorno de desarrollo muy abierto, que incluye CVS anónimo , acceso posterior a Mercurial y listas de correo de desarrollo de acceso público . XEmacs viene con un manual interno de más de 500 páginas (Wing, et al., 2004). [15]
El soporte para Unicode se ha convertido en un problema para XEmacs. A partir de 2005, la versión publicada depende del paquete no mantenido llamado Mule -UCS para soportar Unicode, mientras que la rama de desarrollo de XEmacs ha tenido un sólido soporte nativo para codificaciones Unicode externas desde mayo de 2002, pero los conjuntos de caracteres internos de Mule carecen de integridad y el desarrollo parece estancado a partir de septiembre de 2005. [16]
El desarrollo de XEmacs presenta tres ramas: estable, gamma y beta, [12] siendo la beta la que incorpora las nuevas características primero, pero potencialmente con menos pruebas, estabilidad y seguridad. Los desarrolladores lanzaron la versión 20.0 el 9 de febrero de 1997, y la versión 21.0 el 12 de julio de 1998. A enero de 2009, la rama estable había alcanzado la versión 21.4.22 y la rama beta la versión 21.5.28. No existen versiones gamma a partir de 2007. [actualizar]Con el lanzamiento de XEmacs 21.4.0, los números de versión siguen un esquema por el cual un segundo número impar indica una versión de desarrollo, y un segundo número par indica una versión estable.
Varios de los principales desarrolladores de XEmacs han publicado relatos sobre la división entre XEmacs y GNU Emacs, por ejemplo, el resumen de Stephen Turnbull [17] de los argumentos de ambos lados. Uno de los principales desacuerdos involucra diferentes puntos de vista sobre la asignación de derechos de autor. La FSF considera que la asignación de derechos de autor a la FSF es necesaria para permitirle defender el código contra violaciones de la GPL, [18] mientras que los desarrolladores de XEmacs han argumentado que la falta de asignación de derechos de autor ha permitido que las grandes compañías se involucren, ya que a veces las compañías pueden licenciar su código pero debido a una actitud cautelosa en relación con los deberes fiduciarios hacia los accionistas, las compañías pueden tener problemas para obtener permiso para asignar el código completamente. [ cita requerida ]
La Free Software Foundation posee los derechos de autor de gran parte del código XEmacs debido a asignaciones de derechos de autor previas durante intentos de fusión y desarrollo cruzado. [19] El que un fragmento de código nuevo de XEmacs ingrese a GNU Emacs a menudo depende de la voluntad de ese colaborador individual de asignar el código a la FSF. Las nuevas características de uno u otro editor suelen aparecer en el otro tarde o temprano. Además, muchos desarrolladores contribuyen a ambos proyectos.
El proyecto XEmacs tiene como política mantener la compatibilidad con la API de GNU Emacs . Por ejemplo, proporciona una capa de compatibilidad que implementa superposiciones a través de la funcionalidad de extensión nativa. "Los desarrolladores de XEmacs se esfuerzan por mantener su código compatible con GNU Emacs, especialmente en el nivel de Lisp". [20]
A medida que el desarrollo de XEmacs se ha ralentizado, XEmacs ha incorporado mucho código de GNU Emacs, [21] mientras que GNU Emacs ha implementado muchas características que antes solo estaban disponibles en XEmacs. Esto ha llevado a algunos usuarios a proclamar la muerte de XEmacs, abogando por que sus desarrolladores contribuyan a GNU Emacs. [22]
Muchos paquetes importantes, como Gnus y Dired , fueron desarrollados anteriormente para trabajar con ambos, [23] aunque el desarrollador principal de Gnus ha anunciado su intención de mover el árbol Gnus al tronco principal de Emacs y eliminar el código de compatibilidad con XEmacs, citando otros paquetes que de manera similar abandonaron el soporte de XEmacs. [24] [25]
En diciembre de 2015, el responsable del proyecto, Stephen J. Turnbull, publicó un mensaje en una lista de desarrollo de XEmacs en el que afirmaba que el proyecto se encontraba "en una encrucijada" en términos de compatibilidad futura con GNU Emacs debido a la deserción de desarrolladores y al progreso de GNU Emacs. Se plantearon varias opciones para futuras direcciones, entre ellas, finalizar el desarrollo por completo, crear una nueva bifurcación a partir de la versión actual de GNU Emacs o poner el proyecto en modo de mantenimiento en caso de que alguien quiera reiniciar el desarrollo en el futuro. [26] Esta última opción fue la dirección decidida, con el compromiso de los colaboradores individuales de proporcionar un soporte mínimo para el sitio web y los recursos de desarrollo.
En 2020, el proyecto XEmacs trasladó su repositorio de código fuente de Mercurial a Heptapod, tras la interrupción del soporte de Mercurial por parte de su antiguo servidor, Bitbucket . En mayo de 2023, el proyecto lanzó la primera versión beta nueva de XEmacs en casi una década con la versión beta 21.5.35 "kohlrabi". [27]
El proyecto SXEmacs se bifurcó de XEmacs 21.4 y continuó su desarrollo durante más de una década, lanzando nuevas versiones hasta 2020.
{{cite web}}
: |author=
tiene nombre genérico ( ayuda )XEmacs es software GNU porque es una versión modificada de un programa GNU. Y es software GNU porque la FSF es la titular de los derechos de autor de la mayor parte del mismo... XEmacs no tiene elección, porque gran parte de su código está protegido por derechos de autor de la Free Software Foundation, y sólo está disponible para XEmacs bajo la GPL.
Afortunadamente, muchos de los mantenedores de paquetes están intentando que sus módulos funcionen tanto con Xemacs como con Gnu Emacs, aunque la funcionalidad puede no ser idéntica.
Durante la última década, el trabajo en XEmacs ha continuado a un nivel bajo, y en su mayoría no visible en las características a nivel de usuario. Mientras tanto, GNU Emacs ha implementado casi todas las características de XEmacs... Al mismo tiempo, se han implementado varias características de las que XEmacs carece y que requerirían un esfuerzo sustancial para ser trasladadas... los desarrolladores que han sido los principales contribuyentes de código actualmente tienen compromisos personales y profesionales que les impiden dedicar suficiente tiempo a XEmacs para implementar las grandes características necesarias para una compatibilidad total con GNU Emacs en el futuro previsible... varios desarrolladores que han contribuido mucho en el pasado han reconocido que *no* lo harán en el futuro previsible. Es justo que les informemos a ustedes, nuestros usuarios y seguidores, sobre esto.