¿Qué justifica el uso de un IDE frente a un editor estándar? [cerrado]

39

Me encuentro usando mi editor de texto de elección (vim, nano, gedit, elige tu veneno) con mucha más frecuencia que cualquier IDE últimamente.

Después de notar que mis atajos ide se volvieron polvorientos, comencé a pensar en esto y me pregunto: ¿qué justifica el uso de un IDE para usted en lugar de un editor de texto ?

Para el caso, ¿qué razón tendría para no usar un IDE y simplemente confiar en un editor?

Chris
fuente
posible duplicado de programmers.stackexchange.com/questions/1003/… ?
Larry Coleman el
¿qué es lo que realmente lo hace en sus editores?
Escriba código, desarrolle aplicaciones, ... casi todo desde hace poco.
Chris
15
Personalmente, encuentro que los IDE son mucho más útiles cuando leo el código de otras personas (especialmente proyectos grandes) que cuando escribo mi propio código. Los IDE le permiten navegar por la fuente más fácilmente, lo que facilita la comprensión rápida del código fuente de otras personas.
Charles Salvia el
3
Me gustaría dar la vuelta a la pregunta. Lo que justifica NO usar un IDE.
Clavador

Respuestas:

70

El yo: integración . Un buen editor de texto puede ser bueno para escribir código, pero la mayor parte de su programación no se gasta escribiendo; se gasta en pruebas y depuración, y para eso desea que su editor de texto se integre con su compilador y su depurador. Esa es la mayor fortaleza de un IDE.

Mason Wheeler
fuente
Si tan solo pudiera encontrar uno que no se interpusiera en mi camino :)
Tim Post
55
Acabo de aceptar la edición de baja calidad como el precio que pago por la conveniencia de la integración.
TMN
¿No está probando la programación si lo haces bien? Si pasa la mayor parte de su tiempo depurando y probando monos, creo que veo dónde está su problema.
Tom Hawtin - tackline
8
@Tom, Testing está programando cuando puedes automatizar las pruebas que haces todo el tiempo. De lo contrario, verifique por cualquier método que produzca la mayor calidad.
Andres Jaan Tack
49

Estas son mis características favoritas de mi IDE favorito, IntelliJ, que me gusta usar para Java, PHP, Javascript, HTML e incluso ActionScript.

  • Comprobación de errores : al igual que la verificación ortográfica en vivo para el código. Absolutamente esencial.
  • Código de navegación : Ctrl+clicken una función, variable, escriba para ir a la definición. (IntelliJ es muy bueno en esto en todos los idiomas anteriores)
  • Completar código : lo uso Ctrl+spaceconstantemente para ayudar a completar el nombre de clase o método que necesito. Esto acelera la codificación una tonelada , e incluso ayuda a detectar errores antes de que sucedan cuando algo que necesita no está accesible desde el contexto en el que se encuentra. IntelliJ incluso lo ayudará a expandir acrónimos: escriba NPE, presione Ctrl+spacey mostrará "NullPointerException", "NoPageError", etc. Golpear Alt+enterpara agregar automáticamente el también importes realmente bueno.
  • Generación de código: genere captadores y establecedores, implemente métodos desde una interfaz con un par de clics.
  • Muy buena coloración de código : IntelliJ no solo tiene la palabra clave estándar, cadena, coloración de nombre de variable, sino que también colorea variables miembro, variables locales, parámetros. En ActionScript, una variable que en realidad es un setter / getter se coloreará como una función.
  • Refactorización : el cambio de nombre sin errores es el más grande. IntelliJ es muy bueno para renombrar incluso setters y getters o usos de cadenas. Por supuesto, existe una búsqueda y reemplazo basado en expresiones regulares cuando lo necesita, y una opción de "preservar caso" que le permite reemplazar "myNumber", "MyNumber" y "MYNUMBER" con "myString", "MyString" y "MYSTRING" en una operación
  • Integración de control de versiones : utilizamos SVN, y mis funciones IDE VC favoritas son poder crear, eliminar, mover clases sin pensar en SVN, navegar fácilmente por el historial, una muy buena herramienta de diferencias, buena capacidad de fusión y anotación de archivos (mostrando historial por línea) en el editor.
  • Importación de dependencias : cuando confía en una biblioteca de terceros para la que tiene la fuente, puede navegar fácilmente al código para referencia, depuración, etc.
  • Escritura inteligente : pegar código y pegarlo automáticamente en la posición correcta de la pestaña, completar automáticamente los corchetes finales, paréntesis, comillas, etc.
  • Un muy buen corredor de prueba para JUnit, FlexUnit, PHPUnit
  • Depuración , por supuesto. Debugs JBoss, Jetty, incluso Flash sin problemas. Ctrl + clic en los rastros de la pila para ir directamente al código.

