这是因为C++对于动态库的连接更方便。现在的大型工程已经很少有完全自己开发的了,一般都是选择使用各种软件包来简化任务。很多软件包特别是商业软件包是以动态库发布的,有少数是静态库的,也有部分是开源的。软件包应该选择什么样的编程语言开发?如果使用托管的语言,那么生成的软件包将很难兼容所有的编程语言。只有C接口是兼容其他编程语言的,所以多数通用的软件包都是提供C接口。调用C接口最简单的方法就是直接在C或C++工程中使用,这就限制了不想惹麻烦的人的选择范围。在C和C++之间做选择的话,那么C++有大量的窗体应用程序框架,C没有这些框架,所以主程序自然就是C++了。
同理,Web上其他编程语言很难取代Java,也是因为Web上的软件包多是以Java的封装发布的。