¿Emacs me hará un mejor programador? [cerrado]

130

Steve Yegge escribió un comentario en su blog :

Todos los mejores ingenieros del mundo usan Emacs. Los tipos que cambian el mundo. No es la gran chica en el cubo a tu lado. No Fred, el chico asombroso del pasillo. Estoy hablando de los mejores desarrolladores de software de nuestra profesión, los que cambiaron la faz de la industria. James Goslings, Donald Knuths, Paul Grahams, Jamie Zawinskis, Eric Bensons. Los verdaderos ingenieros usan Emacs. Tienes que ser muy inteligente para usarlo bien, y te hace increíblemente poderoso si puedes dominarlo. Mire por encima del hombro de Paul Nordstrom mientras trabaja en algún momento, si no me cree. Es una verdadera revelación para alguien que ha usado IDE similares a Visual Blub .NET durante toda su carrera.

Emacs es el editor de 100 años.

La última vez que usé un editor de texto para escribir código fue cuando todavía estaba escribiendo HTML en el Bloc de notas hace aproximadamente 1000 años. Desde entonces, he sido más o menos dependiente de IDE, habiendo usado Visual Studio, NetBeans, IntelliJ, Borland / Codegear Studio y Eclipse durante toda mi carrera.

Por si sirve de algo, yo he tratado de Emacs, y mi experiencia fue una frustración debido a su falta completa de fuera-de-the-box características detectables. (Aparentemente hay un comando de Emacs para descubrir otros comandos de Emacs, que no pude encontrar por cierto, es como vivir tu propia broma cruel al estilo Zen.) Traté de hacer que me gustara el programa durante un buen mes, pero eventualmente decidí que preferiría tener diseñadores de GUI de arrastrar y soltar, IntelliSense y depuración interactiva en su lugar.

Es difícil separar los hechos del fanboyismo, por lo que todavía no estoy dispuesto a tomar los comentarios de Yegge al pie de la letra.

¿Existe una diferencia apreciable en la habilidad, la productividad o el disfrute de la programación entre las personas que dependen de los IDE y las que no, o todo es fanboyismo?

Julieta
fuente
22
También vale la pena señalar que Paul Graham usa vi; Yegge ofrece esta corrección él mismo en una nota al pie del artículo vinculado.
Eli Courtwright
16
De todos los editores que he usado, Emacs es el único que le dice cómo ejecutar el tutorial cada vez que comienza (hasta que aprenda lo suficiente como para dejar de decirle cómo ejecutar el tutorial).
Michael Paulukonis
16
¿Qué significa EMACS? Escape Meta Alt Control Shift! ;-)
Peter K.
24
Terminología nit pick: Emacs es un "editor de programadores", no un mero "editor de texto". Los IDE GUI también tienen la capacidad de editar texto, pero tampoco son simples editores de texto. Comparar el Bloc de notas con Emacs es como comparar ... arrojar una piedra y golpear algo con esa pistola en la Estrella de la Muerte.
Greg Mattes
8
Obviamente, algunas personas no entienden la diferencia entre correlación y causalidad
Chubas

Respuestas:

119

Primero permítanme decir que soy un verdadero creyente en el culto a Emacs.

Dicho eso, el blogger está loco. Escribes lo que te parece útil. Encuentro que Emacs me ayuda, principalmente porque pasé mis años universitarios pagando por adelantado el costo inicial de aprender a modificarlo para adaptarlo a mis necesidades, y modificándome a sus necesidades.

Pero otras personas hacen las cosas de manera diferente, y como dicen "Eso está bien".

Brian Postow
fuente
73
Convenido. Me encanta Emacs, pero pensar que Emacs te hará un mejor programador es como pensar que usar los palos de golf de Tiger Woods te hará un mejor golfista, o usar la guitarra de Eddie Van Halen te hará un mejor músico.
Kristopher Johnson
31
No estoy de acuerdo con el comentario de Kristopher anterior. Usar las herramientas de un gran deportista / artista definitivamente no te hará tan bueno como ellos. Pero, ¡usar las herramientas de programación CORRECTAS para el trabajo CORRECTO definitivamente lo hará! Sin embargo, podría ser perdonado por equiparar la programación con el deporte y el arte. :)
Susheel Javadi
66
@Bart: Su punto es que hay múltiples "herramientas correctas". Los palos de golf de Tiger Wood son excelentes herramientas y son perfectos para el trabajo, pero también hay otros palos que pueden proporcionar los mismos resultados. La herramienta que utiliza un buen programador no los define, sino su creatividad y habilidades.
Seth Moore
9
Creo que todo el punto con la declaración de Steves es que los grandes programadores usan emacs, los buenos desarrolladores de software son más productivos usando un IDE. Los grandes programadores siempre programan, incluso cuando producen código que programan, automatizan tareas, les encantan make, ant, bash, perl y hudson. Saben que las tareas manuales en cualquier parte del ciclo de desarrollo de software son propensas a errores. Los grandes programadores también saben que si alguien más construye su código (por ejemplo, el IDE o cualquiera), siempre dependerá de las habilidades de ese otro cuando se trata de mantener el código (por ejemplo, el IDE o cualquiera)
Ernelli
44
Steve Yegge es el tipo que escribió un analizador de JavaScript completo en elisp, por lo que no hay duda de que está loco en lo que respecta a Emacs :)
Tikhon Jelvis
106

