Emacs

Emacs
Emacs-logo.svg
Emacs-screenshot.png
GNU Emacs 22.0.91.1
Desarrollador(es)
Proyecto GNU, Proyecto Emacs[1]
GNU Emacs
Información general
Lanzamiento inicial 1976
Última versión estable 24.5 (info)
10 de abril de 2015 (1 año, 7 meses y 28 días)
Género IDE
Programado en C, Emacs Lisp
Sistema operativo multiplataforma
Licencia GPL v3[2]
[ editar datos en Wikidata]

Emacs es un editor de texto con una gran cantidad de funciones, muy popular entre programadores y usuarios técnicos. Gnu Emacs es obviamente parte del proyecto GNU y la versión más popular de Emacs con una gran actividad en su desarrollo. El manual de GNU Emacs lo describe como "un editor extensible, personalizable, auto-documentado y de tiempo real."

El EMACS original significa, Editor MACroS para el TECO. Fue escrito en 1975 por Richard Stallman junto con Guy Steele. Fue inspirado por las ideas de TECMAC y TMACS, un par de editores TECO-macro escritos por Guy Steele, Dave Moon, Richard Greenblatt, Charles Frankston, y otros. Se han lanzado muchas versiones de EMACS hasta el momento, pero actualmente hay dos que son usadas comúnmente: GNU Emacs, iniciado por Richard Stallman en 1984, y XEmacs, una fork de GNU Emacs, que fue iniciado en 1991. Ambos usan una extensión de lenguaje muy poderosa, Emacs Lisp, que permite manejar tareas distintas, desde escribir y compilar programas hasta navegar en Internet. GNU Emacs es mantenido por el Proyecto GNU Emacs, el cual cuenta entre sus miembros a Richard Stallman.[1]

Algunas personas hacen distinción entre la palabra en mayúsculas "Emacs", usada para referirse a versiones derivadas del programa creado por Richard Stallman (particularmente GNU Emacs y XEmacs), y la palabra en minúsculas "emacs", que es usada para referirse al gran número de reimplementaciones de Emacs. La palabra "emacs" es pluralizada frecuentemente en inglés como emacsen por analogía con "oxen". Por ejemplo, el paquete compatible de Emacs para Debian se llama emacsen-common. El único plural proporcionado por el Collins English Dictionary es emacsen.[3]

En la cultura de Unix, Emacs es uno de los dos principales contendientes en las tradicionales guerras de editores, el otro es vi.

Historia

Emacs en modo texto, ejecutado en la línea de comandos sin modo gráfico.

Emacs nació en los laboratorios del MIT durante los años 70. Antes de su introducción, el editor de textos predeterminado en el Sistema Incompatible de Tiempo Compartido (ITS), el sistema operativo en los laboratorios de Inteligencia Artificial PDP-6 y PDP-10, era un editor de líneas conocido como TECO. A diferencia de los editores de texto modernos, en TECO la introducción de texto, la edición y la vista del mismo se hacía de manera separada, como Vi lo haría luego. Los caracteres tecleados no aparecían dentro del documento, había que introducir una serie de instrucciones, en el lenguaje de TECO, indicándole que debía colocar los caracteres requeridos. El texto no se mostraba en la pantalla. Este comportamiento es similar al del programa ed, que todavía se utiliza hoy en día.

Richard Stallman visitó el Laboratorio de Inteligencia Artificial de Stanford en 1972 ó 1974 y conoció al editor de textos "E". Escrito por Fred Wright, el editor, tenía un comportamiento intuitivo WYSIWYG (lo que ves es lo que obtienes) como es común en los editores de textos modernos. Impresionado por esta característica, Stallman volvió al MIT donde Carl Mikkelsen, uno de los hackers en el Laboratorio de Inteligencia Artificial, había agregado un modo de edición-muestreo llamado "Control-R" a TECO, que le permitía a la pantalla mostrar lo que el usuario ingresaba desde el teclado. Stallman reimplementó este modo para que corriera eficientemente. Agregó una característica al modo edición-muestreo de TECO, para que el usuario pueda redefinir cualquier atajo de teclado para ejecutar un programa TECO.

