Vim x Emacs (e outras bobagens)

by George Y. Kussumoto

Volta e meia o flame war mais antigo entre desenvolvedores volta para superfície, seja com os velhos conhecidos ou com os mais recentes editores de texto (IDE’s inclusas): Vim x Emacs.

“Insanity is doing something over and over, but expecting a different result”

Antes de prosseguir, acho prudente deixar claro que sempre há alguma tendência nas minhas opiniões e que uso Vim desde o início dos meus estudos como desenvolvedor (e provavelmente devo terminar assim).

O ponto cego 😎

Toda discussão polarizada ou dualista, no mínimo, reduz a profundidade analítica de qualquer questão. Isto é, a realidade é bem mais complexa e subjetiva para que se possa agrupar pessoas ou opiniões de forma binária.

Voltando aos editores de texto: ok, mas um deve ser “o melhor”, certo?

É irrelevante.

~ Sérião ~

Assim como uma universidade não te fará um profissional melhor que outros (ou sequer “profissional”), o editor também não. Ferramentas são apenas facilitadores e não determinam a qualidade do seu trabalho. A mesma idéia também vale para linguagens de programação, sistemas operacionais, frameworks e, até mesmo em temas não-técnicos.

Programadores “de verdade” não usam um editor X para ser “de verdade”, são apenas escolhas em critérios puramente pessoais:

  • Em qual editor sou mais (ou tenho potencial de ser) produtivo?
  • Em qual editor me sinto mais confortável? Isto é, o modelo mental exige menor esforço de adaptação.
  • Custo-benefício entre curva de aprendizado e produtividade.

Mas fulano ~ fodão ~ usa o editor ABC, também quero ser ~ fodão ~ !

Então foque na sua área de atuação ao invés de ficar pulando de editor para editor a cada 6 meses.

Todos os editores de texto tem suas características únicas, vantagens e desvantagens. Uns são mais rápidos, outros mais extensíveis ou tem melhor usabilidade, mas todos são direcionados ao mesmo fim: criar e editar texto de forma produtiva.

Ou seja, independente de qual for, escolha um e aprenda o máximo que puder dele.

Velha guarda 👴

Principalmente aos mais novos, o processo para escolher um editor talvez seja problemático. A dupla Vim/Emacs possui mais de 30 anos de estrada e é improvável que se encontre alguma instabilidade neles (principalmente na fase de aprendizado).

Eles já estão presentes (ou facilmente instalados) na maior parte do sistemas operacionais. As comunidades são enormes e provavelmente qualquer dúvida ou problema já foi resolvida por alguém antes. Vim/Emacs são sólidos, resistiram ao tempo, e continuam a evoluir em funcionalidades e devem se manter ativos por muito tempo ainda.

Em contrapartida, a facilidade de uso reflete bem os anos de estrada e está bem longe do ideal. A curva de aprendizado e o tempo para se sentir confortável ou produtivo neles é consideravelmente maior do que em editores mais modernos.

Resumindo, você demora mais para engrenar, mas é uma escolha segura.

Retomando um conceito anterior, muitos desenvolvedores famosos são usuários de Vim/Emacs, PORÉM — talvez não seja o editor em si que traga valor, mas os anos acumulados nos arquivos de configuração, memória muscular e cognitiva.

Os novinhos 👶

Os editores/IDEs mais modernos contam principalmente com facilidade de uso. Enquanto os antigos fizeram escola, os mais recentes é que aprenderam com os erros do passado.

Ao passo que, na maioria dos casos, utilizam mais recursos computacionais, a performance pode ficar bastante atrelada ao hardware disponível. Por outro lado, a beleza e uma usabilidade mais condizente aos sistemas atuais o tornarão produtivo em pouquíssimo tempo, talvez até no mesmo dia.

Mesmo os mais simples já incorporam ou possuem extensões que são específicas ao fluxo de trabalho de desenvolvedores, às vezes sendo até um meio termo entre IDE e um editor de texto.

Em termos de comunidade e estabilidade, os editores modernos mais conhecidos já possuem alguns anos de estrada e não são necessariamente “calouros”. Contam com bom suporte e reconhecimento.

Ao contrário do Vim/Emacs, alguns editores modernos são proprietários ou dependem de uma empresa privada injetando dinheiro ou capital humano no projeto, além do custo financeiro que deve ser investido por uma licença de uso.

Alguns exemplos bem populares: Atom, VSCode, PyCharm, Sublime, textmate, LightTable e tantosoutros.

Concluindo, é mais rápido de aprender e ser produtivo. No longo prazo pode ter alguns riscos (considere uma escala de 20, 30 ou 40 anos).

Não entre nessa guerra (ela não é sua) 🔥

Se há algum ponto que considero importante, talvez seja convencer mais pessoas que a energia gasta nesse tipo de discussão não se paga. No fim, se reduz ao gosto pessoal de cada um.

Ter uma preferência não necessariamente implica em ficar apático ou acomodado. Melhorias de produtividade são uma boa prática e devem ser constantemente revisitadas. Muita das funcionalidades dos editores mais novos foram incorporadas de alguma forma aos mais antigos (e vice-versa), o benefício é mútuo e as diferenças, saudáveis.

Com tantos desafios técnicos mais interessantes, seu talento pode ser melhor empregado ignorando tópicos polarizadores e contribuindo de forma mais realista para melhorias das ferramentas atuais.

✌️ 🚀

Originalmente publicado no medium.