O Emacs vai me tornar um programador melhor? [fechadas]

130

Steve Yegge escreveu um comentário em seu blog :

Todos os maiores engenheiros do mundo usam o Emacs. Os tipos de mudança de mundo. Não é a grande garota no cubo ao seu lado. Não Fred, o cara incrível do outro lado do corredor. Estou falando dos maiores desenvolvedores de software de nossa profissão, aqueles que mudaram a cara da indústria. Os James Goslings, os Donald Knuths, os Paul Grahams, os Jamie Zawinskis, os Eric Bensons. Engenheiros de verdade usam o Emacs. Você tem que ser muito esperto para usá-lo bem, e isso o torna incrivelmente poderoso se você pode dominá-lo. Vá olhar por cima do ombro de Paul Nordstrom enquanto ele trabalha algum dia, se você não acredita em mim. É realmente uma grande surpresa para alguém que usou IDEs do Visual Blub .NET durante toda a sua carreira.

O Emacs é o editor de 100 anos.

A última vez que usei um editor de texto para escrever código estava de volta quando eu ainda escrevia HTML no bloco de notas há cerca de 1000 anos. Desde então, sou mais ou menos dependente do IDE, tendo usado o Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio e Eclipse por toda a minha carreira.

Por que vale a pena, eu tenho tentado Emacs, e minha experiência foi um frustrante devido à sua completa falta de out-of-the-box características detectáveis. (Aparentemente, existe um comando do Emacs para descobrir outros comandos do Emacs, que eu não consegui encontrar por sinal - é como viver sua própria piada cruel do tipo zen.) Tentei me fazer gostar do programa por um bom mês, mas eventualmente decidiu que preferia ter designers de GUI de arrastar e soltar, IntelliSense e depuração interativa.

É difícil separar fato de fanboyismo, então não estou disposto a considerar os comentários de Yegge pelo valor de face ainda.

Existe uma diferença mensurável em habilidade, produtividade ou prazer de programação entre pessoas que dependem de IDEs e aquelas que não, ou é tudo apenas fanboyismo?

Julieta
fonte
22
Também vale a pena notar que Paul Graham usa o vi; Yegge oferece essa correção ele mesmo em uma nota de rodapé no artigo vinculado.
Eli Courtwright 27/01/09
16
De todos os editores que usei, o Emacs é o único que explica como executar o tutorial toda vez que ele inicia (até você aprender o suficiente para dizer para parar de dizer como executar o tutorial).
Michael Paulukonis
16
EMACS de quê? Escape Meta Alt Control Shift! ;-)
Peter K.
24
Terminologia nit pick: O Emacs é um "editor de programadores", não um mero "editor de texto". Os IDEs da GUI também têm a capacidade de editar texto, mas também não são meros editores de texto. Comparar o Bloco de Notas ao Emacs é como comparar ... jogar algo de pedra para acertar algo com aquela arma na Estrela da Morte.
Greg Mattes
8
Obviamente, algumas pessoas não entendem a diferença entre correlação e causalidade
Chubas

Respostas:

119

Primeiro, deixe-me dizer que sou um verdadeiro crente professo no culto do Emacs.

Dito isto, o blogueiro é louco. Você escreve o que acha útil. Acho que o Emacs me ajuda, principalmente porque passei meus anos de faculdade pagando antecipadamente o custo inicial de aprender a modificá-lo para atender às minhas necessidades e me modificar às suas necessidades.

Mas outras pessoas fazem as coisas de maneira diferente, e como dizem "Tudo bem".

Brian Postow
fonte
73
Acordado. Eu amo o Emacs, mas pensar que o Emacs o tornará um programador melhor é como pensar que o uso dos tacos de golfe de Tiger Woods o tornará um jogador melhor, ou o uso da guitarra de Eddie Van Halen o tornará um músico melhor.
Kristopher Johnson
31
Discordo totalmente do comentário de Kristopher acima. Usar as ferramentas de um grande esportista / artista definitivamente não o tornará tão bom quanto eles. Mas, definitivamente, usar as ferramentas de programação RIGHT para o trabalho RIGHT! Você pode ser perdoado por equiparar programação com esporte e arte. :)
Susheel Javadi 19/11/2009
6
@ Bart: Seu ponto é que existem várias "ferramentas certas". Os tacos de golfe da Tiger Wood são excelentes ferramentas e são perfeitos para o trabalho, mas também existem outros clubes que podem fornecer os mesmos resultados. A ferramenta que um bom programador usa não os define, sua criatividade e habilidades o definem.
Seth Moore
9
Eu acho que o ponto principal da declaração de Steves é que grandes programadores usam emacs, bons desenvolvedores de software são mais produtivos usando um IDE. O grande programador sempre programa, mesmo ao produzir código que programa, automatiza tarefas, adora make, ant, bash, perl e hudson. Eles sabem que tarefas manuais em qualquer parte do ciclo de desenvolvimento de software são propensas a erros. Grandes programadores também sei que se alguém constrói o seu código (por exemplo, o IDE ou alguém), então você sempre depender de que um habilidades elses quando se trata de manter o código (por exemplo, o IDE ou alguém)
Ernelli
4
Steve Yegge é o cara que escreveu um analisador JavaScript completo em elisp, por isso não há dúvida de que ele é louco, tanto quanto Emacs vai :)
Tikhon Jelvis
106

