Para mí es solo la versión GUI de todo lo que hicimos en los viejos tiempos de la terminal. Siempre estaré de acuerdo en que IDE no es muy superior porque ocultan muchas cosas, especialmente en relación con las cosas de enlace, pero tienen una ventaja notable en algunos casos, por ejemplo con ciertas plataformas de desarrollo como Qt.
Algunos IDE, como el visual de otros, incluso parecen analizar su código a medida que lo escribe, y detectan errores incluso antes de compilar: parece lógico que solo un IDE pueda trabajar estrechamente con un compilador para detectar inmediatamente el problema en la fuente escrita.
Mi respuesta descabellada de que existe la guerra de llamas de IDE / línea de comandos es simplemente porque el edificio ejecutable C / C ++ no se maneja muy bien desde un punto de vista estandarizado, a diferencia del lenguaje D; cada plataforma maneja la compilación / vinculación / etc. a su manera, por lo que para que sea menos complicado, crean un IDE.
Desde su punto de vista, podría ser más simple usar la línea de comandos, si hubiera habido un solo compilador con opciones estándar, hubiera sido fácil, pero la verdad es que C / C ++ es flexible, por lo que, al final, todas las plataformas hazlo a su manera, de ahí el IDE para no desperdiciar explicando cómo hacerlo.
Si puede aprender cómo un ejecutable habla con el núcleo o si sabe algo sobre el diseño del compilador, tal vez haya una manera de trabajar con una línea de comandos adecuada, pero dudo que lo tenga.
Microsoft o Apple, por muy malvados que sean, tienen que proponer una forma directa de crear aplicaciones sin ingresar los detalles, y dado que la creación de una aplicación depende directamente de la arquitectura del sistema operativo, difícilmente será "estándar" como el línea de comandos es.
Para decirlo, aplicaciones simples, grandes y complejas donde no desea profundizar demasiado en lo que hace -> IDE, pequeñas piezas de software o diseño simple de software de sistema -> línea de comandos. Excepto, por supuesto, esas ingeniosas bibliotecas que incorporan un Makefile, pero esa es otra historia.
También creo que los IDE se usan cuando la aplicación entregada tiene algo que ver, irónicamente, con una GUI o algo que tiene una interfaz o está directamente vinculada a un sistema operativo, por lo que, nuevamente, también es para personas que usarán una UI / GUI sin saber cómo funciona, mientras que las personas que programarán sistemas no lo necesitarán todo.
IDE es una mierda moderna, pero creo que dentro de 100 años la línea de comandos seguirá existiendo.