Él (Steve Yegge) ha elaborado esto, en pedazos, en otras publicaciones suyas. http://steve-yegge.blogspot.com/2008_04_01_archive.html es probablemente el más completo, pero la información está enterrada allí ya que está en una tangente al tema principal.

Supongo que para resumir: los programadores que son simplemente buenos o competentes recogerán un IDE y lo conocerán realmente bien, y tal vez lo hagan con bastante decencia, pero se limitarán a lo que el IDE les proporciona. En otras palabras, se adaptan al IDE. Los grandes programadores, por otro lado, adaptarán su entorno para adaptarse a sí mismos , de tal manera que escriban guiones o sus propias herramientas, o amplíen sus herramientas. Y hasta ese último punto, no solo Emacs es el entorno más extensible que existe, sino que también es el entorno más fácil de extender que existe, y es el entorno donde se obtiene el mayor beneficio de extenderlo: sus extensiones se integran en Emacs como si fueran características de stock, por lo que sus futuras extensiones pueden basarse en las anteriores (tipo de cosa de bucle de retroalimentación positiva).

Nietzche-jou
fuente
15
La diferencia es la energía que se necesita para extender el IDE. Con emacs, todos los archivos de configuración son archivos de programa elisp. Así que, esencialmente, la barrera de entrada es ridículamente baja (solo cambie su archivo .emacs)
shsmurfy
18
En la misma línea que Angus. Un buen IDE no debería tener que ser manipulado interminablemente para hacer el trabajo. Un buen IDE debe tener todas las características que uno necesita. Claro que es posible que desee configurar los accesos directos y el diseño, pero no debería necesitar escribir un montón de scripts para manejar todo.
Kibbee
55
Angus: tienes razón. Si tiene que perder el tiempo agregando cosas en lugar de hacer su trabajo, se ha perdido el punto: Emacs o no. Sol: hay más para extender que enviar la fuente a través de programas externos. De hecho, ese no es un mecanismo de extensión tan poderoso en absoluto.
Jonathan Arkell
15
La diferencia entre extender emacs y extender netbeans, visual studio o eclipse es la velocidad. Agregar extensiones a eclipse es como escribir una aplicación completa. En comparación, escribir una extensión para emacs puede ser una sola línea de código.
Justin Tanner
44
@supercheetah: se ve muy primitivo en comparación con el intellisense que se encuentra en Visual Studio, por ejemplo, ¡los iconos que se muestran junto a los miembros disponibles son útiles! Personalmente, sin un fuerte soporte de refactorización, tengo poco interés en Emacs.
si618
57

Los mejores programadores usan vi o emacs, porque los programadores más experimentados son los mejores, y hace 20 años, no había muchas opciones, excepto vi y emacs.

Después de haber comenzado con vi (ca. 1987) en una máquina con una terminal de texto muy lenta, me convertí a (GNU) Emacs después de unos años (en una máquina más rápida), y la usé casi exclusivamente durante casi 10 años.

Emacs fue el primer entorno de desarrollo verdaderamente integrado: todo el ciclo de edición / enlace / compilación se podía controlar en emacs, y usted podía rodar el suyo para cualquier compilador que utilizara.

Hoy en día, los IDE como eclipse están aún mejor integrados (para ser honesto: emacs apesta a los gráficos), pero Emacs sigue siendo uno de los mejores entornos para la edición de texto "puro".

mfx
fuente
10
+1 para la profecía autocumplida en el primer párrafo.
OregonGhost
12
"Los programadores más experimentados son los mejores", muy lejos de la verdad, al menos por implicación. No decir que los programadores inexpertos son mejores, pero solo porque ha estado haciendo lo mismo durante más de 20 años, NO significa que lo esté haciendo bien.
AviD
77
Hubo muchos editores diferentes hace 20 años. La mayoría de ellos simplemente no han sobrevivido, generalmente con buenas razones. ¿Por qué un tipo que usó vi o emacs en 1989 es mejor que un tipo que usó algún editor basado en MS-DOS en 1989, o lo que sea que estaba usando en el mainframe de Control Data?
David Thornley
¡Diablos, hace 10 años no había un buen IDE de Java!
Susheel Javadi
Por lo que recuerdo de hace 20 años, vi y emacs fueron los editores abrumadoramente dominantes, solo porque había muchos editores en ese entonces (como ahora) no significa que todos fueran igualmente ampliamente utilizados.
FinnNk
34

Mejorar su pensamiento claro y la resolución de problemas lo convertirá en un mejor programador. Ningún programa puede hacer eso.