Ele (Steve Yegge) elaborou isso, em pedaços, em outras postagens dele. http://steve-yegge.blogspot.com/2008_04_01_archive.html é provavelmente o mais abrangente, mas as informações estão ocultas, pois são tangentes ao assunto principal.

Eu suponho resumir: os programadores meramente bons ou competentes escolherão um IDE e o conhecerão muito bem, e talvez o façam decentemente o suficiente, mas se restringirão ao que o IDE fornece para eles. Em outras palavras, eles se adaptam ao IDE. Os grandes programadores, por outro lado, adaptarão seu ambiente para se adequarem a si mesmos , como escrever scripts ou suas próprias ferramentas, ou estender suas ferramentas. E até esse último ponto, não apenas o Emacs é o ambiente mais extensível que existe, mas também o mais fácil ambiente de estender, e é o ambiente onde você obtém mais benefícios de estendê-lo - suas extensões se integram ao Emacs como se fossem recursos padrão e, portanto, suas futuras extensões podem se basear nas anteriores (tipo de loop de feedback positivo).

Nietzche-jou
fonte
15
A diferença é a energia necessária para estender o IDE. Com o emacs, todos os arquivos de configuração são arquivos de programa elisp. Então, basicamente, a barreira para a entrada é ridiculamente baixo (apenas mudar seu arquivo .emacs)
shsmurfy
18
Na mesma linha que Angus. Um bom IDE não precisa ser interminável para realizar o trabalho. Um bom IDE deve ter todos os recursos necessários. Claro que você pode querer configurar os atalhos e o layout, mas não precisa escrever vários scripts para lidar com tudo.
Kibbee
5
Angus: você está certo. Se você tiver que acrescentar coisas ao invés de fazer seu trabalho, você perdeu o objetivo - o Emacs ou não. Sol: Há mais a estender do que enviar a fonte através de programas externos. De fato, não é um mecanismo de extensão tão poderoso.
23926 Jonathan Arkell
15
A diferença entre estender o emacs e estender o netbeans, visual studio ou eclipse é a velocidade. Adicionar extensões ao eclipse é como escrever um aplicativo inteiro. Em comparação, escrever uma extensão para o emacs pode ser uma única linha de código.
23730 Justin Tanner
4
@supercheetah - parece muito primitivo comparado ao intellisense encontrado no Visual Studio; por exemplo, os ícones mostrados ao lado dos membros disponíveis são úteis! Pessoalmente, sem um forte apoio à refatoração, tenho pouco interesse no Emacs.
si618
57

Os melhores programadores usam vi ou emacs, porque os programadores mais experientes são os melhores e, há 20 anos, não havia muita escolha, exceto vi e emacs.

Depois de iniciar o vi (ca. 1987) em uma máquina com um terminal de texto muito lento, converti para o (GNU) Emacs depois de alguns anos (em uma máquina mais rápida) e o usei quase exclusivamente por quase 10 anos.

O Emacs foi o primeiro ambiente de desenvolvimento verdadeiramente integrado - todo o ciclo de edição / link / compilação pode ser controlado no emacs e você pode criar o seu próprio para qualquer compilador usado.

Atualmente, IDEs como o eclipse são ainda mais integrados (para ser honesto: o emacs é péssimo em gráficos), mas o Emacs ainda é um dos melhores ambientes para edição de texto "pura".

mfx
fonte
10
+1 para a profecia auto-realizável no primeiro parágrafo.
OregonGhost 20/02/2009
12
"os programadores mais experientes são os melhores" - muito longe da verdade, pelo menos por implicação. Não dizer que programadores inexperientes são melhores, mas apenas porque ele faz a mesma coisa há mais de 20 anos - NÃO significa que ele está fazendo isso bem.
Avid
7
Havia muitos editores diferentes há 20 anos. A maioria deles simplesmente não sobreviveu, geralmente por um bom motivo. Por que um cara que usou o vi ou emacs em 1989 é melhor do que um cara que usou algum editor baseado no MS-DOS em 1989, ou o que diabos eu estava usando no mainframe dos Dados de Controle?
David Thornley
Caramba, há 10 anos não havia um bom IDE Java!
Susheel Javadi
Pelo que me lembro de 20 anos atrás, o vi e o emacs eram os editores predominantemente dominantes - só porque havia muitos editores (como agora) não significa que todos eram igualmente amplamente usados.
FinnNk
34

Melhorar seu pensamento claro e a resolução de problemas fará de você um programador melhor. Nenhum programa pode fazer isso.

Usar um martelo melhor não vai me ajudar a construir uma casa melhor, a menos que eu saiba como e por quê. ;)

