eclipse vim emacs

¿Cuáles son las eficiencias que ofrece Emacs o Vim frente a Eclipse?



(15)

Al igual que algunas de las publicaciones anteriores, comencé con un IDE (Eclipse). A partir de ahí me mudé a Emacs, y luego volví a un editor de texto enriquecido (TextMate).

Para mí, la eficiencia era la capacidad de tener un editor en el nivel de interfaz. Permitiéndome integrar otro servicio que he creado (u otros) en mi entorno pseudo-IDE.

Empecé a codificar hace unos 5 años. Me presentaron a través de Java y Eclipse, que tienen un gran estigma en la comunidad de programación. Varias personas de la empresa en la que actualmente soy interno prefieren emacs o vim. No puedo ver cómo un editor de texto básico es más rápido o más fácil que un IDE en general, aunque aprecio algunas cosas como la construcción tienden a ser más rápido desde la línea de comandos.

¿Es este el caso del club de los "viejos muchachos" o puede ser más eficiente programar un proyecto de esta manera?

¿Puedes proporcionar algunos casos de uso para demostrar? Si defendiera Eclipse, diría que la refactorización y la autocompletación fueron herramientas bastante útiles.

Gav


Depende de los idiomas.

Para Java o .NET use un IDE (Eclipse, Netbeans, Visual Studio ...).

Para casi todos los otros lenguajes (C, C ++, ruby, python, haskell, lisp ...) vi y emacs son mejores en mi opinión.


Diría que los editores de vim / emacs reales son muy superiores al editor de texto de Eclipse en términos de los accesos directos que ofrecen. Sin embargo, estoy completamente de acuerdo con usted acerca de la refactorización.

La mayoría de la gente tiene que escribir scripts para hacer el tipo de refactorización que Eclipse es capaz de hacer. Creo que parte de ello son los derechos de fanfarronear o las personas simplemente lo hacen de la misma manera que siempre lo hacen.


El único lugar donde prefiero un IDE es para la depuración. Configuré mi entorno vim para la depuración, pero fue tan doloroso de usar, tan torpe, que ahora solo cambio a mi IDE (Netbeans) cuando necesito depurar. vim es ideal para la edición de texto, el IDE es ideal para cosas más complejas (como la depuración y algunas tareas relacionadas con la gestión de proyectos).


El argumento "Eclipse para Java" es un argumento diferente de "Eclipse para [algo que no es java]". Eclipse hace rock para Java.

Quiero decir, vi es como un destornillador, o tal vez una navaja suiza, y Eclipse es como un gran combo CNC y un esparcidor de asfalto. No los comparas exactamente, solo utilizas ambos.

Además, ¿estás trabajando dentro de algo gigante, de lo que sabes poco, pero que Eclipse entiende? Un ejemplo sería trabajar en Eclipse. Aquí, Eclipse tiene una visibilidad perfecta, compatibilidad total con el idioma y necesita las instrucciones y los enlaces de documentación.

Pero si está escribiendo en un programa de Ruby de 100 líneas para convertir una base de datos SQL, Eclipse no agrega mucho valor, especialmente teniendo en cuenta su equipaje.

También es fundamental configurar correctamente la vi, o no asimilará la apelación. Se deben establecer Autoindent, showmatch, manejo de pestañas y varias otras opciones. Debería tener una manera fácil de generar un archivo de etiquetas. Google puede encontrar generadores de etiquetas, o simplemente escribir una desde cero, con algunas líneas de shellcode y sed (1).

No considero la refactorización como un criterio. Eso no es algo que hagas una vez por hora o incluso una vez al día. Claro, dispara el gran IDE cuando necesites refactorizar. Ah, y no esperes una refacturación automatizada de nada excepto Java.

Finalmente, vi puede hacer muchas cosas que el IDE no puede comenzar a hacer. La sustitución global de expresiones regulares agrupadas es una especie de motor de refactorización generalizada. Para apreciar el vi gestalt, necesitas aprender el modo de línea (":"). En resumen, es como tener sed (1) dentro de tu editor.


Emacs puede ser un IDE poderoso, pero después de pasar de Emacs a Eclipse, tengo que decir que nunca volvería. Eclipse solo ofrece tantas funciones que no puedes obtener dentro de Emacs.

