Qué características de un IDE lo harían más útil que un editor de uso general


10

Estoy creando un IDE para el idioma Lua. Creo que a muchos programadores no les gusta usar IDE y prefieren VIM (que está de moda en este momento), SCiTE o.

Al tratar de ganar algo de participación mental, estoy interesado en las características que podría proporcionar un IDE que lo convertirían en una alternativa convincente a un editor de propósito general.

¿Existe una "aplicación asesina", por así decirlo, para un IDE que lo convertiría en un "must-have"?

Esto podría considerarse como el reverso de

Características más útiles de VIM que no son estándar en un IDE

No vincularé a mi IDE a menos que alguien me pregunte, pero puedes simplemente buscar mi nombre en Google y encontrarlo.

EDITAR: Mi IDE es en realidad un complemento de idioma para un IDE existente, por lo que heredé muchas características del IDE del host, en algún nivel, aunque mi soporte de idioma es un IDE en sí mismo, al menos en lo que respecta a los aspectos específicos del idioma. preocupado.

Respuestas:


19
  1. Facilidades de refactorización (el cambio de nombre afecta a las dependencias / Método de extracción / Interfaz de extracción, etc.)
  2. Intellisense (o cualquier otra funcionalidad de finalización de código)
  3. Comprobación de errores (el IDE realmente conoce sus símbolos)
  4. Sin problemas de configuración
  5. Compilador integrado
  6. Depurador integrado
  7. Mejor navegación hacia y desde referencias / declaraciones
  8. Plantillas de proyecto / plantillas de archivo
  9. Constructores de GUI
  10. Puede autogenerar código repetitivo
  11. Es intuitivo y se puede usar sin conocer todas las llaves mágicas (hey, por eso las GUI se volvieron exitosas en primer lugar)

En general, como dijo @Thomas Owens, la mayor ventaja del IDE es la integración de herramientas con sus efectos de sinergia en su conjunto, mientras que todavía es intuitivo y fácil de usar.


3
En general, diría que la integración de herramientas en su conjunto: integración con control de versiones, servidor de integración continua, rastreador de errores, compilador, depurador, perfilador, análisis estático, etc. Yo diría que el compilador y el depurador integrados es un gran problema, pero tener todo en un paquete pequeño y agradable es útil.
Thomas Owens

@Thomas Owens: Muy cierto, pero no enumeré el control de fuente, por ejemplo, ya que puedes integrar el control de fuente fácilmente en vim, así que eso no es gran cosa, después de todo, es solo una llamada de línea de comando y, por ejemplo, me gusta más Tortoise que AnkhSVN. Hubiera enumerado los perfiladores, pero no todos los IDE vienen con uno (VS, por ejemplo, no tiene ninguno listo para usar). Las métricas son un buen punto, pero de nuevo, solo el VS más nuevo le ofrece afaik.
Falcon

En Eclipse y NetBeans, mucho de lo que mencioné está basado en complementos, aunque también hay muchos complementos (o módulos o extensiones) para vim y emacs, con diferentes capacidades. Creo que eso es lo bueno de todas las herramientas: es fácil elegir lo que desea para que sea productivo.
Thomas Owens

Creo que tengo la mayor parte de esa lista en un grado u otro. Además, el formato de código. e incluso soporte para ayuda integrada para API y bibliotecas personalizadas. Sin embargo, su lista es bastante completa. Quizás al final todo se reduce a preferencias personales, y no hay mucho más que pueda hacer. (Mi IDE es un complemento IntelliJ, quizás eso sea demasiado para algunos)
sylvanaar

2
Quisiera aclarar que cosas como Refactor / Rename son archivos múltiples (en todo el proyecto): cuando cambio el nombre de un método o variable, PyCharm (por ejemplo) aplicará el cambio de nombre en todos los archivos del proyecto, no solo el editado actualmente como lo haría un editor. De lo contrario, ciertamente estoy de acuerdo con esta lista. Compré y comencé a usar PyCharm recientemente, y cuanto más lo aprendo, más me gusta (a pesar de fallas ocasionales :)
Cyclops