Jas Panesar
fonte
Uma boa analogia para o que eu queria dizer também.
28409 Rob
21
Mas um martelo ruim arruinaria sua produtividade ao tentar construir a mesma casa e você provavelmente terminará com uma casa diferente.
user51568
Isso é justo! Um programador comum não se sairia muito melhor com o martelo caro.
Jas Panesar 30/01/09
5
Um grande programador pode construir uma grande casa usando uma pedra para martelar. (Ele é lento - mas ele ainda pode fazê-lo: D.)
Egon
Sim, mas ter um editor que permita que o código flua organicamente (que eu acho que o Emacs é melhor do que a maioria dos editores) pode melhorar seu pensamento claro e, portanto, a solução de problemas.
Skilldrick 12/08/10
21

Yegge precisa conhecer Bill Joy. Além de ser um dos grandes programadores do mundo, ele também escreveu grandes partes do vi. No vi.

Confissão vergonhosa curta: Após 20 anos usando o vi (e vim / gvim nos últimos anos) para tudo, no último ano, mais ou menos, comecei a usar o Eclipse para edição em java (e o Thunderbird para e-mail), embora no meu trabalho atual meu A máquina tem tão pouca memória que eu normalmente uso o vi, exceto quando preciso do depurador.

Paul Tomblin
fonte
7
+1 para vi (na verdade, use vim, mas a mesma diferença). É 98% do que o emacs pode fazer por menos da metade do esforço.
rmeador
25
Eu usei o vim por 5 anos. Depois de 20 minutos no Emacs, jurei que nunca mais voltaria. Vim sente-se ao contrário.
MattBelanger
5
O próprio Yegge menciona o seguinte: [A única exceção digna de nota é o VIM, que também é muito poderoso para todas as contas, embora eu não tenha experiência com isso. Se você já desenvolveu uma preferência pelo vi sobre o emacs, poderá ter uma felicidade maior ao buscar conhecimento com o VIM. Psh] Fonte: steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
user674062
1
Bill Joy não usa mais o vi.
Plumenator 1/11/11
13

Existe uma diferença mensurável em habilidade, produtividade ou prazer de programação entre pessoas que dependem de IDEs e aquelas que não, ou é tudo apenas fanboyismo?

Vamos restringir isso ao Visual Studio vs. Emacs --- a questão é muito ampla de outra forma, e suspeito que a maioria das pessoas (pelo menos aqui no StackOverflow) esteja familiarizada com esses dois. [Sou, uso e prefiro o emacs]

Em seguida, vamos detalhar os três componentes da pergunta.

O prazer da programação se resume a gostar principalmente da programação em si mesma e, secundariamente, a não aparecer fatores de aborrecimento quando você faz isso. O uso de ferramentas com as quais você luta vai subtrair do prazer. Então, eu suponho que o prazer é provavelmente maximizado usando ferramentas que você gosta e que conhece.

Obviamente, quando você se familiarizar com uma nova ferramenta, poderá achar que gosta mais dessa ferramenta e, portanto, gostará de programar mais se fizer isso com sua nova ferramenta favorita. Não está claro para mim que as pessoas em geral gostem do VS sobre o emacs (ou vice-versa) quando os conhecem bem.

Em seguida, habilidade de programação. Se houver alguma conexão entre a habilidade e a escolha do VS / emacs, acho que é a habilidade que causa a escolha, e não a causa da habilidade. Na minha experiência, nenhum dos {VS, emacs} parece me fazer aprender algo sobre como escrever código melhor .

Uma boa ferramenta pode me permitir escrever o mesmo código (e, portanto, a mesma qualidade de código) em quantidades menores de tempo; se assumirmos isso productivity = quality of code `times` code per time, é lógico que qualquer editor que permita escrever um bom código em menos tempo é um aumento de produtividade.

Talvez eu não esteja familiarizado com o VS, mas aqui acho que o emacs tem alguns pontos fortes que não encontrei no VS. Pode parecer ridículo, mas algo tão simples quanto o movimento do cursor comCtrl-[fbnp] é um benefício real - significa que você não precisa mover as mãos para as teclas de seta. Outra coisa: você pode fazer uma pesquisa ou substituição que inclua novas linhas, que eu uso com frequência suficiente para odiar.

Outra coisa de que gosto é a capacidade de incorporar um shell no meu editor. Na minha experiência, é muito mais valioso em plataformas não Windows (e minha primeira experiência em "programação", o IIRC, estava escrevendo arquivos DOS .bat, por isso não sou apenas um fanboy em chamas), mas nessas plataformas é uma grande vitória . Faz com que o emacs "integre" a "tudo" (pesquisa de arquivos com localização / localização, pesquisa de texto com grep, controle de versão com svn / git / hg / ..., o que você quiser).

