O Vim ou o Emacs são práticos para linguagens como .Net ou Java? [fechadas]

18

Então, eu sou principalmente um desenvolvedor .Net que faz algumas coisas em Java, Python e algumas outras de tempos em tempos. Ouvi muitas pessoas elogiarem o Vim e o Emacs por aumentarem bastante a eficiência, uma vez que os princípios são detalhados. Definitivamente, posso ver quantos dos recursos podem ser muito úteis com prática suficiente e até acreditar que a curva de aprendizado provavelmente vale o esforço. No entanto ... parece que você realmente precisa ser algum tipo de assistente de macros e teclas de atalho para ser tão eficiente no Vim ou no Emacs quanto o desenvolvedor comum é no Visual Studio, Netbeans, Eclipse ou outras plataformas. Comecei a aprender a usar o Vim e acho que alguns de seus recursos são impressionantes (edição de colunas, por exemplo), mas parece que muitas das ferramentas fornecidas pelos IDEs pesados ​​simplesmente não puderam ser substituídas. editor.

  • gerando arquivos dbml para Linq-to-SQL
  • Teste automatizado
  • projetando UIs
  • Criando / organizando projetos e soluções

Eu sei que o Vim e o Emacs podem fazer muitas das mesmas coisas com muita força que o VS pode (como intellisense, refatoração etc.) e pode ser capaz de fazer alguns ou todos os exemplos que forneci, mas é realista dizer que alguém que trabalha nessas plataformas se beneficiaria com o Vim ou o Emacs?

Morgan Herlocker
fonte
2
Trabalhamos no Eclipse em minha loja, mas há um cara aqui que usa o Vim como seu editor primário e o Eclipse apenas para tarefas de compilação e gerenciamento de código.
Michael K

Respostas:

14

Você tem uma mistura de conceitos, o que talvez não seja surpreendente, já que o VS combina muitos recursos bastante díspares. Uma citação (deste site) sugere que o Emacs não é um bom IDE, o Unix é um bom IDE. A idéia é que, no mundo Linux / Unix, você confie em várias ferramentas especializadas que funcionam bem juntas, em vez de uma ferramenta monolítica que faz tudo.

Agora, eu programa principalmente em C # e uso o VS para fazer isso. Também gosto muito do Emacs e o uso basicamente para todo o resto. Agora, como você diz, o que você pode fazer no Emacs e o que é melhor fazer no Emacs são distintos. Mas, em muitos casos, não é um mapeamento 1 para 1 e existem diferentes maneiras de atingir os mesmos objetivos usando um editor de texto e / ou outras ferramentas.

Originalmente, eu abordaria cada um dos seus pontos, mas a resposta sempre se resumia a "sim, você poderia" de alguma forma. Normalmente, você confiaria em: 1) uma ferramenta externa (como um designer de interface do usuário) para gerar código para você, importá-lo; 2) suporte de automação de dentro do editor (como o código Elisp no Emacs) para automatizar tarefas repetitivas; ou 3) você se ajustaria ao uso de ferramentas baseadas em texto em vez de visuais (como usar o MSBuild e escrever seus próprios arquivos de projeto em vez de depender da configuração do VS).

No mundo do Emacs, você não tem uma ferramenta que faz tudo, possui muitas ferramentas e a capacidade de aumentar o número de ferramentas necessárias. Ainda não o conheço o suficiente para fazer tudo isso, então uso o VS e estou feliz com as ferramentas que ele me fornece. O VS é um IDE muito poderoso e muito bom. Agora, se eu estivesse usando Java, teria que debater qual ferramenta usaria porque não conheço muito bem o Eclipse ou o IntelliJ. Para qualquer outra linguagem, o Emacs vence praticamente porque fará muito mais por mim do que qualquer outro editor de texto ou IDE pela metade que essas linguagens possam usar. (Exceto, talvez, Smalltalk, mas esse é um caso único.)

CodexArcanum
fonte
6

mas é realista dizer que alguém que trabalha nessas plataformas se beneficiaria com o Vim ou o Emacs?

