Conecta con nosotros

A Fondo

50 años de EMACS, el editor que dio origen al software libre

Publicado el

EMACS

EMACS (GNU Emacs), el mítico editor de texto que dio origen al software libre, cumple su 50 aniversario y desde el MIT Technology le han dedicado un merecido homenaje que nos acerca a una época donde el mundo de la computación personal y el desarrollo de software daba sus primeros pasos.

La programación en aquellos tiempos era una experiencia muy diferente a la que conocemos hoy donde la IA puede hacer una gran parte de la tarea. De hecho, los primeros programadores no escribían código; las seis mujeres que trabajaron en la ENIAC, una de las primeras computadoras del mundo, en la Universidad de Pensilvania en 1946, lo hicieron configurando físicamente interruptores, cables y paneles de conexiones.

Unos años más tarde, ingenieros del MIT programaron la Whirlwind perforando código en cinta de papel que luego se cargaba en la memoria de la computadora, convirtiéndola así en una de las primeras máquinas de «programa almacenado». Posteriormente, ellos y otros pasaron a utilizar tarjetas perforadas, una por cada línea de código.

A principios de la década de 1960, los programadores con computadoras interactivas podían usar un editor de línea para escribir su código en teletipos: máquinas grandes y ruidosas con teclado e impresora. Escribían una línea de código a la vez, y su trabajo se guardaba en un disco duro giratorio del tamaño de una lavadora moderna. Pero aún no existían los editores de texto a pantalla completa que hoy nos resultan familiares y que permiten a los programadores ver y modificar muchas líneas a la vez en una pantalla.

Nace EMACS

Una de las primeras herramientas de este tipo, cumple 50 años y todavía se utiliza ampliamente. EMACS se ejecutó por primera vez en los pioneros terminales de vídeo del Laboratorio de Inteligencia Artificial del MIT en 1976, pero sus conceptos fundamentales eran tan potentes que se reescribió para numerosos sistemas operativos en las décadas siguientes. Apple incluso lo incluyó en el sistema operativo Mac OS X. Además, la comunidad de intercambio de software que surgió en torno a EMACS contribuyó al surgimiento del movimiento del software libre actual y del sistema operativo GNU/Linux.

Los orígenes de EMACS se remontan al editor de texto TECO (llamado originalmente «Tape Editor and Corrector«), creado por Dan Murphy en 1962 para la innovadora computadora PDP-1 del MIT. Los comandos del programa eran letras mayúsculas: el usuario tecleaba «I» para insertar texto, «D» para borrar un carácter, y así sucesivamente. Cuando la cinta magnética fue reemplazada como medio de almacenamiento por archivos en un enorme disco compartido, la «T» de «TECO» pasó a significar «Texto». Con el paso de los años, TECO se convirtió en un lenguaje completo que los programadores podían usar para crear nuevos comandos, llamados macros, para editar su código.

En otoño de 1971, Carl Mikkelsen ’76 creó Control-R, un programa complementario para TECO que aprovechaba las terminales de teletipo de cristal con pantallas de vídeo. Control-R mostraba inmediatamente en pantalla los cambios realizados en el archivo que se estaba editando; el programador ya no necesitaba reimprimir cada línea para ver las modificaciones. El inconveniente: la pantalla solo podía mostrar unas pocas líneas de código a la vez.

EMACS

En 1976, Richard M. Stallman, investigador del Laboratorio de IA del MIT, vio un editor de pantalla completa —llamado E— durante una visita al Laboratorio de IA de Stanford. Inspirado, regresó al MIT y se propuso mejorar Control-R. El cambio más importante en la estructura subyacente del programa fue que, al presionar cada tecla, se ejecutaba su propia macro, lo que facilitó enormemente la personalización de Control-R. Los programadores del laboratorio adoptaron con entusiasmo el código de Stallman y comenzaron a modificarlo y añadir comandos.

