Mostrando entradas con la etiqueta Emacs. Mostrar todas las entradas
Mostrando entradas con la etiqueta Emacs. Mostrar todas las entradas

martes, 30 de octubre de 2018

Programando

En una conferencia sobre el editor de texto Emacs, su autor Richard Stallman contó una anécdota que me resulta muy ilustrativa sobre cómo se dejan intimidar sin motivo muchos usuarios de ordenadores ante ciertos términos. Algo que han sabido aprovechar las grandes corporaciones de software propietario, explotando a conveniencia esa idea algo malsana de «informática amigable», que podríamos traducir como «todo para el usuario pero sin el usuario». Cuenta Stallman, en fin, que cuando se desarrolló Emacs en el MIT comenzaron a usarlo para redactar sus documentos todos los del personal de administración del centro. Les entregaron a cada uno un librito llamado Manual de instrucciones. Un título puesto con mucha astucia, ya que evitaron escribir lo que realmente era aquel manual, un Manual de instrucciones… de programación. Porque Emacs es un editor programable y extensible. Y he aquí que todos los administrativos del MIT acabaron programando profusamente sin saber que estaban programando. E imagino que cada uno llegaría a hacer, a su manera, verdaderas virguerías, pues en el fondo estaban adaptando el software a sus necesidades

A mí me pasó algo parecido. Hace ya tiempo encontré el gusto por la programación a través de dos vías. Por un lado, cuando comencé a estudiar y usar el sistema de composición tipográfica TeX. TeX es programación pura y dura, y si quieres trabajar con TeX no te queda otra que aprender a programar en TeX, de igual forma que si quieres hablar japonés debes aprender japonés. Pero es un trabajo (evocando a JRJ) siempre gustoso, y los esfuerzos nunca se quedan sin recompensa. La otra vía llegó cuando me enamoré del editor de texto Emacs, con el que mantengo un idilio casi ininterrumpido desde el 2007, año en que empecé a usar GNU / Linux. Emacs, como dije antes, es extensible y programable ad infinitum mediante un lenguaje llamado Elisp, que es un dialecto de Lisp, probablemente de los lenguajes de programación más elegantes y divertidos que haya. Y de los más antiguos: se remonta a la década de los 50, nada menos. Gracias a eso, podemos hacer en Emacs casi lo que nos venga en gana. Y si algo en concreto nos desborda, siempre habrá en otro punto del mundo alguien que sepa más que tú y que comparta contigo y con el resto de la comunidad su código. Y es que, a estas alturas, ya soy incapaz de usar cualquier programa que no me deje editar aunque sea un mínimo archivo de configuración. Y que se quede sólo en unos cuantos botones que deba pulsar dócilmente, sin saber muy bien el por qué. Para mí eso no es informática amigable.

Un ejemplillo menor de lo dicho, sacado de mi trabajo cotidiano. En mi traducción de la Odisea, sin ir más lejos, cada canto es un árbol de un documento escrito en el Org Mode de Emacs, que contiene no sólo mi traducción propiamente dicha, sino más árboles donde incluyo comentarios y notas no exportables. ¿Cómo separo un árbol determinado del resto, y me aíslo con él para escribir o revisar su contenido? Lo cuento (por si interesase a alguien que quier enamorarse también de Emacs) en mi humilde Cuaderno de GNUtas o Noches Áticas de desvelos informáticos.

martes, 9 de octubre de 2018

La Odisea y Org Mode

Notas y tareas

Mi traducción en curso de la Odisea de Homero (el primer hacker de la historia) no la realizo en Word ni en nada parecido (hace siglos que no uso un procesador de texto para escribir), sino en algo llamado Org Mode, que es un formato textual de etiquetado ligero, parecido a Markdown pero más potente y versátil. Fue creado en origen por el astrónomo holandés Carsten Dominik, y actualmente está mantenido por el proyecto GNU para el editor de texto Emacs. Dicho todo así, puede sonar a abstruso y demasiado técnico. Igual me sonaba a mí también hace no tanto tiempo, pero la verdad es que no creo que haya otra forma de decirlo. Si se explican los términos, de todas formas, encontraremos que son bastante consecuentes y nada peligrosos.