Usar un martillo mejor no me ayudará a construir una casa más agradable a menos que sepa cómo y por qué. ;)

Jas Panesar
fuente
Una buena analogía para lo que también quería decir.
Rob
21
Pero un mal martillo arruinaría su productividad al tratar de construir la misma casa y probablemente terminará con una casa diferente.
user51568
¡Eso es justo! A un programador promedio no le iría mucho mejor con el martillo caro.
Jas Panesar
55
Un gran programador puede construir una gran casa usando una piedra para martillar. (Es lento, pero aún puede hacerlo.: D)
Egon
Sí, pero tener un editor que permita que el código fluya de forma orgánica (que creo que Emacs es mejor que la mayoría de los editores) puede mejorar su pensamiento claro y, por lo tanto, la resolución de problemas.
Skilldrick
21

Yegge necesita conocer a Bill Joy. No solo es uno de los grandes programadores del mundo, sino que también escribió grandes fragmentos de vi. En vi.

Breve confesión vergonzosa: después de 20 años de usar vi (y vim / gvim en los últimos años) para todo, en el último año más o menos comencé a usar Eclipse para la edición de Java (y Thunderbird para el correo electrónico), aunque en mi trabajo actual mi la máquina tiene tan poca memoria que generalmente uso vi, excepto cuando necesito el depurador.

Paul Tomblin
fuente
77
+1 para vi (en realidad, usa vim, pero la misma diferencia). Es el 98% de lo que emacs puede hacer por menos de la mitad del esfuerzo.
rmeador
25
Utilicé vim durante 5 años. Después de 20 minutos en Emacs, juré que nunca volvería. Vim siente al revés.
MattBelanger
55
Yegge mismo menciona esto: [La única excepción notable es VIM, que también es muy poderosa en todos los sentidos, aunque no tengo experiencia con eso. Si ya ha desarrollado una preferencia por vi sobre emacs, entonces puede experimentar una mayor felicidad al buscar experiencia con VIM. Psh] Fuente: steve-yegge.blogspot.com/2006/06/shiny-and-new-emacs-22.html
user674062
1
Uh ... Bill Joy ya no usa vi.
Plumenator
13

¿Existe una diferencia apreciable en la habilidad, la productividad o el disfrute de la programación entre las personas que dependen de los IDE y las que no, o todo es fanboyismo?

Simplemente reduzcamos esto a Visual Studio vs. Emacs --- la pregunta es demasiado amplia de lo contrario, y sospecho que la mayoría de las personas (al menos aquí en StackOverflow) están familiarizadas con esos dos. [Soy, y uso y prefiero emacs]

A continuación, analicemos los tres componentes de la pregunta.

El disfrute de la programación se reduce a gustar principalmente la programación en sí misma y, en segundo lugar, a que no surjan factores molestos cuando lo haces. Usar herramientas con las que luches va a restarle placer. Entonces, supongo que el disfrute se maximiza al usar herramientas que le gustan y con las que está familiarizado.

Por supuesto, una vez que se familiarice con una nueva herramienta, es posible que le guste más esa herramienta y, por lo tanto, le gustará programar más si lo hace con su nueva herramienta favorita. No me queda claro que a la gente en general le gustará VS sobre emacs (o viceversa) cuando los conozca bien a ambos.

A continuación, habilidad de programación. Si hay alguna conexión entre la habilidad y la elección de VS / emacs, creo que es la habilidad que causa la elección, no la elección que causa la habilidad. Ninguno de {VS, emacs}, en mi experiencia, parece hacerme aprender nada sobre la escritura mejor código.

Una buena herramienta puede hacerme capaz de escribir el mismo código (y, por lo tanto, la misma calidad de código) en menores cantidades de tiempo; si asumimos eso productivity = quality of code `times` code per time, entonces es lógico que cualquier editor que le permita escribir un buen código en menos tiempo sea un aumento de la productividad.

Puede que no esté demasiado familiarizado con VS, pero aquí creo que emacs tiene algunas fortalezas que no he encontrado en VS. Puede sonar ridículo, pero algo tan simple como el movimiento del cursor conCtrl-[fbnp] mover el es una verdadera bendición, lo que significa que no tiene que mover las manos hacia las teclas de flecha. Otra cosa: puede hacer una búsqueda o reemplazo que incluya nuevas líneas, que uso con la frecuencia suficiente para odiarlo.

Otra cosa que me gusta es la capacidad de incrustar un shell en mi editor. En mi experiencia, es mucho más valioso en plataformas que no son de Windows (y mi primera experiencia de "programación", IIRC, fue escribir archivos .bat de DOS, así que no soy solo un fanático en llamas), pero en esas plataformas es una gran victoria . Hace que emacs se "integre" con "todo" (búsqueda de archivos con buscar / localizar, búsqueda de texto con grep, control de versiones con svn / git / hg / ..., lo que sea).