Varios graduados del MIT se unieron a la tarea y, juntos, el grupo asignó un conjunto estándar de comandos que utilizaban la tecla Meta presente en muchos de los primeros teclados del laboratorio: Meta-F movía el cursor una palabra hacia adelante, Meta-B una palabra hacia atrás, y así sucesivamente. Llamaron al resultado EMACS, abreviatura de «Editor Macros» o «Editing Macros».

El objetivo no era crear un editor de texto, aunque el desarrollo se mostró excelente para esta tarea. Mientras que Control-R podía resultar complicado, los usuarios de EMACS sin ninguna experiencia técnica podían aprender a editar cartas, correos electrónicos e incluso programas en cuestión de minutos. Por su parte, los usuarios experimentados y avanzados consideraban que EMACS era mucho más fácil de usar que cualquier otro editor anterior.

Stallman comenzó a distribuir EMACS a cualquiera que le enviara una cinta magnética y un sobre con franqueo pagado para su devolución. «EMACS no cuesta nada; simplemente te unes a la comunidad de intercambio de software EMACS», escribió en el manual de 1981. «La condición para ser miembro es que debes enviar cualquier mejora que realices a EMACS».

Otros miembros del grupo como Bernard S. Greenberg decidió escribir su propia versión para Multics, un sistema operativo incipiente que por aquel entonces pertenecía a su empleador, Honeywell. EMACS, la versión de Greenberg, ganó el primer premio en la Conferencia Internacional de Software de la compañía y comenzó a comercializarla. Honeywell no fue la única en comercializar una versión de EMACS: James Arthur Gosling, graduado de Carnegie Mellon que posteriormente lideró el desarrollo del lenguaje de programación Java, creó una versión que finalmente vendió como producto comercial.

Ilustraciones del manual EMACS de Stallman de 1981 que reflejan la cultura hacker de la época

Los comienzos del software libre

Esta transición del software gratuito al de pago impulsó a Stallman a lanzar un proyecto para crear un sistema operativo que pudiera ser compartido y mejorado libremente por sus usuarios. Para este proyecto, denominado Proyecto GNU, se inspiró en el sistema operativo Unix de Bell Labs, cada vez más popular. GNU era la abreviatura de ‘GNU’s Not Unix’ en alusión a que, a diferencia de éste, sería gratuito.

La primera aplicación importante del proyecto fue precisamente GNU Emacs (ahora escrito en minúsculas). El sistema operativo GNU/Linux aún tardaría años en llegar, por lo que, a pesar del objetivo del proyecto de crear un sistema operativo completamente libre, GNU Emacs se ejecutó inicialmente en Unix. Con el tiempo, se ejecutaría en diversos sistemas operativos, incluyendo Linux y otros sistemas basados ??en Unix. Cuando Apple lanzó Mac OS X, la primera versión de su sistema operativo basado en Unix, en 2001, GNU Emacs estaba incluido.

Apple dejó de distribuir GNU Emacs en 2019, pero aún conserva un programa llamado mg («Micro GNU Emacs»). Si bien es compatible con la mayoría de los comandos de EMACS, carece de un lenguaje de programación integrado, lo que lo convierte en lo que algunos denominan un «EMACS de imitación». Aún así, gran parte del sistema operativo de Apple aún conserva compatibilidad oculta con los comandos EMACS.

Terminar este pequeño homenaje a EMACS señalando su relevancia en la creación del movimiento del software libre por Richard Stallman, precisamente como oposición al software privativo y en detrimento de la colaboración entre empresas e instituciones que era la norma en los años 80. Este movimiento dio paso posteriormente a la creación del Open Source (software de código abierto) uno de los movimientos más importantes de la tecnología mundial que va mucho más allá de las cuestiones éticas o de libertad que le suelen acompañar y que son el fundamento del software libre, ofreciendo hoy modelos de negocio que aceleran el desarrollo de industrias enteras y crean estándares de facto.

Lo más leído