Veredicto final - você deve aprender emacs ou não? E é tudo fanboyismo? Se você tiver tempo, eu diria que sempre vale a pena aprender novas maneiras de fazer a mesma coisa, porque a nova maneira pode funcionar melhor para você. E eu encorajo você a não rejeitá-lo pelo que parece ser quando você é novo nele. Nesse sentido, é como mudar para o layout do teclado Dvorak: você é mais lento no início, mas, quando acelerar, é provável que seja pelo menos tão rápido quanto no qwerty e mais confortável. Eu recomendo a mesma abordagem para aprender novas linguagens (de programação): porque você não conhece o vocabulário (biblioteca padrão), dizer que as coisas são difíceis, mas a recompensa ainda está lá no horizonte esperando por você.

Jonas Kölker
fonte
1
"Vamos restringir isso ao Visual Studio vs. Emacs - a questão é muito ampla de outra maneira, e suspeito que a maioria das pessoas (pelo menos aqui no StackOverflow) esteja familiarizada com esses dois". -- Sério? Eu pensei que havia muitos fanboys raivosos * nix como eu, que não seriam forçados a usar o VisualStudio, muito menos usá-lo voluntariamente. Hrm.
Xiong Chiamiov 17/09/09
"o movimento do cursor com Ctrl- [fbnp] é um benefício real". Embora eu ame o Emacs, depois de ter retornado a ele após um longo hiato, acho o movimento do cursor dessa maneira o aspecto menos útil e confortável de usar o Emacs novamente. Por outro lado, posso alcançar e encontrar as teclas dedicadas do cursor sem olhar nem pensar. Talvez ajude ser um pianista? :) Mas quem sabe, com o tempo, talvez a letra C-scrunch parecerá mais natural.
22711 Greg Hendershott
2
ps Eu concordo totalmente com conchas e plataformas. Se você deseja alternar entre Windows, OS X e Linux, então você quer Cygwin no primeiro e Emacs nos três. Jogue seu .emacs.d no GitHub e você estará dourado.
22711 Greg Hendershott
Além disso, você pode fazer busca que inclui novas linhas no Visual Studio usando expressões regulares
Axarydax
10

Com o texto citado começando "Todos os maiores engenheiros do mundo usam o Emacs", eu também não aceitaria isso pelo valor nominal. Ele conhece todos os maiores engenheiros do mundo? É a mesma lista dos maiores engenheiros do mundo que você ou eu temos?

Uma vez aprendido, um editor poderoso como o EMACS ou o vi o tornará mais eficiente, ou pelo menos mais eficiente, se você for pego sem o seu IDE favorito.

É a parte "uma vez aprendida" que é o assassino. É muito trabalho e prática usar essas ferramentas de forma produtiva, e é muito difícil no começo.

John
fonte
1
Acho que uma das qualidades que realmente ajuda alguém a ser um "grande engenheiro" é poder adiar a gratificação e arcar com um custo fixo maior de inicialização para melhorar a eficiência.
Tikhon Jelvis
9

Eu sou um fanboy do Emacs, pessoalmente, mas o Emacs é apenas uma ferramenta. Não fará de você um programador melhor, assim como uma caneta super sofisticada o tornará um escritor melhor.

O esclarecimento de que "grandes programadores" adaptam seu ambiente a si mesmos pode ter algum mérito, mas muitas ferramentas podem fazer isso (por exemplo, vim e SlickEdit), então não há nada em particular no Emacs a esse respeito.

Acho que o mais provável é que os "grandes programadores" sejam apaixonados por programação e as pessoas apaixonadas por isso tendem a encontrar ferramentas que ajudam a impulsionar essa paixão. O Emacs (e vim e SlickEdit, et al) é uma ferramenta desse tipo.

Joe Casadonte
fonte
Canetas super chiques me fazem sentir todo o Hemingway.
#
2
O que é particular no Emacs em relação à "adaptação do ambiente" é que é muito mais simples fazê-lo no Emacs do que no Vim ou no SlickEdit. (ou qualquer outro editor que eu conheça) #
vedang
8

Não acredito que haja diferença, é mais uma questão de preferência.

No entanto, o que eu notei é que quanto mais você codifica, ou no nível inferior, maior as chances de você usar o emacs ou vi.

Stephane Grenier
fonte
O "mais tempo que você codificou" parece argumentar por ter começado a codificar antes que houvesse bons IDEs.
Paul Tomblin
3
Existe algo como um bom IDE, filho?
David Thornley
8

Embora os IDE tenham melhorado muito na última década, eles ainda contêm a programação em uma "bolha" um pouco segura, longe de alguns dos detalhes mais feios. O que tende a acontecer é que esse aumento na abstração permite que mais programadores façam mais, com menos conhecimento. Isso, é claro, não se aplica a todos os programadores, mas ferramentas mais fáceis levam a programação a um público mais amplo.

Mais conhecimento de ferramentas de nível inferior, muitas vezes se traduz em mais estabilidade no código, pois há menos chances de "ir contra a corrente" acidentalmente. É injusto apenas listar o EMACS como o único indicador líder, pois ele vem de uma variedade de idiomas e ferramentas, e realmente é mais sobre a profundidade do entendimento, não sobre a tecnologia específica.