Deixe-me dar um exemplo: trabalho em um sistema amplamente (mas não 100%) codificado em C #. O sistema não pode ser criado a partir do Visual Studio - é muito complexo. Portanto, eu não tenho um arquivo sln (algumas pessoas tentaram manter um, mesmo que não construíssemos o produto com ele, mas isso acabou sendo uma tarefa impossível) e não tenho benefícios de intellisense, navegação de código, diagramas de classes, etc. A ferramenta que funciona para mim é vim + ctags. Mesmo isso não é perfeito (é fácil confundir as ctags), mas é muito melhor do que usar um editor de código inferior sem suporte à navegação por código.

Agora, entendo que a maioria dos desenvolvedores .NET ou Java não está na mesma posição que eu e provavelmente é melhor usar um IDE se ele tiver um bom editor de código ou pelo menos um suplemento que melhore o padrão. Para o Visual Studio, existem complementos como o VsVim que podem tornar a experiência de codificação mais agradável. O mesmo para o Eclipse AFAIK.

Nemanja Trifunovic
fonte
3

Duvido que muitos mais usem o VIM ou o Emacs exclusivamente. Mas ainda não encontrei um desenvolvedor que não use um editor de texto (seja um desses ou qualquer outra coisa) em vez de um IDE completo para algumas coisas, geralmente muitas coisas.

Lembre-se de que há muito mais em seu trabalho do que escrever código Java, C # ou C ++. Existem scripts ANT, makefiles, arquivos XML, arquivos de configuração de vários tipos. E para muitas tarefas pequenas, o tempo de inicialização desse IDE pode ser simplesmente muito longo. O Eclipse pode levar alguns minutos para começar, VS semelhante. Para alterar rapidamente algo em uma única fonte ou apenas verificar algo em um arquivo conhecido, é muito longo. Carregar o arquivo no VIM leva apenas alguns segundos.

jwenting
fonte
1
embora o bloco de notas ++ também.
Raffael 28/03
nunca usei esse, mas já vi outros usá-lo (eu sou um flunky do VIM :)).
jwenting
2

Acho que usar um IDE e vim (meu editor favorito pessoal) não são conceitos mutuamente exclusivos. Ao desenvolver o .NET, costumo configurar uma combinação de teclas de atalho que abrirá o arquivo atual no qual estou trabalhando no IDE no vim e colocarei o cursor no mesmo local. Dessa forma, se eu quiser fazer o tipo de coisa em que o vim é ótimo (como usar macros, edição vertical, re-indentação, difração etc.), pressione o combo e pressione o meu editor favorito. minhas alterações, salve o arquivo e saia e, em seguida, voltarei ao IDE novamente (você pode configurá-lo para que o arquivo seja recarregado automaticamente quando for editado fora do IDE no VS). Dessa forma, consigo o melhor dos dois mundos.

Eu costumava usar linguagens de script para manipular arquivos de texto de maneiras complicadas. Depois que descobri o poder de usar as macros do vim (e alguns outros recursos), descobri que posso fazer esses tipos de edições / manipulações com muito mais rapidez e eficiência do que com uma linguagem de script.

É muito comum eu gerar scripts fora do shell para fazer algumas coisas complicadas usando o vim, executar o shell script que eu criei e jogá-lo fora.

meus 2 centavos :)

Gary Watson
fonte
Sim, eu brinquei com alguns plugins para o VS me saltar para o emacs, usar o emacs como a "janela do editor de código" ou apenas usar as teclas de atalho do emacs. Não amei nenhum deles. Uma macro para abrir o emacs e pular para o mesmo ponto do cursor parece uma ideia bem legal. Eu posso ter que tentar isso. Na maioria das vezes, apenas copio e colo entre os dois quando preciso fazer alguma manipulação pesada de texto.
CodexArcanum
0

Dê uma olhada nos projetos OpenIDE e testes contínuos . O primeiro se concentra em adicionar o suporte ao projeto .NET a qualquer editor, incluindo VIM e Emacs. O outro é um corredor de teste contínuo semelhante ao AutoTest / pythons Sniffer / Autonose do ruby. Pode ser executado como um plug-in do VS ou autônomo.

sumek
fonte