Veredicto final: ¿deberías aprender emacs o no? ¿Y es todo fanboyismo? Si tuviera tiempo, diría que siempre vale la pena aprender nuevas formas de hacer lo mismo, porque la nueva forma podría funcionar mejor para usted. Y te animo a que no lo rechaces por lo que parece ser cuando eres nuevo en esto. En ese sentido, es como cambiar a la distribución del teclado Dvorak: al principio eres más lento, pero una vez que alcanzas la velocidad es probable que seas al menos tan rápido como en qwerty y más cómodo. También recomiendo el mismo enfoque para aprender nuevos lenguajes (de programación): porque no conoces el vocabulario (biblioteca estándar), decir que las cosas son difíciles, pero la recompensa sigue ahí en el horizonte esperándote.

Jonas Kölker
fuente
1
"Limitemos esto a Visual Studio vs. Emacs --- la pregunta es demasiado amplia de lo contrario, y sospecho que la mayoría de las personas (al menos aquí en StackOverflow) están familiarizadas con esos dos". -- ¿De Verdad? Pensé que había muchos más fanáticos rabiosos * nix como yo que no se verían obligados a usar VisualStudio, mucho menos a usarlo voluntariamente. Hrm.
Xiong Chiamiov
"el movimiento del cursor con Ctrl- [fbnp] es una verdadera bendición". Aunque amo Emacs, después de haber regresado a él después de un largo paréntesis, encuentro que el movimiento del cursor de esta manera es el aspecto menos útil y cómodo de usar Emacs nuevamente. Por el contrario, puedo alcanzar y encontrar las teclas de cursor dedicadas sin mirar ni pensar. ¿Quizás sea útil ser pianista? :) Pero quién sabe, con el tiempo, tal vez la letra C-scrunch se sienta más natural.
Greg Hendershott
2
PD Estoy totalmente de acuerdo con los shells y las plataformas. Si desea moverse entre Windows, OS X y Linux, entonces quiere Cygwin en el primero y Emacs en los tres. Lanza tu .emacs.d en GitHub y eres dorado.
Greg Hendershott
también, puede hacer búsquedas que incluyan nuevas líneas en Visual Studio usando expresiones regulares
Axarydax
10

Con el texto citado que comienza "Todos los mejores ingenieros del mundo usan Emacs", tampoco lo tomaría al pie de la letra. ¿Conoce a todos los mejores ingenieros del mundo? ¿Es la misma lista de los mejores ingenieros del mundo que tú o yo tenemos?

Una vez aprendido, un editor potente como EMACS o vi te hará más eficiente, o al menos más eficiente si te atrapan sin tu IDE favorito.

Es la parte "una vez aprendida" que es el asesino. Es mucho trabajo y práctica usar estas herramientas productivamente, y es muy difícil al principio.

Juan
fuente
1
Creo que una de las cualidades que realmente ayuda a alguien a ser un "gran" ingeniero es poder retrasar la gratificación y asumir un mayor costo de inicio fijo para mejorar la eficiencia.
Tikhon Jelvis el
9

Soy fanático de Emacs, personalmente, pero Emacs es solo una herramienta. No te convertirá en un mejor programador de la misma manera que un bolígrafo súper elegante te convertirá en un mejor escritor.

La aclaración de que los "grandes programadores" adaptan su entorno a sí mismos puede tener algún mérito, pero muchas herramientas pueden hacerlo (por ejemplo, vim y SlickEdit), por lo que no hay nada de particular en Emacs a ese respecto.

Creo que lo más probable es que los "grandes programadores" sean apasionados de la programación y las personas que lo hacen tienden a encontrar herramientas que ayuden a impulsar esa pasión. Emacs (y vim y SlickEdit, et al) es una herramienta de este tipo.

Joe Casadonte
fuente
Las plumas súper elegantes me hacen sentir todo Hemingway-ish.
Cheeso
2
Lo particular de Emacs con respecto a la "adaptación del entorno" es que es mucho más sencillo hacerlo en Emacs que en Vim o SlickEdit. (o cualquier otro editor que conozca)
vedang
8

No creo que haya una diferencia, es más una cuestión de preferencia.

Sin embargo, lo que he notado es que cuanto más tiempo haya codificado, o cuanto más bajo haya codificado, mayores serán las posibilidades de que haya utilizado emacs o vi.

Stephane Grenier
fuente
El "más largo que ha codificado" parece argumentar por haber comenzado a codificar antes de que hubiera buenos IDE.
Paul Tomblin el
3
¿Existe tal cosa como un buen IDE, hijo?
David Thornley el
8

Si bien los IDE han mejorado mucho en la última década, aún contienen la programación en una pequeña "burbuja" segura, lejos de algunos de los detalles más feos. Lo que suele suceder es que este aumento en la abstracción permite que más programadores hagan más, con menos conocimiento. Eso, por supuesto, no se aplica a todos los programadores, pero las herramientas más fáciles llevan la programación a un público más amplio.