Cosas como el color del código que puede dar por sentado, pero el buen color del código es como la visión periférica: le permite enfocarse en las cosas importantes sin tomar esa fracción de segundo adicional para identificar la palabra completa.

IntelliJ también lo utiliza Ctrl+spacepara sugerir nombres de variables. En Java, si declara una nueva variable EventMessageItem y presiona Ctrl+space, sugerirá "eventMessageItem", "eventMessage", "item", etc.

Todas estas cosas me dan manera más tiempo para pensar en mi código y la arquitectura, y pensar menos en la fijación de formatear, tratar con el sistema de archivos, corregir los errores de copiar y pegar, cambiar entre aplicaciones, persiguiendo a la documentación, etc., etc. No sé cómo puedes decir que no a ese tipo de aumento de productividad.

Nicole
fuente
44
+ 1 por mencionar IntelliJ Idea - Me encanta
artjom
3
+1, la mayoría de los puntos aquí se aplican a cualquier IDE decente, o deberían :)
Matthieu
21

Los IDE entienden su código mucho mejor que un editor. Esto permite, por ejemplo, la finalización y refactorización de identificadores, que para lenguajes detallados como Java es un envío de Dios,

usuario1249
fuente
1
Tenga en cuenta que toda esta comprensión requiere memoria para almacenar. Por lo tanto, los IDE tienden a consumir bastante recursos en comparación con un editor "apto para un disquete".
19
Sí, pero mi máquina de desarrollo i7 de 8 Gb necesita hacer algo mientras escribo. : D
Dominique McDonnell
Los IDE no tienen que estar hambrientos de recursos. Pero Smalltalk es probablemente un caso extremo: la sintaxis simple, muy simple de la reflexión, etc.
Frank Shearar
@Frank, depende de lo que quieras que hagan y de lo fácil que sea.
18
[To the IDE] You had me at intellisense/autocomplete
JohnFx
fuente
1
+1 Aunque siempre es desconcertante darse cuenta de que ya nunca escribo una clase completa, un método o un nombre de propiedad, y sé exactamente cuántas pulsaciones de teclas se necesitan para seleccionar la opción correcta de autocompletar ... tic-tic-tic-TAB- dot-tic-tic-tic-TAB-dot-tic-tic-tic
grossvogel
55
@gross, pero es correcto ! Escribir manualmente con frecuencia implica errores de escritura.
@ TThorbjørnRavnAndersen A menos que tenga dos cosas con nombres similares, y accidentalmente no escriba suficientes caracteres para obtener el correcto. Accidentalmente inserté una propiedad "NumberOfPoints" en algunas áreas que necesitaban "NumberOfSegments" debido a que no presté suficiente atención a mi autocompletado: p. Dicho esto, prefiero autocompletar que no.
KChaloux
14

Productividad. ¿Hay alguna otra justificación que tenga sentido? Para mí, un IDE bien diseñado que centraliza muchas de las funciones que realizo durante la programación: crear y editar código, usar control de origen, depurar, interactuar con herramientas de gestión de proyectos, comunicarse con otros programadores, crear documentación, ejecutar pruebas automatizadas - Reduce drásticamente la fricción del proceso que reduce mi productividad.

Además, aunque siento que necesito saber cómo usar cada herramienta individualmente, no quiero tener que hacerlo. Al menos para mí, hacer clic con el botón derecho del mouse es infinitamente preferible a abrir una CLI y escribir.

He usado muchos, pero los IDE a los que vuelvo una y otra vez son Visual Studio, Wing IDE y NetBeans. Todos agregan un valor significativo al tiempo que paso programando.

Adam Crossland
fuente
9

Históricamente, los IDE proporcionaban una comodidad sin igual en una computadora de una sola tarea. Mi primer compilador de C requirió los siguientes pasos en el ciclo de edición-compilación-ejecución:

  • Iniciar editor
  • Editar programa
  • Guardar programa, salir del editor
  • Programa de compilación
  • Ensamblar programa compilado
  • Programa compilado y ensamblado de enlaces
  • Ejecute el programa

en mi sistema CP / M. (Podría haber automatizado gran parte de eso como un programa por lotes si mis unidades de disco hubieran sido más grandes).