8

La gran diferencia entre un IDE y un editor de texto general es que los IDE entienden el lenguaje de programación con el que está trabajando y pueden autocompletar funciones / métodos, verificar errores como tipo incorrecto y gramática incorrecta. Un IDE también tiene herramientas como un compilador integrado para que pueda compilar y ejecutar su programa con comandos en su IDE.

Pero creo que VIM puede hacer más que un editor de texto general, tal vez pueda verlo como un IDE en algunos casos.


2
+1 para "comprender el idioma". Creo que casi todo lo demás se sigue de esto.
Dean Harding

sí, mi implementación de soporte de idiomas es sintáctica y semánticamente consciente.
sylvanaar

4

Herramientas de refactorización

La única razón por la que no estoy usando mi editor de texto de propósito general favorito para la codificación. Porque si necesita ampliar las refactorizaciones de código común en su propósito general favorito, entonces también podría estar usando un IDE que tenga instaladas estas herramientas.

Por lo menos, decir que la mayoría de los IDE tienen la funcionalidad útil que tiene emacs, está enterrada en una combinación arbitraria de pulsaciones de teclas.


2

Es bueno tener características de un IDE que no se encuentra en el editor de texto: 1. Intellisense (autocompletado y sugerencias)

  1. Integración con compilador

  2. Integración con sistema de depuración

  3. Integración con control de versiones

  4. Integración con el sistema de base de datos.

  5. Comprobación y ayuda de sintaxis sobre la marcha

  6. Coloración de sintaxis

  7. Maneja proyectos no solo archivos de código

  8. Encuentra dónde se usa un método y dibuja un gráfico (no se encuentra en la mayoría de los IDE hasta la fecha)

  9. Registra componentes (dependiendo de su idioma)

  10. Integración con editor (es) de GUI

  11. Segmentos de código de marcadores

  12. Seguridad de la fuente e intercambio entre desarrolladores

  13. Proyecto restaurar a versiones anteriores

  14. Múltiples configuraciones de proyecto (prueba, desarrollo, producción)

  15. Las características IDE se pueden configurar

  16. Comparación inteligente del código fuente

  17. Cambio de nombre automático de vars, métodos, etc.

No creo que sea útil crear un nuevo IDE.


Debería haber mencionado que es un complemento para un IDE existente. Editaré mi pregunta.
sylvanaar

2

Me encantaría tener un IDE con un editor totalmente personalizable como Emacs. No quiero escribir complementos y luego reiniciar el IDE para probarlos. Quiero definir acciones en un lenguaje de secuencias de comandos (por ejemplo, python, ruby) y poder usarlas de inmediato, vincularlas a secuencias de teclas, etc. El lenguaje debe poder manipular todo el espacio de trabajo.


1

3 cosas siempre deciden si usaré o no un IDE particular:

  • Autocompletar
  • Un generador visual de GUI
  • Herramientas de datos para algún tipo de ORM integrado

Generalmente uso el IDE que tiene la mayoría de estas características, o que las hace mejor. Estas son las tres cosas que tienden a aumentar más la productividad al reducir la codificación repetitiva (GUI y DAL) y al reducir el tiempo de reflexión (la función de autocompletar me permite omitir muchas dificultades de API).


Hubiera clasificado las herramientas de refactorización mucho más altas que los constructores de GUI. No todos los programas tienen interfaces gráficas de usuario, pero podrían todos ser objeto de refactorización en algún momento.
FrustratedWithFormsDesigner

@FrustratedWithFormsDesigner - A cada uno lo suyo, supongo. Raramente uso herramientas de refactorización. Realmente no tengo nada en contra de ellos; A menudo prefiero refactorizar a mano para asegurarme de no romper nada.
Morgan Herlocker

Yo también solía hacer eso, creo que al principio desconfiaba de esas herramientas. Y es cierto que si se implementan mal, a menudo es mejor refactorizar a mano, pero cuando estas herramientas se hacen correctamente, ¡son INCREÍBLES !
FrustratedWithFormsDesigner
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.