A família Emacsen, o design de um Emacs e a importância do Lisp (2023)

Um novo editor semelhante ao Emacs chamado Lem, construído em Common Lisp, está atraindo interesse por sua velocidade, sua interface baseada em SDL2 e seu suporte LSP integrado, ao mesmo tempo em que levanta questões sobre a ausência de elementos essenciais do Emacs, como Org mode, ferramentas git do nível do Magit e o vasto ecossistema de extensões. Os comentaristas debatem licenças permissivas (MIT) versus copyleft (GPL) no contexto de editores, ponderando liberdade individual versus liberdade da comunidade e até que ponto as licenças realmente conseguem proteger os direitos dos usuários ao longo do tempo. O debate também se amplia para a tensão de longa data Emacs/Vim vs. VS Code, destacando a extensibilidade baseada em Lisp do Emacs e sua filosofia de “editor como plataforma” como o principal motivo pelo qual muitos usuários continuam fiéis a ele apesar da mudança do mainstream para o VS Code.

Lem: Editor Semelhante ao Emacs em Common Lisp

  • Lem é destacado como um editor no estilo Emacs baseado em Common Lisp, com links para seu site e repositório.
  • Ele tem interfaces SDL2 (gráfica) e ncurses (terminal); o SDL2 é descrito como “divertido” e responsivo, com inicialização rápida (≈1s).
  • Usuários de Nix/NixOS observam que existe um flake, mas ele está atrasado em relação às versões atuais do Lem.

Licenciamento: GPL vs MIT e Liberdade de Software

  • Alguns ficam desapontados por o Lem não ser GPL; outros questionam por que isso deveria ser “triste”.
  • Um grupo vê a GPL como preservando a liberdade da comunidade (impedindo o enclausuramento proprietário das melhorias).
  • Outro grupo prefere licenças permissivas (MIT) por maximizar a liberdade individual, argumentando que a GPL é mais restritiva e mais difícil de fazer cumprir na prática.
  • Há debate sobre se os defensores do copyleft, no fim das contas, querem abolir o copyright de software, e se esse objetivo é coerente.
  • Pontos práticos: aplicabilidade jurídica da GPL, aversão de empresas ao risco do copyleft, e preocupação com “trabalhar de graça para corporações” com código MIT.

Emacs, Vim, VSCode e as “Guerras de Editores”

  • Alguns afirmam que Vim e Emacs “perderam” para o VSCode em popularidade; outros respondem que afirmações parecidas já foram feitas sobre Sublime, Atom, TextMate etc.
  • Vários argumentam que Emacs e Vim não buscam dominar o mercado e têm comunidades duradouras.
  • Uma visão: aprofundar-se em qualquer editor poderoso (Emacs ou Vim) importa mais do que correr atrás de cada nova moda.

Emacs como Plataforma vs Editor

  • Emacs é descrito como uma plataforma geral (PIM, e-mail, IRC, cliente Mastodon, web scraping, planilhas, programação literária, anotação de PDFs etc.), não apenas um editor de código.
  • O VSCode é visto como um IDE forte, especialmente com LSP, mas menos maleável: Emacs permite que os usuários executem Lisp arbitrário como configuração, vivendo no processo em execução.
  • Alguns enfatizam o valor do Emacs para fluxos de trabalho não ligados à programação (org-mode, Magit, gerenciamento de tarefas), mesmo que a ergonomia de programação fique atrás do VSCode em algumas áreas.

Recursos, Lacunas e UX do Lem

  • O Lem tem um cliente LSP, modos no estilo Emacs e Vim, uma interface baseada em SDL com capacidade de exibir imagens, um modo de diretório/filer e uma interface Git em desenvolvimento com staging e rebase.
  • Atualmente ele carece de “aplicativos matadores” centrais do Emacs como org-mode, a maturidade do Magit e ferramentas ricas do ecossistema (treemacs, vertico etc.), o que dificulta a migração.
  • Existe edição modal; configurações no estilo leader-key (como no Doom/Spacemacs) ainda não estão presentes e são vistas como um bloqueio por alguns.
  • Um comentarista quer gráficos/diagramas mais fortes embutidos; as capacidades SDL do Lem sugerem isso, mas ainda não o entregam.

Website e Entrega de Mídia

  • O site do EmacsConf é elogiado por funcionar bem sem JavaScript e por ser leve.
  • Alguns usuários em Apple/Safari têm dificuldade com reprodução de WebM/VP9, o que leva à discussão sobre suporte a codecs em vez de JS.

História e Projetos Relacionados

  • Esclarecimentos: o EMACS original foi um projeto do MIT AI Lab; o Gosling Emacs teve depois uma versão comercial que influenciou o GNU Emacs.
  • Outros projetos inspirados em Emacs são mencionados: Rune (Rust), Pimacs (Go), editores no estilo Helix/Kakoune e a arquitetura histórica Deuce como uma fonte de inspiração subestimada.