Con algo de tiempo libre entre manos, decidí escribir un poco sobre análisis de datos. No es que sea un experto, pero creo que es un tema interesante y, de paso, seguramente aprenderé cosas nuevas. Además, está de moda y, según dicen, bien pagado.

También se me ocurrió poner a trabajar a mi editor de texto favorito. Como muchos, he pasado por varios programas para escribir, manejar hojas de cálculo, hacer presentaciones y programar. Todos tienen ventajas y desventajas, y a veces los intercambio según la tarea. Sé bien que programar en Java o Kotlin puede ser más fácil con IntelliJ, que ofrece múltiples herramientas específicas. Visual Studio y VS Code brillan con C(++) y C#, y permiten extenderse casi indefinidamente. RStudio es excelente para trabajar en R, y PyCharm para Python. SPSS y Stata facilitan el análisis estadístico con menús muy completos. Y Microsoft Office y Google Docs dominan cómodamente sus respectivos entornos. Todos tienen su lugar. Aun así, yo uso Emacs.

Emacs para todo

Tal vez Emacs no sea el mejor en ninguna de esas tareas por separado. No pretendo discutir eso. Pero a pesar de las ventajas específicas de otros programas, Emacs destaca como editor general. Y eso es valioso: prefiero no estar cambiando de entorno constantemente. Con Emacs hago casi todo.

Se trata de un editor programable, posiblemente el primero en su tipo. Con el paso de los años ha acumulado cientos de módulos y librerías para todo tipo de usos. Entre los nerds tecnológicos incluso hay bromas acerca de esto (Los verdaderos programadores). Esa es su fortaleza. Si algo no se puede hacer directamente, es probable que alguien ya haya creado un paquete para ello. Y si no, uno mismo puede ajustarlo. Tal vez solo Vim compite en este terreno, aunque en un claro segundo lugar.

Además, Emacs también funciona como un IDE. Es, al mismo tiempo, un entorno de programación y de escritura. Con él se puede codificar en casi cualquier lenguaje, redactar textos, elaborar presentaciones, gestionar la agenda, consultar el correo o conectarse a servidores remotos. Muchos días ni siquiera hace falta salir de Emacs.

Actualmente uso la versión más reciente (la 30), y sigue sorprendiendo lo rápido que carga en comparación con otros IDEs modernos, mucho más pesados. Poco a poco le he ido añadiendo funcionalidades. Si algo no me gusta, lo cambio. No siempre es fácil, pero con algo de práctica, casi todo es posible.

Eso sí, hay un efecto secundario: uno se acostumbra tanto a su entorno personalizado, con sus combinaciones de teclas y flujos de trabajo, que luego resulta difícil adaptarse a cualquier otro editor, incluso a Emacs sin configuración previa. Más de una vez me he descubierto intentando atajos de Emacs en otros programas, sin mucho éxito, para luego tratar de corregir los daños. También es una cuestión física: un Emacsiano de verdad no pierde tiempo moviendo el ratón cuando todo puede hacerse con unas cuantas teclas. Y eso vale igual para uno o seis documentos abiertos a la vez. El truco está en conocer y recordar los comandos adecuados.

¿Lo recomiendo? No estoy seguro. Es una maravilla poder hacerlo todo en el mismo lugar y personalizar cada aspecto, pero no necesariamente es para todos. Primero, porque distanciarse de los flujos más comunes tiene un costo —como saben quienes han tratado de aprender Emacs sin mucha suerte, pues memorizar funciones y combinaciones tan distintas al resto del software no es tarea sencilla.

Una segunda razón para no recomendar Emacs es que esta facilidad de personalización puede convertirse en una trampa: uno puede invertir horas ajustando detalles —que en otros entornos se dan por hechos— y pasar el día haciendo que cada cosa quede exactamente como le gusta. Para muchos, Emacs termina siendo un pasatiempo más.

Por último —aunque a mí no me molesta—, hay una tercera razón y es que la interfaz carece del diseño moderno de otros programas, con sus íconos, menús y adornos visuales. A cambio, a mí me ofrece un entorno minimalista, funcional y apropiado para casi cualquier tipo de trabajo.

Escribiendo con Org

Una de las razones por las que sigo usando Emacs es el modo Org, posiblemente su herramienta más versátil. No es exagerado decir que Org-mode ha cambiado la manera en que muchas personas escriben, planean, programan o investigan.

Org es un lenguaje de marcado ligero (markup), parecido a Markdown o asciidoc. Todo es texto plano, enriquecido con algunas marcas simples:

negritas
entre asteriscos
cursiva
entre barras
subrayado
con guiones bajos
tachado
con signos más
código
entre virgulillas
verbatim
entre signos iguales
superíndices
e2
subíndices
H2O

enlaces externos:: https://orgmode.org

enlaces internos:: La torre de Babel

Los encabezados se crean con asteriscos al inicio de la línea:

Nivel dos

Nivel tres

Y se pueden hacer listas con viñetas o números:

  • Elemento uno

  • Elemento dos

  • Paso uno

  • Paso dos

Escribir fórmulas con LaTeX

Org permite insertar expresiones matemáticas usando LaTeX:

\[ \sum_{i=1}^{n} p{_{i}^{r}}(\theta_{k}) = \sum_{j=1}^{n} p{_{i}^{r}}(\theta_{k}) \]

Estas fórmulas se muestran correctamente al exportar el documento. 1

Como se ve aquí abajo, prefiero mantener un entorno limpio. Nada de menús ni barras innecesarias. Solo texto en el centro, con márgenes amplios y pocos distractores. Uso un tema oscuro para la noche y uno claro para el día. Todo se ajusta fácilmente desde una plantilla. No soy experto en configurar, pero suelo apoyarme en las plantillas y paquetes que otros han creado. Y cuando necesito algo, recurro al menú o a los índices.

Captura de pantalla del escritorio

Figura 1: Captura de pantalla del escritorio

Emacs para el blog

Uso un flujo de trabajo similar para este blog. El documento en PDF que se muestra más arriba y esta misma página provienen del mismo archivo Org. Con algunas marcas adicionales y una pequeña función personalizada, todo se actualiza con una combinación de teclas: primero se convierte a Markdown (que es el formato que Hugo —el generador de sitios estáticos— necesita), luego se compila el sitio y se sube a la web.

Podría escribir directamente en Markdown, que se ha vuelto popular, especialmente con herramientas como RMarkdown (en RStudio) o Jupyter Notebooks. Todos permiten combinar texto, código y gráficos. Pero sigo prefiriendo Org.

Las razones son simples: Emacs me permite hacer lo mismo (y más), lo conozco, y me sirve para muchas otras tareas. A diferencia de RStudio o Jupyter, Emacs es un entorno de edición completo. Además de soportar múltiples lenguajes, tiene un sistema de texto más potente, corrector ortográfico, terminal integrada, conectividad con Git, y opciones de exportación más flexibles.

Al final, el objetivo de este blog es mostrar que es posible programar, analizar datos y presentarlos de forma clara y reproducible, todo desde el mismo entorno: Emacs.

Referencias


  1. Este es un pie de página. ↩︎