No caminho de volta, você aprendeu VI ou EMACS nas caixas UNIX ou se especializou em PCs (OK, também havia VMS, CMS, AS400 etc., mas essas eram tecnologias mais antigas). Ambos os fluxos atraíram pessoas muito interessadas, mas o pessoal do UNIX tendia a querer uma solução sofisticada, enquanto o pessoal do PC só queria que fosse feito rapidamente. As culturas eram muito diferentes.

Paul W Homer
fonte
7

Os IDEs da IMHO tendem a ser otimizados em torno de uma plataforma, linguagem ou sistema operacional específico: o Eclipse JDT é ótimo para Java, o Visual Studio é centrado em C ++ / .NET, etc. Eles ajudam muito a produtividade (novamente IMHO) se você estiver trabalhando apenas em nessa plataforma, mas se você mudar de plataforma, precisará basicamente aprender um novo IDE (ou pelo menos um novo conjunto de plugins, visualizações, perspectivas e não sei mais o que fazer para o Eclipse).

A vantagem de conhecer o emacs, ou Textmate, ou vim (minha preferência pessoal) ou qualquer editor genérico , é que as habilidades que você adquire nesse editor se aplicam independentemente da plataforma para a qual você está escrevendo. Eles são otimizados para editar texto e, depois de dominá-los, você pode editar o texto com muita eficiência em qualquer idioma.

Há também a afirmação de Yegge de que grandes programadores adaptam suas ferramentas ao seu estilo de trabalho em vez de vice-versa. Eu acho que isso é uma vitória para editores genéricos, porque você personaliza um editor, em vez de precisar descobrir como adaptar quatro IDEs diferentes para que todos se comportem da maneira que você deseja.

Sam Stokes
fonte
O problema surge quando você precisa escrever em uma plataforma diferente daquela em que está: por exemplo, você muda do * nix para o Windows e seus scripts são interrompidos porque eles estavam assumindo um shell bourne com caminhos baseados em '/' em um Estrutura do tipo FHS com impressão baseada em PostScript ...
SamB
Estou trabalhando com o emacs há algum tempo, agora, e apenas o movimento do cursor é suficiente para eu me ressentir de escrever em qualquer outra coisa - mesmo que seja um email no KMail.
Arne Babenhauserheide
@ArneBabenhauserheide, esse é um dos motivos pelos quais eu amo o Mac OS X, quase todos os campos de texto são compatíveis C-[npfbaed]. (Mas, infelizmente, não M-)
porglezomp
6

Eu diria que os melhores programadores tendem a ser os que demoram para personalizar seu ambiente, tornando mais rápido / fácil executar as tarefas que provavelmente executarão. O Emacs é um dos editores mais poderosos quando se trata de personalizar seu ambiente. Ele tem uma curva de aprendizado acentuada, mas, depois que você passa por isso, praticamente não há limites para o que você pode fazer por você.

Alguém disse uma vez que os melhores programadores são os preguiçosos; os que, uma vez que precisam fazer algo mais de uma vez, encontram uma maneira de automatizá-lo para que seja preciso menos esforço. O Emacs permite que você seja muito, muito preguiçoso;)

RHSeeger
fonte
4

Eu usei IDEs desde o início (sem dúvida; tendo começado com QBASIC) e por muitos e muitos anos. Agora mudei quase completamente para o VIM (em diversos sabores) para todo o meu trabalho de desenvolvimento e não me arrependo. Minha produtividade aumentou definitivamente.

Obviamente, nada substituirá o designer do Windows Forms do Visual Studio. Mas comparado ao VIM (e ao Emacs, tenho certeza), o editor de texto dentro do Visual Studio é realmente péssimo. Depois de aproveitar o poder bruto do console e das ferramentas de desenvolvedor GNU (com o que quero dizer make, GCC binutilse gdb, e mais algumas), você perceberá que essas ferramentas podem parecer primitivas, mas são exatamente o oposto, e realmente oferecem tudo as ferramentas que um IDE fornece (bem, exceto pelo designer de formulários).

É só que você tem uma subida muito íngreme pela frente quando começa a usar essas ferramentas, e o incentivo pode ser pequeno. Eu tive a sorte (?) De ser forçado a usar essas ferramentas para não ter uma escolha da qual pudesse me basear.

Konrad Rudolph
fonte
3

Pessoalmente, acho que você deve usar o que o torna mais produtivo. Se você não tem tempo para investir em um projeto para se sentar e aprender o Emacs, provavelmente não é o melhor uso do seu tempo nesse momento.

No entanto, sinto que é uma boa ideia conhecer outros IDEs quando tiver tempo suficiente. Eu uso o Visual Studio no meu dia-a-dia, mas em casa eu uso o Eclipse para pequenos projetos e utilizei Emacs também. No momento em que eu considerei usar o Emacs, meu esforço foi melhor servido para realizar o trabalho real do que diminuir a velocidade na luta com o Emacs.