Un mayor conocimiento de las herramientas de nivel inferior, a menudo se traduce en una mayor estabilidad en el código, ya que hay menos posibilidades de "ir contra la corriente" accidentalmente. Es injusto enumerar EMACS como el único indicador principal, ya que proviene de una amplia gama de lenguajes y herramientas, y realmente se trata más de la profundidad de la comprensión, no de la tecnología específica.

Hace mucho tiempo, aprendiste VI o EMACS en los cuadros de UNIX o te especializaste en PC (OK, también había VMS, CMS, AS400, etc., pero esas eran tecnologías más antiguas). Ambas transmisiones atrajeron a personas muy entusiastas, pero los chicos de UNIX tendían a querer una solución sofisticada, mientras que los chicos de PC solo querían que se hiciera rápidamente. Las culturas eran muy diferentes.

Paul W Homer
fuente
7

Los IDE de IMHO tienden a optimizarse en torno a una plataforma o lenguaje o sistema operativo específico: Eclipse JDT es excelente para Java, Visual Studio es C ++ /. NET-céntrico, etc. Ayudan mucho a la productividad (nuevamente en mi humilde opinión) si solo estás trabajando esa plataforma, pero si cambia de plataforma, básicamente tiene que aprender un nuevo IDE (o al menos un nuevo conjunto de complementos, vistas, perspectivas y no sé qué más para Eclipse).

La ventaja de conocer emacs, o Textmate, o vim (mi preferencia personal), o cualquier editor genérico , es que las habilidades que adquieres en ese editor se aplican independientemente de la plataforma para la que estés escribiendo. Están optimizados para editar texto , y una vez que los domine, puede editar texto de manera muy eficiente en cualquier idioma.

También está la afirmación de Yegge de que los grandes programadores adaptan sus herramientas a su estilo de trabajo en lugar de viceversa. Creo que esto es una victoria para los editores genéricos, porque personalizas un editor, en lugar de tener que averiguar cómo adaptar cuatro IDEs diferentes para que se comporten de la manera que quieras.

Sam Stokes
fuente
El problema surge cuando tienes que escribir en una plataforma diferente a la que has estado: por ejemplo, te mueves de * nix a Windows, y tus scripts se rompen porque estaban asumiendo un shell bourne con rutas basadas en '/' en un Estructura tipo FHS con impresión basada en PostScript ...
SamB
He estado trabajando con emacs durante bastante tiempo, ahora, y solo el movimiento del cursor es suficiente para que me moleste escribir en cualquier otra cosa, incluso si es un correo electrónico en KMail.
Arne Babenhauserheide
@ArneBabenhauserheide esta es una razón por la que amo Mac OS X, casi todos los campos de texto son compatibles C-[npfbaed]. (Pero lamentablemente no M-)
porglezomp
6

Yo diría que los mejores programadores tienden a ser los que se toman el tiempo para personalizar su entorno, lo que hace que sea más rápido / fácil realizar las tareas que es probable que realicen. Emacs es uno de los editores más potentes a la hora de personalizar su entorno. Tiene una curva de aprendizaje empinada pero, una vez que hayas superado eso, prácticamente no hay límite para lo que puedes hacer por ti.

Alguien dijo una vez que los mejores programadores son los flojos; los que, una vez que necesitan hacer algo más de una vez, encuentran una manera de automatizarlo para que se requiera menos esfuerzo. Emacs te permite ser muy, muy vago;)

RHSeeger
fuente
4

He usado IDEs desde el principio (posiblemente; habiendo comenzado con QBASIC), y durante muchos, muchos años. Ahora he cambiado casi por completo a VIM (en diversos sabores) para todo mi trabajo de desarrollo y no me arrepiento. Mi productividad definitivamente ha aumentado.

Por supuesto, nada reemplazará al diseñador de formularios Windows Forms de Visual Studio. Pero en comparación con VIM (y Emacs, estoy seguro), el editor de texto dentro de Visual Studio es realmente pésimo. Una vez que aproveche la potencia bruta de la consola y las herramientas de desarrollo de GNU (es decir make, GCC binutilsygdb ) notará que estas herramientas pueden parecer primitivas pero son todo lo contrario, y en realidad ofrecen todas las herramientas que proporciona un IDE (bueno, excepto para el diseñador de formularios).

Es solo que tienes una subida muy pronunciada por delante cuando comienzas a usar estas herramientas y el incentivo puede ser pequeño. Tuve la suerte (?) De ser forzado a usar estas herramientas, así que no tuve otra opción de la que pudiera escapar.

Konrad Rudolph
fuente
3

Personalmente, siento que deberías usar lo que sea que te haga más productivo. Si no tiene tiempo para invertir en un proyecto para sentarse y aprender Emacs, entonces probablemente no sea el mejor uso de su tiempo en ese momento.

Sin embargo, creo que es una buena idea conocer otros IDE cuando tenga tiempo suficiente para hacerlo. Uso Visual Studio en mi trabajo diario, pero en casa uso Eclipse para pequeños proyectos y he usado Emacs también. En el punto particular en el que consideré usar Emacs, mi esfuerzo fue mejor al realizar el trabajo real que a ralentizarme luchando con Emacs.