Otra característica de E, que no tenía TECO, era corregir el acceso aleatorio. Desde la implementación, el TECO original fue un editor secuencial, diseñado para editar cinta de papel perforada en el PDP-1. La edición típica podía ser llevada a cabo en una página a la vez, en el orden que las páginas aparecen en el archivo.

La nueva versión de TECO fue popular en el Laboratorio de IA, y pronto acumuló una colección de macros, cuyos nombres terminaban en "MAC" o "MACS". Dos años después, Guy Steele unificó una diversidad de macros de teclado en uno solo.

Después de una noche de hacking conjunto por Steele y Stallman, éste acabó la implementación, que incluía utilidades para extender y documentar el nuevo conjunto de macros. El sistema resultante fue llamado EMACS, es decir, "Editing MACroS". Una versión alternativa sostiene que EMACS quería decir "E con MACroS", refiriéndose a la falta de capacidades de macros en E. Según Stallman, él tomó el nombre Emacs "porque <E> no estaba en uso como abreviatura en el ITS en aquel momento". Se ha comentado también que " Emack & Bolio's" era el nombre de una heladería popular en Boston, a poca distancia del MIT. Un programa de formateo de texto usado en ITS fue llamado más tarde BOLIO por Dave Moon, que frecuentaba la heladería. No obstante, a Stallman no le gustaba ese helado, y ni siquiera lo conocía cuando eligió el nombre "Emacs"; esta ignorancia es la base de un Hacker koan, ).

Stallman se dio cuenta del peligro que entrañaba demasiadas personalizaciones del programa y las bifurcaciones de facto que podría llegar a suponer, y estableció ciertas condiciones para el uso del programa. Más tarde escribió:

"EMACS fue distribuido sobre la base de compartición comunitaria, lo cual quiere decir que todas las mejoras deben serme enviadas a mí para que sean incorporadas y distribuidas."

El Emacs original, como el TECO, se ejecutaba únicamente en la familia de ordenadores PDP. Su comportamiento era suficientemente distinto de TECO como para ser considerado un editor de texto por derecho propio. Rápidamente se convirtió en el programa estándar de edición en ITS. También fue portado de ITS al Tenex y a sistemas operativos TOPS-20 por Michael McMahon, pero no a Unix inicialmente. Otros colaboradores en versiones tempranas de Emacs fueron Kent Pitman, Earl Killian y Eugene Ciccarelli.

Otros emacsen

Durante los siguientes años, se escribieron muchos editores similares a Emacs para otros sistemas operativos. Entre ellos SINE (Sine Is Not EMACS), EINE ("Eine Is Not EMACS") y ZWEI ("ZWEI Was EINE Initially", para la máquina Lisp), que fueron escritos por Michael McMahon y Daniel Weinreb (Los nombres EINE y ZWEI significan respectivamente "uno" y "dos" en alemán). En 1978, Bernard Greenberg escribió Multics Emacs en el Cambridge Information Systems Lab de Honeywell.

El primer editor similar a Emacs que funcionó sobre Unix fue el Gosling Emacs, escrito en 1981 por James Gosling (que más tarde inventó el lenguaje de programación Java). Fue escrito en el lenguaje de programación C y utilizaba un lenguaje de extensión conocido como Mocklisp, con sintaxis similar a la del lenguaje Lisp. En 1984 era software propietario.

GNU Emacs

GNU Emacs editando un artículo de Wikipedia.

En 1984, Stallman empezó a trabajar en GNU Emacs para producir una alternativa de software libre al Gosling Emacs. Inicialmente se basó en el Gosling Emacs, pero Stallman reemplazó el intérprete de Mocklisp con un intérprete de Lisp, lo que le obligó a sustituir casi todo el código. GNU Emacs se convirtió en el primer programa publicado por el emergente Proyecto GNU.

GNU Emacs está escrito en Emacs Lisp (a su vez implementado en C) como lenguaje de extensión. La primera versión ampliamente distribuida de GNU Emacs fue la 15.34, que apareció en 1985. Las versiones de la 2 a la 12 no existieron nunca. Las primeras versiones habían sido numeradas con la forma "1.x.x", pero antes de la versión 1.12 se decidió quitar el "1" inicial, ya que se pensaba que este número nunca cambiaría. La versión 13, la primera que fue pública, se liberó el 20 de marzo de 1985.

