IDE真正的用武之地,是在某种特定的生态环境下,开发边界清晰的项目。比如在windows上用VS开发MFC应用,比如用QtCreator开发qt应用,比如用Android Studio开发安卓app,比如用Xcode开发ios应用。基本上运行平台、IDE、语言等等都是一整套。

这种类型的项目,我认为,再大都不算大。

真正的大项目,是涉及了多种语言,多个运行平台,层次纵深很大的项目。比如说在一棵代码树里面有c语言编写的硬件固件,有c++编写的视频处理,有python编写的dnn目标检测,有Java写的人机交互,有bash脚本,还依赖一些第三方库。有的底层软件用makefile管理,有的用cmake管理,有的用maven管理。他们相互之间还有版本依赖。这时候做些调试的时候,免不了要在不同的语言不同的编译脚本之间跳来跳去。过程中可能还需要把一些东西推到服务器上,再登上去做一些配置。还有可能要登陆到嵌入式设备上。有的时候还要打开一个串口终端。

这么复杂的事情,没有任何一个IDE做得好。因为项目一旦复杂到这种程度,就没有任何通用性可言。每个具体的项目都是完全不同的。不可能设计一套ide来处理好所有的项目。

而这种情况对于只有一个简单的前端(文本编辑器或者LISP解析器),后端配上大量的插件,组合而成的个人定制化工具集,是可以胜任的。