Mylyn y las vistas de alcance de los datos y archivos que estoy usando, la interfaz de usuario de depuración, la interfaz de usuario de CVS, están integradas y son fáciles de obtener y usar. Voy a usar el mouse un poco para obtenerlos.


Empecé en IDEs como Eclipse, pero cambié a Vim hace unos 2 años.

Razones por las que puede querer usar un editor de modo de texto:

  • Se puede usar como un IDE para casi cualquier idioma (lo aprendes una vez y lo utilizas para todo)
  • Puede hacer todas esas cosas sofisticadas como autocompletar, refactorizar y muchas operaciones más complejas, que puede ampliar agregando macros o complementos
  • Funciona prácticamente en todas partes (y se puede usar a través de un shell SSH)
  • No necesitas un GB de ram para ejecutarlo

Si realmente perseveras, verás que trabajar en un editor como este eventualmente será más rápido, y de hecho se arraiga como una especie de "memoria muscular". Esto significa que puede codificar sin disminuir la velocidad para pensar en el proceso.


En cualquier momento iría por emacs en lugar de eclipse. También tengo que decir que los emacs de hueso desnudo no son tan buenos, pero después de algunos ajustes, nunca querrás dejarlos ir. En particular, les diré cuán útiles fueron las emacs al escribir mi tesis de maestría, lo que debería aclarar por qué Eclipse es inferior, simplemente porque es menos versátil.

Mi tesis de maestría la escribí en los siguientes lenguajes de programación: C ++, Python y R. Complementaria, tuve que escribir la tesis, para lo cual utilicé LaTeX. Además, tuve que escribir un montón de scripts de shell y scripts de cmake. ¿Adivina qué? Emacs tiene un gran soporte para todo. Especialmente, fue un placer trabajar con AuCTeX para producir documentos LaTeX. Entonces, Emacs proporciona el excelente modo ESS para trabajar con R. Asimismo, proporciona instalaciones para python. Una vez que tuve mis scripts de cmake para construir el código de C ++, solo tuve que llamar a compilación desde dentro de emacs y ya había terminado. Eclipse no puede hacer todo esto por completo, por lo tanto, tendrá que aprender a usar muchos programas diferentes. ¿Tomar nota? ¡Hay modo orgánico para eso, y es genial!

Y luego, mi programa necesitaba una computadora muy poderosa (no como cualquier computadora portátil). Entonces, ¡podría hacer todo remotamente desde dentro de emacs! Utilizando vagabundo, me encontré realizando evaluaciones interactivas remotas del código R, compilación remota, ejecución y depuración del código C ++, y todo dentro de la misma ventana local de emacs que había estado usando. Por el contrario, mis amigos que usaban una herramienta separada para todo eran mucho más lentos en el desarrollo de software que debía funcionar en otra computadora.

Así tengo otras historias, pero creo que esto te dará una buena idea sobre las cosas que puedes hacer con Emacs. En general, creo que elegir usar emacs (a pesar de la curva de aprendizaje) ha sido la decisión más productiva que he tomado.

Espero eso ayude.


He usado vi durante años para editar código en una variedad de idiomas, y realmente me encanta. Pero encontré que los IDEs como Eclipse son aún más agradables para el desarrollo de Java, y ahora tiendo a trabajar en Eclipse casi por completo. Dejo de usar vi de vez en cuando para algunas actividades especializadas, como la inserción masiva de avisos de derechos de autor, principalmente los que tratan ciertos tipos de ediciones de memoria que no están bien automatizadas en Eclipse. También tengo mi tipo de archivo .java de Windows mapeado a vi para cuando solo quiero ver un archivo fuente sin esperar a que se abra Eclipse.

Algunas de las características atractivas de Eclipse son:

  • nombre del método completado
  • resaltado de error
  • pop-up javadoc comentarios
  • refactorización

En general, considero que es mucho más eficiente que vi en general, por lo que debes probarlo y ver si también es cierto para ti.


Hemos tenido este argumento en funcionamiento recientemente. Mi opinión es que una característica única de la que no podría prescindir es la autocompleta de Emacs. El autocompletado de Eclipse se basa en el análisis sintáctico: el código se analiza y, a medida que escribe el código, se le ofrece la opción de completarlo. La autocompleta de Emacs se basa en un simple análisis textual. Eso significa que funciona en texto plano, en comentarios, en documentación, en todas partes. Sigo diciendo que la autocompleta de Emacs es lo que IntelliSense quiere ser cuando crezca.

