Para mim, é apenas a versão GUI de tudo o que fizemos nos bons e velhos tempos do terminal. Eu sempre concordo que o IDE não é muito superior porque oculta muitas coisas, principalmente no que se refere à vinculação, mas elas têm uma vantagem notável em alguns casos, por exemplo, em certas plataformas de desenvolvimento como o Qt.
Alguns IDE, como o visual de outras pessoas, parecem analisar seu código enquanto você o digita e detectar erros antes mesmo de compilar: parece lógico que apenas um IDE pode trabalhar em estreita colaboração com um compilador para detectar imediatamente problemas na fonte digitada.
Minha resposta selvagem de que a guerra de chamas IDE / linha de comando existe é apenas porque o edifício executável C / C ++ não é muito bem tratado de um ponto de vista padronizado, ao contrário da linguagem D; toda plataforma lida com a compilação / vinculação / etc do seu próprio jeito, para torná-lo menos confuso, eles criam um IDE.
Do seu ponto de vista, pode ser mais simples usar a linha de comando; se houvesse apenas um compilador com opções padrão, teria sido fácil, mas a verdade é que o C / C ++ é flexível; portanto, no final, toda a plataforma faça do seu jeito, daí o IDE não perder explicando como fazê-lo.
Se você pode aprender como um executável se comunica com o kernel ou se conhece alguma coisa sobre o design do compilador, talvez haja uma maneira de trabalhar com uma linha de comando adequada, mas duvido que sim.
A Microsoft ou a Apple, por mais más que sejam, precisam propor uma maneira direta de criar aplicativos sem entrar em detalhes, e como a criação de um aplicativo depende diretamente da arquitetura do sistema operacional, dificilmente será "padrão" como o linha de comando é
Para simplificar, aplicativos grandes e complexos, nos quais você não deseja se aprofundar no que faz -> IDE, pequenos pedaços de software ou simples design de software do sistema -> linha de comando. Exceto, é claro, as bibliotecas bacanas que incorporam um Makefile, mas isso é outra história.
Também acho que o IDE é usado quando o aplicativo entregue tem algo a ver, ironicamente, com uma GUI ou algo que tem uma interface ou está diretamente vinculado a um sistema operacional; então, novamente, também é para pessoas que usarão uma UI / GUI sem saber como funciona, enquanto as pessoas que programam sistemas não precisam de tudo.
O IDE é uma merda moderna, mas acho que em 100 anos a linha de comando ainda existirá.