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


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


74
2017-08-28 12:54


origen


Respuestas:


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.


46
2017-08-28 13:07



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 realizar 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.


54
2017-08-28 13:18



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.


27
2017-08-28 23:42



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érgete. Aprenda todos los pormenores, amplíelo para satisfacer sus necesidades. Úselo a sus límites y sea eficiente en su uso.


23
2017-08-28 15:55



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.


14
2017-08-28 13:04



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 un IDE: http://www.youtube.com/watch?v=MQy2rVOf-z0&feature=fvwrel VIM la venganza: http://www.youtube.com/watch?v=lQNFfhC4QI8


10
2017-07-19 00:35



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.


8
2017-08-28 13:40



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.


4
2017-08-29 18:56



Recuerdo haber leído en alguna parte sobre un estudio que mostraba que las personas percibido los atajos de teclado son más eficientes que el mouse, cuando de hecho no siempre fue 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:

Esta 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.


4
2017-08-28 13:25



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.


3
2017-08-28 12:59