Emacs destaca por su capacidad de computación maleable: adaptar y extender la herramienta en tiempo de ejecución sin reiniciarla. Este artículo lo ilustra con un caso práctico: la creación de un paquete en Elisp llamado fj, que permite gestionar issues de GitHub directamente desde Emacs usando Org y Agenda.
El autor parte de una necesidad concreta: evitaba copiar manualmente el contenido de cada issue a un archivo Org para su seguimiento. Con fj, alrededor de 400 líneas de código bastan para resolver el flujo completo: listar issues, abrirlos en el navegador, crear nuevos, convertirlos entre sintaxis Org y Markdown, y trabajar principalmente desde Emacs sin autenticarse en GitHub. La clave técnica es usar la utilidad de línea de comandos gh como un servicio REST: Emacs la invoca, captura la respuesta JSON y la procesa con soporte nativo de Elisp.
El paquete combina varias piezas: Transient para los menús, vtable para mostrar tablas en buffer, ox-gfm para traducir Org a Markdown y Pandoc para la conversión inversa. La función fj-request-issues, de menos de 20 líneas, encapsula la lógica de petición, ejecución externa y deserialización del JSON.
El texto reflexiona sobre el alcance del software maleable frente a las aplicaciones de oferta cerradas. Mientras herramientas como Microsoft Office deben cubrir el 90% de las necesidades de una audiencia enorme, Emacs ofrece bloques que cada usuario combina a su modo, reduciendo código y tiempo: el autor construyó el comportamiento básico en 2,5 horas y completó todos los requisitos en un día. Respecto a la estabilidad BIBO de la teoría de control, si la funcionalidad deseada entra en ese 20% útil, el resultado se alcanza antes. El código está disponible en el repositorio kickingvegas/fj de GitHub.