Creo que hasta cierto punto es absurdo pensar que todos los mejores programadores usan Emacs. Hay muchos programadores increíbles que no son tan populares (o tan vocales, tal vez) que no usan Emacs.

jamesmillerio
fuente
3

Comencé a usar Emacs hace aproximadamente un año y medio porque era la confluencia de varios deseos: quería trabajar con expresiones regulares (en un editor que los respaldara), quería aprender lisp, quería un mejor editor.

Editar mi código con expresiones regulares me enseñó mucho sobre cómo encontrar patrones en el código. Las pulsaciones de teclas tardaron un tiempo en acostumbrarse, pero vuelo mucho más rápido sin el mouse.

Emacs me dio la capacidad de seguir trabajando con mis notas y codificación en la misma aplicación: un cambio de contexto mínimo significa un cambio de cerebro mínimo, y puedo mantenerme enfocado en la tarea en cuestión.

Michael Paulukonis
fuente
3

No. Un buen código te hace un mejor programador.

Dicho esto, una buena manipulación de texto es clave para la eficiencia. Tanto vim como emacs cambiarán la forma en que trabaja con el texto; ambos han demostrado ser efectivos pero están casi en desacuerdo en términos de estilo. Además, este debate es bastante antiguo (desde los años 80 y 90, donde el texto -> el compilador era clave), por lo que hay muchos otros editores de texto y / o IDE que pueden ayudarlo a ser el mejor programador posible.

Desbordado
fuente
3

No. Si crees que usar emacs te convierte en un mejor programador, estás confundiendo causa y efecto.

Sin embargo, lo uso a diario. Me parece que soy más productivo con emacs + maven que con Eclipse para el desarrollo de Java (aunque todavía enciendo Eclipse de vez en cuando para hacer la refactorización ocasional o la sesión de depuración).

Estas son mis razones:

  • La experiencia de edición de texto real en emacs supera todo lo demás. Es sorprendente lo rápido que puedes lograr tanto usando solo tu teclado. Eclipse está más orientado al mouse, y cuando escribes te encuentras con muchos inconvenientes irritantes.
  • Poder personalizar emacs con elisp es increíblemente poderoso. Llegaré al extremo de decir que si no te estás tomando el tiempo para aprender elisp rudimentario y personalizar tu entorno, simplemente estás perdiendo el tiempo.
  • Hay extensiones para prácticamente cualquier cosa que quieras hacer en un editor de texto.
fred-o
fuente
1
+1 para correlación! =
Causalidad
¿Qué modo Java estás usando?
avendael
1
Estoy usando el modo Java estándar que viene con Emacs23, con algunas personalizaciones y trucos para ejecutar compilaciones de Maven. También comencé a usar emacs-eclim, que actúa como un puente entre emacs y eclipse. Es agradable y utilizable, pero bastante duro en este momento.
fred-o
3

Para mí, la razón principal por la que elegiría Emacs en lugar de un IDE es porque me permite hacer todo desde mi teclado. Esto es bueno porque ahorra algo de tiempo para cuando normalmente usaría un mouse. Además, dado que me encuentro muy móvil, tengo la tendencia de interrumpir mi ritmo de programación debido al uso de mi teclado táctil lento. Además, su personalización lo hace brillar sobre algunos IDEs para mí. Sin embargo, si te encuentras programando lo suficientemente rápido con un IDE, entonces diría que la curva de aprendizaje de Emacs no merece la pena.

Anton
fuente
2

¿Existe una diferencia apreciable en la habilidad, la productividad o el disfrute de la programación entre las personas que dependen de los IDE y las que no, o todo es fanboyismo?

No creo que realmente puedas obtener una respuesta a eso. Hay muchas maneras diferentes de medir la habilidad, la productividad y el disfrute de la programación, y todas ellas son probablemente muy subjetivas y / o no se pueden dividir en UNA cosa que lo cause o no.

Todavía es una pregunta interesante aunque.

Mi creencia personal es: depende del programador :)

G-Man

GeoffreyF67
fuente
Fanboys amigo. IDE no es editor. IDE no necesita ser el mejor editor.
Perpetualcoder
2

No creo que lo haga un mejor programador, pero cuando tenga ESO nivel, lo más probable es que use emacs (o vi)

: - /

Lo bueno de esos dos (nunca he usado emacs antes, pero todavía uso vi para la tarea más mundana) es el hecho de que no interrumpen tu línea de pensamiento , no tienes que sacar tus manos de el teclado para agarrar el mouse y buscar en el menú de archivo la opción correcta. Solo sigue escribiendo. Dentro de tu mente dices algo como: "Reemplaza todas las apariciones de esta palabra por eso", presiona enter y continúa con tu trabajo.

Además, no creo que usen emacs es su única herramienta.

¿Te haría mejor programador? Probablemente no. Pero cuando tenga ese nivel de experiencia, probablemente le gustará qué tan rápido puede codificar usando esas herramientas.

