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.