Veamos. Un formato de etiquetado no es más que una serie convencional de etiquetas o marcas que han de escribirse en distintas partes de un bloque de texto plano a fin de que una computadora las interprete y nos devuelva dicho texto con un determinado formato. Viene a ser como un código «pactado» entre el ser humano y la máquina. ¿Y lo de llamar ligero a ese etiquetado? Pues porque las etiquetas son extremadamente simples e inteligibles, y no contaminan el texto con código esotérico hasta el punto de que intentar leerlo pueda acarrearnos una embolia. Por supuesto, también hay etiquetados complejos y (siguiendo la jerga) «pesados», donde es indispensable un ojo entrenado que pueda discernir el código del propio contenido textual. Un ejemplo de estos etiquetados puede ser el lenguaje HTML de la web (quien haya visto el código fuente de una página web ya sabe a lo que me refiero), o el lenguaje TeX del sistema tipográfico del mismo nombre. No están pensados para leer plácidamente en una hamaca, sino para trabajar cual hormigas sobre un texto dado. Se comprenden en el sentido en que un músico comprende un pentagrama o un médico el resultado de una analítica, pero al común de los mortales le puede en justicia resultar chino.

Por contra, los etiquetados ligeros se mueven cerca del nivel más alto de la comprensión humana (en programación, cuanto más se baja de nivel, más nativo se hace el lenguaje a la máquina y más ajeno a nosotros), y su conjunto de etiquetas bien puede aprenderse en una tarde libre. De hecho, no hace falta ni ser un ingeniero informático ni nada parecido para escribir en Markdown o en Org Mode, ya que éstos han venido para hacerles (hacernos) la vida más fácil a todos aquellos que tengan que poner algo, lo que sea, por escrito1. ¿Por qué? Porque su sistema de marcas o etiquetas es esencialmente semántico; es decir, se dirige a la estructura lógica del contenido textual más que a la estructura física o (en último extremo) tipográfica. La separación necesaria de estás dos estructuras ha sido siempre lo más natural a la hora de escribir, hasta que un día llegaron el Word y los procesadores de texto y las mezclaron, imponiendo un sistema aberrante y, claro, antinatural. Quien se haya visto en ocasiones frustrado usando un Word, que sepa que los tiros casi siempre van por ahí. Muchos creen que Word es la evolución de la máquina de escribir, cuando lo que supone en el fondo es su negación absoluta. Pondré un ejemplo muy sencillo. En tipografía, una cursiva representa un énfasis. Pero si el énfasis ha de señalarse dentro de un texto que ya está en cursiva, entonces se opta por ponerlo en letra redonda. Como el Word obliga al usuario a ser escritor y tipógrafo al mismo tiempo, entonces el camarote de los Marx está servido. Para Markdown y Org Mode un énfasis siempre es un énfasis. ¿Cursivas, redondas, versalitas…? Ellos siempre nos contestarán, para nuestro alivio, «Mí no entender».

Cuando trabajamos de esta forma, en suma, contamos con un único texto estructurado para entregarlo en un montón de formatos físicos2. Sin ir más lejos, en mi traducción en curso de la Odisea necesito de vez en cuando contar con una salida «tipográfica» en un PDF de alta calidad donde los versos de cada canto estén numerados al margen en secuencia de cinco. El proceso se puede automatizar con un simple atajo de teclado de mi editor de texto favorito, que es Emacs. Por si a alguien le puede resultar útil, explico cómo hacerlo en este pequeño sitio web que tengo para almacenar y compartir (e incluso intentar comprender) mis notas sobre temas informáticos: https://maciaschain.gitlab.io/gnutas/orglatex.html

Notas:

1

En este texto intento explicar por qué prefiero Org Mode a Markdown.

2

Esta entrada del blog, por ejemplo, está escrita en origen mediante Org Mode. Para publicarla aquí, la he exportado a HTML.