Eu acho que até certo ponto é absurdo pensar que todos os melhores programadores usam o Emacs. Existem muitos programadores incríveis que não são tão populares (ou vocais, talvez) que não usam o Emacs.

jamesmillerio
fonte
3

Comecei a usar o Emacs há cerca de um ano e meio, porque era a confluência de vários desejos - queria trabalhar com expressões regulares (em um editor que os apoiava), queria aprender cocô, queria um editor melhor.

A edição do meu código com expressões regulares me ensinou muito sobre como encontrar padrões no código. As teclas levaram um tempo para se acostumar, mas eu voo muito mais rápido sem o mouse.

O Emacs me deu a capacidade de continuar trabalhando com minhas anotações e codificação no mesmo aplicativo - troca de contexto mínima significa troca de cérebro mínima e posso manter o foco na tarefa em questão.

Michael Paulukonis
fonte
3

Não. Um bom código faz de você um programador melhor.

Dito isto, uma boa manipulação de texto é essencial para a eficiência. O vim ou o emacs mudarão a maneira como você trabalha com texto - ambos são comprovadamente eficazes, mas estão quase em desacordo em termos de estilo. Além disso, esse debate é bastante antigo (nos anos 80 e 90, onde o texto -> compilador era a chave), então existem muitos outros editores de texto e / ou IDEs que podem ajudá-lo a ser o melhor programador possível.

Sobrecarregado
fonte
3

Não. Se você acredita que usar o emacs o torna um programador melhor, você está confundindo causa e efeito.

Eu uso diariamente, no entanto. Acho que sou mais produtivo com o emacs + maven do que com o Eclipse para o desenvolvimento de java (embora eu ainda inicie o Eclipse de vez em quando para fazer uma sessão ocasional de refatoração ou depuração).

Estas são as minhas razões:

  • A experiência real de edição de texto no emacs supera todo o resto. É incrível a rapidez com que você pode realizar tanto usando apenas o teclado. O Eclipse é mais orientado para o mouse e, quando você digita, encontra muitos obstáculos irritantes.
  • Ser capaz de personalizar o emacs usando o elisp é incrivelmente poderoso. Eu vou tão longe quanto dizer que, se você não está tendo tempo para aprender elisp rudimentar e personalizar seu ambiente, está simplesmente perdendo seu tempo.
  • Existem extensões para praticamente qualquer coisa que você possa querer fazer em um editor de texto.
fred-o
fonte
1
+1 para correlação! =
Causal
Qual modo java você está usando?
Avendael
1
Estou usando o modo Java padrão que vem com o Emacs23, com algumas personalizações e hacks para executar compilações maven. Também comecei a usar o emacs-eclim, que atua como uma ponte entre o emacs e o eclipse. É agradável e utilizável, mas bastante difícil no momento.
Fred-o
3

Para mim, a principal razão pela qual escolhi o Emacs em vez de um IDE é porque ele me permite fazer tudo, desde apenas o meu teclado. Isso é bom, pois economiza algum tempo para quando eu usaria normalmente um mouse. Além disso, como me sinto muito móvel, tenho a tendência de interromper minha programação "groove" devido ao uso do meu touch pad lento. Além disso, sua personalização faz brilhar alguns IDEs para mim. No entanto, se você se programar rápido o suficiente com um IDE, diria que a curva de aprendizado do Emacs não vale a pena.

Anton
fonte
2

Existe uma diferença mensurável em habilidade, produtividade ou prazer de programação entre pessoas que dependem de IDEs e aquelas que não, ou é tudo apenas fanboyismo?

Eu não acho que você poderia realmente obter uma resposta para isso. Existem muitas maneiras diferentes de medir a habilidade, a produtividade e o prazer da programação - e todas elas são provavelmente muito subjetivas e / ou não podem ser divididas em UMA coisa que a causa ou não.

Ainda é uma pergunta interessante.

Minha crença pessoal é - depende do programador :)

G-Man

GeoffreyF67
fonte
Fanboys, cara. IDE não é editor. O IDE não precisa ser o melhor editor.
Perpetualcoder
2

Eu não acho que isso faria de você um programador melhor, mas quando você tiver esse nível, provavelmente usará o emacs (ou vi)

: - /

A coisa boa sobre esses dois (eu nunca usei o emacs antes, mas ainda uso o vi para a tarefa mais banal) é o fato de que eles não interrompem sua linha de pensamento , você não precisa tirar as mãos das mãos. o teclado para pegar o mouse e procurar no menu arquivo a opção correta. Você apenas continua escrevendo. Dentro de sua mente, você diz algo como: "Substitua todas as ocorrências desta palavra por isso", pressione enter e continue com seu trabalho.

Além disso, não acho que eles usem o emacs é sua única ferramenta.

Isso faria de você um programador melhor? Provavelmente não. Mas quando você tiver esse nível de especialização, provavelmente gostará da rapidez com que consegue codificar usando essas ferramentas.