OscarRyz
fuente
La caza en el menú es para personas que no conocen el IDE. No sé cuándo fue la última vez que tuve que "buscar" una opción de menú.
tster
Entonces, ¿crees que usar "Archivo-> Guardar" es mejor que Ctrl-S? No lo creo. Tener que agarrar el mouse, hacer clic en el archivo de menú y luego mover el mouse hacia abajo para guardar la entrada me parece mucho cuando puedes hacerlo sin tomar las manos del teclado.
OscarRyz
Obviamente estoy de acuerdo. Todos los IDEs que he usado tienen teclas de acceso rápido y combinaciones extensas y personalizables al igual que emacs.
tster
2

No.

La disciplina, el pensamiento crítico y el deseo de superación personal te harán un mejor programador. Su conjunto de herramientas, si bien es un factor importante en su productividad, no creará genio.

Si no te gustan emacs o vi, no los uses. Al tomar la decisión consciente de no hacerlo, está configurando su entorno de desarrollo para que se ajuste a sus propias necesidades y prácticas laborales. En cualquier caso, tienes derecho a usar lo que quieras, e ignorar a cualquiera que sea tan tonto como para regañarte por la herramienta que usas para escribir bits en el disco, son los bits lo que importa.

Nota: "Conjunto de herramientas" aquí significa, literalmente, la "marca" de herramientas: editores específicos, compiladores, etc. Los conjuntos de herramientas conceptuales, por ejemplo, el uso del control de versiones, las pruebas unitarias, todo en general, son parte de proceso de mejora.

Robar
fuente
2

Una de las grandes características de emacs es que puede manejar prácticamente cualquier tipo de archivo que le arrojes, de cualquier tamaño. Es cierto que si está abriendo un enorme archivo encriptado, no será necesariamente útil, pero se abrirá. La mayoría de los editores (e IDEs) le causarán una gran angustia si les entrega un archivo que es demasiado grande y / o no es uno de sus formatos esperados.

Intente abrir un archivo de 1 Gig en el Bloc de notas para ver un ejemplo.

Comencé a usar Emacs en algún lugar alrededor de 1980 y siempre ha sido una herramienta en mi caja de herramientas. No es la única herramienta, pero siempre es algo a lo que puedo recurrir y saber que podré hacer un trabajo útil.

Comentario inflamatorio obligatorio : por otro lado, no tengo nada bueno que decir sobre vi. Siempre he sentido que vi felizmente me mataría y vendería mis órganos solo por despecho ...

En la vida real, uso Netbeans para casi todas las formas de desarrollo y uso emacs de vez en cuando para hacer una edición rápida. No hay casi nada que sea tan conveniente como emacs (para mí) cuando se trata de hacer algo loco en este momento.

¿Alguien más tiene que editar cadenas estáticas en ejecutables binarios compilados? ¿Existe una herramienta mejor para ese tipo de cosas que emacs? Ciertamente funciona para mi.

Bob Cross
fuente
1
Mientras que Visual Studio perdería por completo esa oportunidad, y en su lugar se contentaría con rebuscar en su billetera para ver si había dinero extra.
Rob
Lo siento, no lo sabría. Uso Netbeans casi todo el tiempo y emacs cuando lo necesito.
Bob Cross
2

Sé que no preguntaste esto, pero una cosa que aprendí emacs (inesperadamente) mejoró para mí fue manipular una línea de comando. Antes de aprender las combinaciones de teclas de emacs, solía mover el cursor y navegar por el historial usando las teclas del cursor porque no sabía nada mejor. Fue algo así como un momento de bombilla cuando me di cuenta de que podía usar backward-word, move-beginning-of-liney backward-kill-word(lo que siempre he obligado C-w, como sugiere Stevey ) en bash(a M-tmenudo es útil también, y lo más impresionante para aquellos que nunca lo han visto antes).

Trabajo bastante en Solaris, donde el shell raíz es "el shell posix" y no tiene enlaces emacs por defecto. Me parece que mis dedos ahora escriben exec bashpor su propia cuenta, cada vez que inicio sesión, me siento mucho más rápido con los comandos de edición ahora familiares bajo mis dedos.

Sin embargo, debo admitir que todavía encuentro los libros de Knuth difíciles (aunque vale la pena), así que no creo que haya mejorado mágicamente mi programación.

Tom Dunham
fuente
Hombre, realmente necesito aprender más de esos trucos ... De todos modos, ¿no puedes cambiar tu shell de inicio de sesión, o en realidad quisiste decir "el shell para el usuario root" cuando dijiste "shell root"? Si es así, ¿por qué estás iniciando sesión como root?
SamB
2

Emacs me hizo más eficiente en la manipulación de texto y la navegación del sistema de archivos. Y dado que ambas cosas están involucradas cuando programo, me ha convertido en un programador más eficiente (por lo tanto, mejor).

Steve
fuente
2