GNU Emacs se ejecutaba en Unix, al igual que Gosling Emacs. No obstante, GNU Emacs tenía más funciones, como por ejemplo, el Lisp (completo) como lenguaje de extensión. Como resultado, pronto reemplazó a Gosling Emacs como editor Emacs de facto sobre Unix.

Hasta 1999, el desarrollo de GNU Emacs fue relativamente cerrado, hasta el punto en que fue utilizado como ejemplo del modelo de desarrollo de "catedral" en La catedral y el bazar. El proyecto ha adoptado desde entonces una lista de correo pública de desarrollo, y acceso anónimo al sistema CVS. El desarrollo tiene lugar en una única rama de CVS, que está actualmente en la versión 23.4.1. La persona encargada actualmente de su mantenimiento es Richard Stallman.[ cita requerida]

XEmacs

Captura de pantalla de XEmacs.

A partir de 1991, Jamie Zawinski y otros desarrollaron Lucid Emacs en Lucid Inc., basándose en una versión alfa de GNU Emacs 19. Las dos bases de código divergieron pronto, y los dos equipos de desarrollo desistieron[4] de intentar combinarlas de nuevo en un solo programa. Este fue uno de los más famosos forks de un programa de software libre. Lucid Emacs ha sido renombrado como XEmacs. Éste y GNU Emacs son las dos variedades actuales en uso más populares. La "X" en XEmacs se deriva, bien de un enfoque inicial para soportar el sistema X Window como interfaz gráfica de usuario, o bien un "nombre de compromiso" entre las partes que desarrollaban XEmacs.[1] Tanto GNU Emacs como XEmacs soportan interfaces gráficas y terminales de texto.

Otras implementaciones

GNU Emacs fue inicialmente pensado para computadores con un espacio de direcciones de 32-bit, y al menos 1 MiB de RAM, en una época en la cual esos computadores eran considerados de alta calidad. Esto dejó una puerta abierta para pequeñas reimplementaciones. Algunas destacables se nombran a continuación:

  • MicroEMACS, una implementación muy portable originalmente escrita por Dave Conroy y Daniel Lawrence siguió desarrollándola. Este editor es usado por Linus Torvalds.[5]
  • MG, originalmente denominado MicroGNUEmacs, un offshoot de MicroEMACS que intenta asemejarse más a GNU Emacs. Ahora viene instalado por defecto en OpenBSD.
  • JOVE (Jonathan's Own Version of Emacs), una implementación no-programable de Emacs para sistemas UNIX-like por Jonathan Payne.
  • Freemacs, una versión DOS con un lenguaje de extensión basado en text macro expansion, todo dentro del límite de memoria original de 64 KiB.
  • Meadow[6] es una variante de Emacs originada en Japón diseñada para operar en Windows. Meadow se focaliza en proveer soporte multi-lenguaje.
Other Languages
العربية: إيماكس
azərbaycanca: Emacs
беларуская (тарашкевіца)‎: Emacs
български: Emacs
bosanski: Emacs
català: Emacs
čeština: Emacs
dansk: Emacs
Deutsch: Emacs
Ελληνικά: Emacs
English: Emacs
Esperanto: Emacs
eesti: Emacs
euskara: Emacs
فارسی: ایمکس
suomi: Emacs
français: Emacs
galego: Emacs
עברית: Emacs
magyar: Emacs
interlingua: Emacs
Bahasa Indonesia: Emacs
italiano: Emacs
日本語: Emacs
한국어: 이맥스
മലയാളം: ഇമാക്സ്‌
Bahasa Melayu: Emacs
Nederlands: Emacs
norsk bokmål: Emacs
polski: Emacs
română: Emacs
русский: Emacs
srpskohrvatski / српскохрватски: Emacs
slovenčina: Emacs
svenska: Emacs
తెలుగు: ఇమ్యాక్స్
ไทย: Emacs
Türkçe: Emacs
українська: Emacs
Tiếng Việt: Emacs
中文: Emacs