OscarRyz
fonte
Caçar no menu é para pessoas que não conhecem o IDE. Não sei na última vez que tive que "caçar" por uma opção de menu.
tster
Então você acha que usar "Arquivo-> Salvar" é melhor que Ctrl-S? Acho que não. Tendo que pegar o mouse, clique no arquivo de menu e, em seguida, mova o mouse para baixo até Salvar entrada parece muito importante para mim quando você pode fazê-lo sem pegar nas mãos do teclado.
OscarRyz 18/04
obviamente eu concordo. Todos os IDEs que usei possuem teclas de atalho extensivas e personalizáveis ​​e combinações, como o emacs.
tster
2

Não.

Disciplina, pensamento crítico e desejo de auto-aperfeiçoamento farão de você um programador melhor. Seu conjunto de ferramentas, embora seja um fator importante em sua produtividade, não criará genialidade.

Se você não gosta do emacs ou vi, não os use. Ao fazer a escolha consciente de não fazê-lo, você está moldando seu ambiente de desenvolvimento para atender às suas próprias necessidades e práticas de trabalho. De qualquer forma, você pode usar o que quiser - e ignorar qualquer um que seja tolo o suficiente para repreendê-lo pela ferramenta usada para gravar bits no disco - são os bits que importam.

Nota: "Conjunto de ferramentas" aqui significa, literalmente, a "marca" de ferramentas - editores específicos, compiladores, etc. Conjuntos de ferramentas conceituais, por exemplo, o uso de controle de versão, teste de unidade - todos em geral - fazem parte do auto- processo de melhoria.

Roubar
fonte
2

Uma das grandes características do emacs é que ele pode lidar com praticamente qualquer tipo de arquivo, de qualquer tamanho. É certo que, se você estiver abrindo um arquivo criptografado enorme e louco, ele não será necessariamente útil, mas será aberto. A maioria dos editores (e IDEs) causará muita dor de cabeça se você entregar um arquivo muito grande e / ou não um dos formatos esperados.

Tente abrir um arquivo de 1 gig no bloco de notas, por exemplo.

Comecei a usar o Emacs em algum lugar por volta de 1980 e sempre foi uma ferramenta na minha caixa de ferramentas. Não é a única ferramenta, mas é sempre algo a que posso recorrer e saber que poderei realizar algum trabalho útil.

Comentário inflamatório obrigatório : por outro lado, não tenho nada de bom a dizer sobre vi. Eu sempre achei que vi me mataria feliz e venderia meus órgãos apenas por maldade ...

Na vida real, uso o Netbeans para quase todas as formas de desenvolvimento e uso o emacs de vez em quando para fazer uma edição rápida. Não há quase nada lá fora que seja tão conveniente quanto o emacs (para mim) quando se trata de fazer algo maluco agora.

Alguém mais tem que editar seqüências de caracteres estáticas em executáveis ​​binários compilados? Existe uma ferramenta melhor para esse tipo de coisa do que o emacs? Certamente funciona para mim.

Bob Cross
fonte
1
Enquanto o Visual Studio perderia completamente essa oportunidade e se contentaria em vasculhar sua carteira para ver se havia algum dinheiro sobrando.
28409 Rob
Desculpe, eu não saberia. Eu uso o Netbeans quase o tempo todo e emacs quando preciso.
22420 Bob Cross
2

Eu sei que você não perguntou isso, mas uma coisa que aprendeu emacs (inesperadamente) melhorou para mim foi manipular uma linha de comando. Antes de aprender as combinações de teclas do emacs, movia o cursor e navegava no histórico usando as teclas do cursor, porque não conhecia melhor. Foi um momento de bulbo em que eu percebi que poderia usar backward-word, move-beginning-of-linee backward-kill-word(ao qual sempre me vinculeiC-w , como Stevey sugere ) em bash( M-tgeralmente é útil também, e mais impressionante para quem nunca viu isso antes).

Eu trabalho bastante no Solaris, onde o shell raiz é "o posix shell" e, por padrão, não possui ligações do emacs. Acho que meus dedos agora são do tipo que exec basheles querem, toda vez que faço login, me sinto muito mais rápido com os agora familiares comandos de edição sob meus dedos.

Devo admitir, no entanto, ainda acho os livros de Knuth difíceis (embora valham a pena) - então não acho que tenha melhorado magicamente minha programação.

Tom Dunham
fonte
Cara, eu realmente preciso aprender mais desses truques ... De qualquer forma, você não pode mudar o seu shell de login ou você realmente quis dizer "o shell para o usuário root" quando disse "shell root"? Se sim, por que você está fazendo login como root ???
SamB 11/11/10
2

O Emacs me tornou mais eficiente na manipulação de texto e na navegação do sistema de arquivos. E como essas duas coisas estão envolvidas quando eu programa, isso me tornou um programador mais eficiente (portanto melhor).

Steve
fonte
2