Cuando obtuve Turbo Pascal, me encantó poder mantener el editor disponible mientras compilaba y depuraba.

Eso, creo, es lo que hizo que los IDE fueran populares en primer lugar.

David Thornley
fuente
Pero todas esas cosas se pueden hacer de muchos editores; Emacs, por ejemplo.
JasonFruit
@JasonFruit: Ciertamente. Les explico lo que primero me atrajo de ellos. En esos días, estaba ejecutando CP / M en un TRS-80 Mod 4, y creo que Emacs todavía estaba basado en TECO.
David Thornley el
De acuerdo, punto. :-) (Emoticon para completar el número requerido de caracteres.)
JasonFruit
2
@JasonFruit, las máquinas CP / M-80 tenían un máximo de 64 Kb de RAM. Considere cuánto Emacs puede caber en eso.
7

Si codifica en Lisp, Emacs tiene capacidades similares a Intellisense, como buscar parámetros de métodos y autocompletar, por lo que podría decir que es el IDE original. También es bueno poder usar un programa para múltiples tareas (edición en general, shell / símbolo del sistema, lectura de noticias).

En general, la pregunta del editor vs. IDE parece depender del lenguaje de programación. Por lo que he visto, los codificadores de Ruby y Haskell, por ejemplo, parecen preferir su editor de texto favorito.

Larry Coleman
fuente
Emacs realmente puede hacer eso en casi cualquier idioma. El modo PHP es bastante bueno, son los modos para Javascript, Haskell, Erlang y SQL. (Los otros también pueden ser buenos, pero no los he usado).
Zachary K
Una vez que agrega todas esas campanas y silbatos a emacs (o cualquier otro editor), lo que tiene es un IDE. Entorno de desarrollo integrado. Lo comparo con comprar un pastel de una panadería (IDE) versus hacerlo desde cero (Editor engañado)
sal
+1, para Coq, Haskell y Lisp Emacs es lo único con un apoyo decente
Daniel Gratzer
4
  • Compilación con un clic
  • Depuración
  • Plantillas de código
  • Completar código
  • Integración con control de versiones y herramientas de refactorización
  • Prueba unitaria más simple

para nombrar unos pocos

ysolik
fuente
3

Creo que la respuesta dependerá mucho del lenguaje de programación que estés usando y de lo bueno que seas. Para idiomas como JAVA, un IDE es imprescindible si está haciendo algo serio. Donde sea que se trate de lenguajes de script como JS o Ruby IDES no son de mucha utilidad.

Utilizo notepad ++ y un conjunto de scripts de shell (para copias de seguridad, git commits) para mi desarrollo y funciona perfectamente bien.

Monje oriental
fuente
Uso GVIM para Javascript y descubro que es MUCHO más rápido que usar un IDE. También usa mucha menos memoria. Agregue alrededor de 3-4 scripts de shell para cosas como jsLint, formateo y control de selenio y descubro que casi nunca necesito quitar mi mano del teclado. (Y para ser honesto, probablemente podría convertir todos esos scripts en complementos VIM si me importara)
Zachary K
3

Algunos argumentos a favor de los "editores":

  1. Hay casos en los que un IDE aún no se ha desarrollado o nunca se desarrollará.
  2. Con un editor puede hacer cambios "más rápido" y más quirúrgicamente.
  3. Necesita muchos menos recursos (por lo que es más fácil usar muchos abiertos al mismo tiempo)
  4. Porque es la única forma de resolver algunos problemas como los descritos aquí .
  5. (personal) A veces, cuando tengo que escribir todo, estoy trabajando más con mi consciente y estoy más comprometido con lo que estoy escribiendo. Muchas veces encontré, por ejemplo, un error de ortografía en un método (formaqString), que habría pasado desapercibido con un IDE.
  6. Hace que sea más fácil trabajar solo con el uso del teclado (velocidad / flujo)
  7. Mentalidad de usar macros u otros ahorradores de tiempo.

Utilizo un IDE todos los días para trabajar, de lo contrario es difícil escribir Java / C #.

(2) en comparación con (3): Básicamente, la única opción para editar archivos de forma remota (a través de ssh / escritorio remoto) y hacer cambios mínimos en la configuración o los archivos de un servidor distante.

Dimitrios Mistriotis
fuente
2

Dependiendo, por supuesto, de su idioma, algunos IDE también incluyen diseñadores visuales de formularios / ventanas.