Creo que Emacs puede hacerte un mejor programador, aunque indirectamente. Creo que Emacs me hizo escribir en un lenguaje funcional ( Elisp ) que me tiene interesado en otros lenguajes funcionales ( Clojure ) que, según me han dicho, me harán un mejor programador. Dicho esto, supongo que el tiempo lo dirá.

Peter Mortensen
fuente
Es un estilo muy antiguo de Lisp (con solo un alcance dinámico y no léxico), pero ciertamente tiene mucho que enseñar. Eso, y puede ser un editor de texto bastante bueno en esos días en que realmente funciona bien.
SamB
1

Ser capaz de usar algún editor personalizable le permite hacer cosas ingeniosas, pero emacs en particular no es necesariamente el mejor posible. Yo mismo soy un usuario de SlickEdit, hago las mismas cosas extrañas semiautomatizadas por las que emacs es famoso. He visto a personas hacer cosas similares con vi y varios editores basados ​​en Windows.

Entonces, sí, los conjuntos de enchufes son buenos, pero argumentar que Craftsman hace que el conjunto de enchufes verdadero sea un poco tonto.

mjfgates
fuente
Como comentario aparte, podría inclinarme a probar SlickEdit si no fuera por el marketing de braindead: "10 razones para no usar SlickEdit - # 1: te gusta ser un mal programador. # 2: quieres gastar más para hacer menos. # 3: eres un idiota endogámico. etc, etc, etc. "
Julieta
Me metí en Slick antes de que tuviera marketing; es solo que era el único editor real que se ejecutaba bajo OS / 2 3.0 en ese momento. Que es probablemente sobre la misma razón que todos esos otros chicos el uso emacs ...
mjfgates
1

El dominio de las asociaciones de teclas de Emacs y sus funciones integradas le permitirán manipular el texto más rápido que los IDE como Eclipse o Visual Studio.

No confíes en mi palabra, mira estos videos de profesionales que usan Emacs .

Una vez que llegue a un nivel decente en Emacs, puede editar efectivamente cualquier lenguaje: Java Script, Java, Ruby, Python, HTML, C, C ++, etc.

Comenzar a usar Emacs es un fastidio, la experiencia original es peor que mala. La configuración predeterminada de Emacs no expone al novato de Emacs a las funciones más potentes (hippie-expand, etags, yasnippets, etc.) de Emacs. Sugiero comenzar con los archivos de puntos de Emacs Starter Kit .

Otra razón por la que Steve Yegge afirma que los mejores programadores del mundo usan Emacs, es elisp. Elisp le permite al programador experimentado el poder de expandir fácilmente Emacs. Escribir una extensión en Eclipse o Visual Studio es significativamente más difícil que escribir una función rápida o incluso un nuevo modo menor en elisp.

Justin Tanner
fuente
la pregunta es ¿por qué empezar a usarlo? Si uno es feliz, cómodo y productivo, ¿por qué perder tiempo y esfuerzo en aprender emacs? Prefiero aprender un nuevo lenguaje de programación o investigar nuevas tecnologías que aprender un antiguo editor, aunque sea poderoso. Solo hay 24 horas en un día, use el tiempo sabiamente.
sarsnake
Otra cosa que me gustaría señalar es que también depende de la tecnología que esté utilizando. ¿Emacs tiene inteligencia? Lo usé en la universidad en máquinas UNIX y estoy seguro de que ha cambiado desde entonces. Pero para .NET Intellisence es IMPRESCINDIBLE. NO hay forma de que alguien pueda recordar TODOS los nombres de funciones en todas las clases en todos los espacios de nombres. Y estoy seguro de que no voy a MSDN cada vez que necesito buscar el nombre de una función. Si Emacs ofrece Intellisence, lo consideraría.
sarsnake
1

Creo que es una gran idea errónea que el uso de estos editores basados ​​en texto como VI y Emacs es muy apreciado o necesario para convertirse en un "gran programador". Siempre sentí que los IDE son más poderosos de lo que solían ser, y realmente se trata de una preferencia y un estilo.

Bryan
fuente
0

Usé emacs en la universidad. eso fue hace unos 16 años. No he mirado hacia atrás. Si bien desearía poder estar cómodo con emacs, la verdad es que soy bastante productivo con mi MS IDE.

el texto que publicaste es solo un troll. Sí. No hay otra razón para ello que comenzar una guerra religiosa.

Tim
fuente
0

Comencé con emacs pero cambié a vi, que para mí es más elegante debido a su simplicidad. Además, si alguna vez está atascado en modo de usuario único, los comandos ed son un subconjunto de comandos vi. No sé si emacs puede manejar eso.

En ese sentido, creo que vi te hace un mejor programador.

revs klyde
fuente
Emacs DOES tiene un Mx vi-mode aunque, sospecho que eso era una especie de broma ...
Brian Postow
Conocer los conceptos básicos de vi es esencial para hacer sysadminning. Sin embargo, eso no es programación.
Xiong Chiamiov