因为需求决定了。互联网用c的很少,基本只有传统的IT CT厂商和硬件结合的项目用c。
c++以前比较牛逼,但是由于坑太多,现在新项目用c++的也变少了。c++依赖太多,太恶心了,因为c++不属于任何一个公司,而且标准委员会只指定标准,不实现标准,而且c++没有实际意义上的二进制abi规范,所以换一个编译器,升级一个编译器版本,不用编译器编出来的动态库混用,甚至换一个STL实现,都会出现不兼容的问题。而且现在c++标准98/03/11/14/17/20这么多标准,实现多少完全看编译器,而由于不属于任何一个公司,编译器也分好多种。各种不兼容,导致一个在g++4.5版本下跑的好好的历史遗留项目,用的03标准。想开一个c++11跑跑,结果n堆编译错误。在老标准可以用的写法,新标准禁止了。新标准的c++其实很好用了,但是由于各种历史原因导致的,坑实在太多,技术水平一般的公司不容易hold住,而且随着硬件水平提升性能优势也不是很明显了,而且其实性能主要看写代码的人。
java属于一个公司,标准制订,编译器的制作要一致的多。而且升级版本不会有像c++那么多问题。现代c++非常好用,但是由于c++的项目大多都是历史项目,所以升级不了编译器,还得继续用十几年前的c++写代码,所以就显得c++很难用了,这怎么和现代的java比。
还有一个重要原因是生态,java可以用的库,太多了,而且有强大的包管理。而c++还是用的非常土的和c语言一样的头文件编译展开的方式。用第三方的库,都要用源代码自己编译,编译器等级高了不行,低了也不行,用了不同版本的STL还可能连接错误,就一个简单的引用第三方库就玩死一票人。
这里不谈语法表达性这种区别,大部分公司就是想快速做出项目来,容易上手,拿来就用的东西多,这才是重要的。所以某些语言就慢慢用的少了,但是在某些领域是不可替代的,所以在出现同类型语言前,并不会被淘汰。
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。