Eu acho que o Emacs pode torná-lo um programador melhor, embora indiretamente. Acho que o Emacs me levou a escrever em uma linguagem funcional ( Elisp ), que me interessou em outras linguagens funcionais ( Clojure ), que me disseram que me farão um programador melhor. Dito isto, suponho que o tempo dirá.

Peter Mortensen
fonte
É um estilo realmente antigo do Lisp (com escopo apenas dinâmico e sem léxico), mas certamente tem muito a ensinar. Isso e pode ser um editor de texto muito bom nos dias em que realmente funciona direito!
SamB 11/11
1

Ser capaz de usar algum editor personalizável permite que você faça coisas bacanas, mas o emacs em particular não é necessariamente o melhor possível. Eu também sou usuário do SlickEdit, faço as mesmas coisas meio automatizadas e estranhas pelas quais o emacs é famoso. Eu já vi pessoas fazerem coisas semelhantes com o vi e vários editores baseados no Windows.

Então, sim, os conjuntos de soquetes são bons, mas argumentar que o Craftsman cria o conjunto de soquetes verdadeiros é meio idiota.

mjfgates
fonte
Como um aparte, eu poderia estar inclinado a experimentar o SlickEdit se não fosse pelo marketing da cabeça: "10 razões para não usar o SlickEdit - # 1: você gosta de ser um programador ruim. # 2: você quer gastar mais para fazer . less # 3: você é um idiota inato etc etc etc".
Juliet
Eu entrei no Slick antes que ele tivesse marketing; é que foi o único editor real que funcionava no OS / 2 3.0 na época. Que é provavelmente sobre a mesma razão que todos os outros caras usam emacs ...
mjfgates
1

O domínio das ligações de teclas do Emacs e de suas funções integradas permitirá que você manipule o texto mais rapidamente do que os IDE, como Eclipse ou Visual Studio.

Não aceite minha palavra, confira estes vídeos de profissionais usando o Emacs .

Depois de chegar a um nível decente no Emacs, você pode efetivamente editar qualquer linguagem: Java Script, Java, Ruby, Python, HTML, C, C ++, etc.

Começar com o Emacs é uma dor de cabeça, a experiência imediata é pior do que ruim. A configuração padrão do Emacs não expõe o novato do Emacs aos recursos mais poderosos (expansão hippie, etags, yasnippets etc.) do Emacs. Sugiro começar com os arquivos de ponto do Emacs Starter Kit .

Outra razão pela qual Steve Yegge afirma que os melhores programadores do mundo usam o Emacs é o elisp. Elisp permite ao programador experiente o poder de expandir facilmente o Emacs. Escrever uma extensão no Eclipse ou Visual Studio é significativamente mais difícil do que escrever uma função rápida ou até mesmo um novo modo secundário no elisp.

Justin Tanner
fonte
a questão é por que começar a usá-lo? Se alguém está feliz, confortável e produtivo, por que perder tempo e esforço para aprender emacs? Eu preferiria aprender uma nova linguagem de programação ou pesquisar novas tecnologias do que aprender um editor antigo, embora poderoso. Existem apenas 24 horas em um dia, use o tempo com sabedoria.
Sarsnake 16/06/09
Outra coisa que gostaria de observar é que também depende da tecnologia que você está usando. O Emacs tem inteligência? Eu usei na faculdade em máquinas UNIX e tenho certeza que mudou desde então. Mas para o .NET Intellisence é uma obrigação. Não há como alguém lembrar de TODOS os nomes de funções em todas as classes em todos os namespaces. E tenho certeza de que não vou no MSDN toda vez que precisar procurar o nome de uma função. Se o Emacs oferece Intellisence, eu consideraria.
Sarsnake 16/06/09
1

Eu acredito que é um grande equívoco que o uso desses editores baseados em texto, como VI e Emacs, seja altamente considerado ou necessário para se tornar um "grande programador". Eu sempre achei que os IDE são mais poderosos do que costumavam ser, e realmente se resume a uma preferência e estilo.

Bryan
fonte
0

Eu usei emacs na faculdade. isso foi cerca de 16 anos atrás. Eu não olhei para trás. Embora eu ainda queira me sentir confortável com o emacs, a verdade é que sou bastante produtivo com meu MS IDE.

o texto que você postou é apenas um troll. Sim. Nenhuma outra razão para isso além de iniciar uma guerra religiosa.

Tim
fonte
0

Comecei com o emacs, mas mudei para o vi, que para mim é mais elegante por causa da simplicidade. Além disso, se você estiver preso no modo de usuário único, os comandos ed serão um subconjunto dos comandos vi. Não sei se o emacs pode lidar com isso.

Então, nesse aspecto, acho que o vi faz de você um programador melhor.

klyde
fonte
Emacs FAZ ter uma vi-mode Mx embora, eu suspeito que era uma espécie de piada ...
Brian Postow
Conhecer o básico do vi é essencial para executar administração de sistemas. Isso não é programação, no entanto.
Xiong Chiamiov 17/09/09