Aunque debe señalarse, la línea entre el editor de texto de un programador y un IDE no está bien definida. Muchos editores pueden ampliarse para manejar la compilación, la finalización del código, la depuración, etc.

Gran maestro B
fuente
2

Utilizo el IDE para probar / depurar / integrar y KEDIT para editar porque el IDE es muy deficiente en capacidades de edición.
Debido a que .NET IDE reconoce ediciones externas, todo lo que necesito hacer es guardar en el editor y aceptar el aviso para volver a cargar la fuente. Esto me permite optimizar mis capacidades de edición y depuración al mismo tiempo.
Para otros IDE, uso KEDIT como procesador de plantillas y programa de búsqueda de fuente y copio / pego esa fuente en el IDE.

Dave
fuente
¿Qué haces en kedit que el IDE no puede hacer? Tengo una curiosidad genuina, ya que nunca he usado nada más que un IDE para la mayoría de mis códigos serios ...
Dean Harding
KEDIT, como otros editores inteligentes, tiene capacidades de secuencias de comandos que me permiten hacer cosas que el IDE no puede. Por ejemplo, utilizo KEDIT para copiar y pegar varias copias de búfer (hasta 100 por sesión de kedit) y editar columnas que el IDE ni siquiera puede acercarse.
Dave
1

Para IDE:
- las funciones avanzadas están cableadas de fábrica.
--algunas características son tan específicas para su marco que los editores no tienen equivalente.

Para el editor: -
Manteniendo las manos en el teclado.
- su entorno de desarrollo es el mismo en todos los sistemas -
mejores secuencias de comandos para su editor -
algunas características de un IDE están disponibles con herramientas o scripts externos. (Intellisense, ir a definición, encontrar referencias)

mike30
fuente
0

Curva de aprendizaje corta. Eso es.

nate c
fuente
44
Supongo que no has agotado ningún tipo de IDE
Harald Scheirich
44
Con vim como mi copiloto, no necesito hacerlo.
Nate c
Curva de aprendizaje corta para ...? perdón pero esto no era obvio para mí.
Chris
0

El único que realmente recomendaría es el depurador. Un IDE es realmente un editor con una carga de otros gubbins añadidos, pero si puede compilar escribiendo make (o flecha arriba + enter) en un símbolo del sistema, entonces no necesita un IDE. Si puede comprometerse con SCM haciendo clic derecho en el explorador y eligiendo el elemento de menú correcto, no necesita un IDE.

Ahora sé que algunas personas necesitan cosas como soporte de refactorización (escriba su código correctamente la primera vez :)) o algún diseñador de GUI integrado (pero incluso así, usando Visual Studio uso Expression para hacer mi trabajo de GUI, no el soporte XAML en VS ) y mucha gente necesitan inteligencia y autocompletar (especialmente para lenguajes detallados como Java y C # que tienen nombres muy largos).

Pero para mí, el depurador de GUI es la única razón realmente buena para usar el IDE. Todavía uso un depurador de 'línea de comandos' (bueno, windbg) pero para el día a día, es el incorporado a VS.

gbjbaanb
fuente
0

Hay beneficios para un IDE. No todos los idiomas tienen un IDE completo para realmente inclinar la balanza o podría ser prohibitivamente difícil crear uno para dicho idioma. ¿Por qué querrían un IDE? Bueno, comencemos con estos:

  • El lenguaje tiene una API estándar rica que en las ventanas emergentes IDE podría ayudar a acelerar el desarrollo.
  • Hay mucho código de placa de caldera. (Intento forzado / captura, captadores / setters, etc.)
  • Autocompletar puede satisfacer con precisión sus necesidades de codificación
  • Su conjunto de pruebas de unidad de idioma está integrado en dicho IDE.
  • IDE conoce y admite numerosas bibliotecas comunes de idiomas con respecto a las mejores prácticas.
  • Complementos disponibles para hacer el trabajo mo'betta
  • No es tan pesado que ralentiza tu sistema
  • Depurador altamente integrado? Eso ayuda.

El problema es que no todos los idiomas realmente obtienen una gran ganancia de productividad de un IDE completo. Utilizo IDEs para algunos trabajos que hago (Java, C #) pero no para otros (Python, Ruby, Coldfusion). Todo realmente es un acto de equilibrio. Algunos idiomas simplemente no requieren una suite tan completa.

¿Hay IDEs para cada uno? Seguro. ¿Siempre necesitas uno? Realmente no.

Aparejo
fuente