Actualizar:

Eclipse ofrece Alt- / que se supone que es similar a Emacs. Sin embargo, no estoy seguro de qué tan bien funcione.


La eficacia proporcionada por vim / emacs se debe principalmente a su uso intensivo del teclado. En estos programas, puede hacer casi cualquier cosa directamente desde el teclado, en lugar de tener que detenerse y usar el mouse.


Lo primero es lo primero. VIM es más productivo para la programación que Eclipse. Su productividad personal en VIM puede ser abismal, pero el límite potencial de VIM es mucho mayor. Esto es un hecho.

VIM es un arte marcial. No se siente natural cuando lo usas por primera vez. Y ni siquiera puedes hacer que funcione. Se requieren años de práctica para volverse gradualmente productivo. Te enfocas en dominar un pequeño detalle al principio. Lentamente, todos estos bits que dominas se suman hasta que el texto fluya sin esfuerzo desde la punta de tus dedos hacia la pantalla. Las ediciones complicadas que harían que su compañero de trabajo suspiraran saltarán de sus manos antes de que pueda terminar su exhalación. Hay pocas personas que pueden usar VIM. Menos personas que puedan usarlo productivamente. Y es posible que nunca conozcas a un maestro en tu vida. Pero se rumorea que existen.

VIM está diseñado para mantener sus manos en la línea de inicio. Mover su mano del teclado al mouse es desmoralizante. Es un movimiento motor grueso. Mover su brazo tiene un efecto phsycological que lastima su motivación. Usando VIM, alguien podría atornillar sus muñecas en el teclado y todavía podría abrir fácilmente archivos, dividir ventanas, abrir pestañas, construir el proyecto, buscar / reemplazar, cambiar fuentes, cambiar colores, etc. Y todo a la velocidad del rayo.

VIM es modal. Eso significa que no tiene que hacer combinaciones complejas de teclas donde mantenga presionado el control + shift + Key. Esto lastima tus manos en el largo plazo. En cambio, ejecutas comandos. No hay necesidad de combinaciones de teclas debido a la naturaleza modal.

Almacenamos datos en nuestra memoria como lo hacen las computadoras. Nuestra memoria solo puede contener algunos valores a la vez. Vea cuántos números enteros distintos puede guardar en la cabeza antes de que comiencen a desaparecer. Superamos esta limitación humana escribiendo cosas. Si los datos caen de nuestra memoria, podemos ver fácilmente lo que escribimos para recuperarlo. Si pasas tu tiempo haciendo motricidad gruesa, estás perdiendo tiempo físico que podrías haber gastado en procesar datos en tu cerebro. Quieres que tu mente fluya a la pantalla sin ningún esfuerzo. Puede que no parezca mucho, pero la capacidad de VIM de transferir sin esfuerzo lo que está en tu mente a la pantalla es un GRAN aumento de la productividad. Es difícil poner en palabras lo que trato de decir.

VIM admite la finalización del código. Tanto textual como basado en búsqueda. Puede extraer texto de varios archivos. Cualquier cosa que desee se puede tener en VIM. O hazlo tú mismo o usa algo que alguien más cocinó.

VIM admite goign a definiciones con ctags. También puede encontrar todas las referencias de un artículo. De nuevo, cualquier cosa que desee se puede tener en VIM.

La secuencia de comandos de VIM es enorme. Puede descargar o crear miles de combinaciones de colores y cambiar colores en un instante. Intente cambiar las fuentes o colores en Microsoft Visual Studio y se bloqueará durante 20 segundos mientras carga datos. No le permitirá almacenar esquemas de color y deberá pasar 30 minutos ajustando sus colores y fuentes cada vez que desee un cambio de escenario. En VIM, puede establecer el espaciado entre líneas en cero para que coincida con más líneas de código en la pantalla. Tengo más de 80 líneas. ¡Visual Studio usa 2 píxeles de espacio para cada línea y no puedes ajustarlo! Menos líneas = más desplazamiento = menos productividad = forzado a usar fuentes pequeñas para más líneas = tensión ocular.

