Emacs cumple 50 años: el editor que llevó al software libre

Terminal de vídeo de los años setenta junto a cintas magnéticas y un portátil moderno

EMACS cumple 50 años. La primera versión operativa de EMACS funcionó a finales de 1976 en las terminales de vídeo del laboratorio de inteligencia artificial del MIT, como un conjunto de macros sobre el editor TECO. Medio siglo después sigue en uso, se sigue desarrollando y conserva atajos de teclado que ya existían antes de que hubiera ordenadores personales. Por el camino, además, fue la herramienta con la que Richard Stallman financió y dio forma al proyecto GNU, a la Free Software Foundation y a la licencia GPL. El aniversario lo ha recordado en las últimas semanas la revista del MIT, MIT Technology Review.

Las claves en 20 segundos

  • Origen: 1976, MIT AI Lab, sobre TECO y el sistema ITS de los PDP-10, obra de Richard Stallman, Guy Steele y David Moon.
  • El nombre: EMACS significa Editor MACroS, porque era un juego unificado de macros.
  • El salto: en 1984 Stallman empezó GNU Emacs y en marzo de 1985 publicó la primera versión; su licencia fue la antecesora de la GPL.
  • Hoy: sigue vivo, con soporte de LSP y tree-sitter integrados, edición remota con TRAMP y una comunidad activa.

De una cinta de papel a la pantalla completa

La historia empieza antes de 1976. En 1962, Dan Murphy creó en el MIT TECO, el «Tape Editor and Corrector», un editor para el PDP-1 pensado para corregir programas en cinta perforada. Cuando la cinta dio paso a ficheros en disco compartido, la T pasó a significar «Text». TECO era potente, pero se manejaba con comandos casi crípticos y sin ver el texto mientras se editaba. En 1971, Carl Mikkelsen le añadió un modo, Control-R, que mostraba los cambios en las terminales de vídeo a medida que se hacían.

En 1976, Stallman visitó el laboratorio de IA de Stanford y vio allí un editor de pantalla completa llamado E. A la vuelta reescribió aquel modo de TECO para que cualquier tecla pudiera ejecutar una macro, un programa de TECO. Los hackers del laboratorio se lanzaron a crear sus propios comandos y cada uno acabó con su colección de macros, como TECMAC o TMACS. Eso creó un problema práctico: Guy Steele, entonces estudiante de posgrado, ayudaba a menudo a otros a depurar sus programas y se encontraba con que cada uno tenía el teclado configurado a su manera.

Steele se propuso unificar los comandos con la ayuda de David Moon, y Stallman acabó asumiendo el proyecto. El resultado, un juego coherente de macros con atajos basados en la tecla Meta y facilidades para ampliarse y autodocumentarse, se llamó EMACS. Funcionaba sobre ITS, el sistema operativo de los PDP-10 del laboratorio, y la primera versión operativa estuvo lista a finales de 1976. Su código de aquellos años se conserva hoy en los archivos del MIT.

La «comuna» de EMACS y el germen del software libre

Stallman distribuía EMACS a cualquiera que le enviara una cinta magnética y un sobre con el franqueo de vuelta pagado. La condición era devolver las mejoras que se hicieran, de modo que el editor crecía con las aportaciones de quienes lo usaban. Era una forma temprana de lo que décadas después llamaríamos desarrollo comunitario.

Ese modelo chocó con la comercialización del software a principios de los ochenta. Aparecieron versiones de Emacs para Unix, entre ellas la de James Gosling, que acabó vendiéndose como producto comercial. Stallman, que en 1983 había anunciado el proyecto GNU para crear un sistema operativo completamente libre, empezó en 1984 GNU Emacs como alternativa libre. La primera versión se publicó el 20 de marzo de 1985, con Lisp como lenguaje de extensión, el origen de Emacs Lisp.

GNU Emacs fue mucho más que un editor para el movimiento. Su distribución incluyó el Manifiesto GNU, la venta de cintas con el editor ayudó a sostener la Free Software Foundation, fundada en octubre de 1985, y su licencia, la GNU Emacs General Public License, fue la base de la GPL que Stallman generalizó en 1989 para cualquier programa. Decir que Emacs «fundó» el software libre es una simplificación, porque el proyecto GNU es anterior, pero sí fue la primera gran pieza de ese proyecto y el laboratorio donde se forjó su modelo legal. Lo contamos con más detalle al repasar los 43 años del proyecto GNU.

