La familia Emacsen, el diseño de un Emacs y la importancia de Lisp (2023)
Un nuevo editor al estilo Emacs llamado Lem, construido en Common Lisp, está generando interés por su velocidad, su interfaz basada en SDL2 y su soporte LSP integrado, al tiempo que plantea dudas por la falta de elementos básicos de Emacs como Org mode, herramientas de Git al nivel de Magit y el vasto ecosistema de extensiones. Los comentaristas debaten entre licencias permisivas (MIT) y copyleft (GPL) en el contexto de los editores, sopesando la libertad individual frente a la libertad de la comunidad y cuánto pueden realmente las licencias proteger los derechos de los usuarios a lo largo del tiempo. El hilo también amplía la conversación hacia la larga tensión Emacs/Vim frente a VS Code, destacando la extensibilidad basada en Lisp de Emacs y su filosofía de “el editor como plataforma” como la razón principal por la que muchos usuarios siguen fieles a él a pesar del giro general hacia VS Code.
Lem: editor al estilo Emacs en Common Lisp
- Lem se destaca como un editor al estilo Emacs basado en Common Lisp, con enlaces a su sitio y repositorio.
- Tiene interfaces de usuario tanto SDL2 (gráfica) como ncurses (terminal); SDL2 se describe como “divertida” y receptiva, con un arranque rápido (≈1 s).
- Los usuarios de Nix/NixOS señalan que existe un flake, pero va por detrás de las versiones actuales de Lem.
Licencias: GPL vs MIT y la libertad del software
- A algunos les decepciona que Lem no sea GPL; otros cuestionan por qué eso debería ser “triste”.
- Un sector ve la GPL como una forma de preservar la libertad de la comunidad (evitando que las mejoras queden encerradas en software propietario).
- Otro sector prefiere licencias permisivas (MIT) por maximizar la libertad individual, argumentando que la GPL es más restrictiva y más difícil de hacer cumplir en la práctica.
- Hay debate sobre si los defensores del copyleft quieren, en última instancia, abolir el copyright de software, y si ese objetivo es coherente.
- Puntos prácticos: la aplicabilidad legal de la GPL, la aversión al riesgo de las empresas hacia el copyleft y la preocupación por “trabajar gratis para las corporaciones” con código MIT.
Emacs, Vim, VSCode y las “guerras de editores”
- Algunos sostienen que Vim y Emacs “perdieron” frente a VSCode en popularidad; otros responden que afirmaciones parecidas se hicieron antes sobre Sublime, Atom, TextMate, etc.
- Varios argumentan que Emacs y Vim no buscan dominar el mercado y que tienen comunidades duraderas.
- Una opinión: profundizar en cualquier editor potente (Emacs o Vim) importa más que perseguir cada nueva moda.
Emacs como plataforma frente a editor
- Se describe Emacs como una plataforma general (PIM, correo, IRC, cliente de Mastodon, web scraping, hojas de cálculo, programación literaria, anotación de PDF, etc.), no solo como un editor de código.
- VSCode se ve como un IDE sólido, especialmente con LSP, pero menos maleable: Emacs permite ejecutar Lisp arbitrario como configuración, vivir dentro del proceso en ejecución.
- Algunos destacan el valor de Emacs para flujos de trabajo no relacionados con programación (org-mode, Magit, gestión de tareas), aunque la ergonomía para programar se quede atrás de VSCode en algunos aspectos.
Funciones, carencias y UX de Lem
- Lem tiene un cliente LSP, modos al estilo Emacs y Vim, una interfaz basada en SDL con capacidad para imágenes, un modo de directorios/filer y una interfaz de Git en desarrollo con staging y rebase.
- Actualmente carece de “aplicaciones estrella” de Emacs como org-mode, la madurez de Magit y herramientas ricas del ecosistema (treemacs, vertico, etc.), lo que dificulta la migración.
- Existe edición modal; aún no están presentes configuraciones al estilo leader-key (como en Doom/Spacemacs), y para algunos eso es un obstáculo.
- Un comentarista quiere un soporte interno más sólido para gráficos/diagramas; las capacidades SDL de Lem sugieren eso, pero todavía no lo ofrecen.
Sitio web y entrega de medios
- Se elogia el sitio web de EmacsConf por funcionar bien sin JavaScript y por ser ligero.
- Algunos usuarios en Apple/Safari tienen problemas para reproducir WebM/VP9, lo que lleva a discutir compatibilidad de códecs en lugar de JS.
Historia y proyectos relacionados
- Aclaraciones: el EMACS original fue un proyecto del MIT AI Lab; después, Gosling Emacs tuvo una versión comercial que influyó en GNU Emacs.
- Se mencionan otros proyectos inspirados en Emacs: Rune (Rust), Pimacs (Go), editores de estilo Helix/Kakoune y la arquitectura histórica Deuce como una fuente de inspiración infravalorada.