Las ventanas divididas se abren en una instancia en VIM. Es útil cuando necesita ver datos en una sección del código que está lejos del lugar que está escribiendo (o en un archivo diferente). No tiene que perder tiempo cambiando el tamaño de las ventanas, ni se preocupa de que las ventanas de la GUI se superpongan entre sí y caigan una detrás de la otra. Las ventanas de código no relacionadas se pueden abrir en pestañas para no ocupar espacio en la pantalla, pero permiten un cambio rápido.

VIM como IDE: http://www.youtube.com/watch?v=MQy2rVOf-z0&feature=fvwrel VIM the revenge: http://www.youtube.com/watch?v=lQNFfhC4QI8


Recuerdo haber leído en alguna parte sobre un estudio que mostraba que las personas percibían los atajos de teclado como más eficientes que el uso de un mouse, cuando de hecho no siempre era así.

Otro efecto psicológico es que damos valor a cosas que son caras, es decir, dado que Emacs es más difícil de aprender, debe ser mejor de alguna manera.

Creo que esos efectos podrían explicar mucho del afecto extremo que algunas personas tienen por Emacs / Vi.

Sin embargo, en el caso de Eclipse, creo que puede ser muy lento e incluso fallar ocasionalmente, pero eso no es un caso en contra de los IDEs en general.

Uso tanto Eclipse, VS y Emacs regularmente. Yo usaría TextMate también, pero ya no tengo un mac. Depende de lo que estoy haciendo, más específicamente, qué sistema es el mejor para mi lenguaje y herramientas.

Conozco a personas que pasan mucho más tiempo programando a su editor, que a gastar haciendo algo útil. Algunos incluso admiten que solo lo hacen para el desafío. Otras personas a menudo afirman que Emacs / Vi puede hacer mucho más que IDEs, porque son secuencias de comandos. Bueno, la mayoría de los IDE (incluido Eclipse) también pueden tener secuencias de comandos. En ese sentido, casi todos los editores son equivalentes (aunque, lo admito, algunos editores son más fáciles de escribir que otros).

Si te gustan los IDEs, mi consejo es que sigas usando uno. No hay un verdadero editor .

EDITAR:

This parece ser el artículo al que se refiere Nick Bastin. Estoy de acuerdo en que está lejos de ser una fuente definitiva. Sin embargo, sigo pensando que mi punto de vista sobre la productividad percibida y real no es lo mismo que todavía tiene.


Todo depende de lo que quiere / espera y cuál es su modelo de uso.

Si está buscando un IDE de Java, Eclipse es difícil de superar. Está escrito en Java, para Java, por personas de Java.

Si está buscando una herramienta para editar archivos desde la línea de comandos rápidamente, Emacs o vi se ajustan a la ley.

Si está buscando una herramienta de la que nunca tenga que salir porque puede hacer lo que quiera (enviar / leer correo, administrar proyectos, listas de tareas, compilar, depurar, etc. etc.), entonces Emacs es más "eficiente".

Si está buscando razones para cambiar de editor, descubra lo que quiere. Si quieres un Eclipse mejor, vi y Emacs no te lo darán, quédate con Eclipse.

Si está buscando un editor pequeño y ágil, vi se ajustará a la factura.

Si estás buscando el editor final extensible, Emacs es el camino.

Cualquiera que sea la herramienta con la que decida ir, sumérjase . Aprenda todos los pormenores, amplíelo para satisfacer sus necesidades. Úselo a sus límites y sea eficiente en su uso.


Vim / Emacs

  • Escritura de código muy rápida / eficiente
  • Huella de memoria baja
  • Acceso rápido a la línea de comando
  • Infinitas posibilidades a través de scripts / plugins
  • Nunca tienes que abandonar el teclado

Eclipse

  • IDE con todas las funciones para muchos idiomas
  • Gran soporte de refactorización

Todos ellos

  • Multiplataforma
  • Característica rica
  • Extensible a través de complementos

Normalmente me encuentro escribiendo volúmenes de código a través de vim y realizando tareas de depuración a través de mi IDE. La familiaridad con el código base es sin duda un factor, ya que un IDE es una gran herramienta para saltar y aprender código fuente desconocido.