Por qué sigue vivo medio siglo después

Muy pocos programas de 1976 siguen en uso diario. La clave de Emacs está en su diseño: un núcleo pequeño y un intérprete de Lisp sobre el que se construye casi todo lo demás, de modo que cada usuario puede adaptarlo sin tocar el código base. De ahí salieron derivados como XEmacs y un ecosistema de paquetes que convierte el editor en gestor de ficheros, cliente de Git, agenda o entorno de desarrollo. Apple llegó a incluir GNU Emacs en Mac OS X desde 2001 hasta 2019.

Tampoco se ha quedado anclado. Las versiones recientes integran Eglot, un cliente de Language Server Protocol para tener autocompletado y diagnósticos como en un IDE moderno, y soporte de tree-sitter para el resaltado y la navegación por sintaxis. Y la eterna «guerra de editores» con vi sigue más como broma que como rivalidad real: buena parte de los administradores usa los dos según el contexto.

Emacs para administradores de sistemas

Para quien administra servidores, hay varias funciones que justifican probarlo aunque se venga de vim o nano:

  • TRAMP: edita ficheros remotos por SSH como si fueran locales, sin instalar nada en el servidor, e incluso con sudo: C-x C-f /ssh:usuario@servidor|sudo:servidor:/etc/nginx/nginx.conf.
  • Dired: un gestor de ficheros dentro del editor para renombrar, copiar o cambiar permisos en lote, también en remoto.
  • Modo terminal y servidor: emacs -nw funciona en una sesión SSH sin entorno gráfico, y emacs --daemon con emacsclient deja una instancia residente que abre ficheros al instante.
  • Shells y Git: M-x eshell o M-x term integran la línea de comandos, y paquetes como Magit dan uno de los clientes de Git más valorados.
# Debian / Ubuntu (sin entorno gráfico)
sudo apt install emacs-nox
# RHEL, Rocky, AlmaLinux, Fedora
sudo dnf install emacs-nox

# Atajos básicos
C-x C-f   abrir fichero      C-x C-s   guardar
C-x C-c   salir              C-g       cancelar
C-s       buscar             M-x       ejecutar comando
C-h t     tutorial integradoLenguaje del código: PHP (php)

El tutorial integrado (C-h t) sigue siendo la mejor puerta de entrada: en media hora explica la lógica de sus combinaciones de teclas, la misma que, con pocos cambios, usaban los hackers del MIT hace cincuenta años.

Preguntas frecuentes

¿Cuándo nació Emacs?

El primer EMACS funcionó a finales de 1976 en el laboratorio de inteligencia artificial del MIT, como un conjunto de macros para el editor TECO. GNU Emacs, la versión libre que se usa hoy, empezó en 1984 y se publicó en marzo de 1985.

¿Quién creó Emacs?

Richard Stallman, Guy Steele y David Moon, a partir de colecciones de macros de otros hackers del MIT. Stallman lideró el proyecto y después escribió GNU Emacs.

¿Qué relación tiene Emacs con el software libre?

GNU Emacs fue la primera gran pieza del proyecto GNU: su distribución incluyó el Manifiesto GNU, ayudó a financiar la Free Software Foundation y su licencia fue la antecesora directa de la GPL.

¿Tiene sentido usar Emacs hoy en un servidor?

Sí. Funciona en terminal (emacs -nw), permite editar ficheros remotos por SSH con TRAMP sin instalar nada en el servidor e integra cliente LSP y soporte de tree-sitter.

Fuente: MIT Technology Review, Software Preservation Group (Computer History Museum) y documentación del proyecto GNU

Suscríbete al boletín SysAdmin

Este es tu recurso para las últimas noticias y consejos sobre administración de sistemas, Linux, Windows, cloud computing, seguridad de la nube, etc. Lo enviamos 2 días a la semana. Recuerda revisar tu email para confirmar la suscripción.

Scroll al inicio
×