陈***
2016-12-07 11:32:05
1。 语言上,Java是一个比C++更容易parse得多的语言,所以相应的工具链IDE会更容易做,无论多大的Java的项目,就是新手写完都不会有编译错误。但是写上千行C++程序,写完不需要改编译错误的,都不是一般高手。 实际上,C++的语言特性太丰富,一般的团队都是裁剪出一个子集来用,就这个子集来说,大家的认识也千奇百怪。
...[展开]
1。 语言上,Java是一个比C++更容易parse得多的语言,所以相应的工具链IDE会更容易做,无论多大的Java的项目,就是新手写完都不会有编译错误。但是写上千行C++程序,写完不需要改编译错误的,都不是一般高手。
实际上,C++的语言特性太丰富,一般的团队都是裁剪出一个子集来用,就这个子集来说,大家的认识也千奇百怪。
2。 ABI依赖,C++还是一门面向底层的语言,直接面向ABI接口这样底层环境的编程。
我就不提什么Linux下程序移植到Windows下这种坑爹的事情了,我有一次把一个在fedora下跑得好好的程序拿到ubuntu下重编译就莫名crash了,开着gdb debug N久汇编。
3。
没有包管理,这样库就不容易分发,不可能有Maven这样的东西,这个缺陷严重限制了C++的使用,就是你的项目必须要有依赖的全部代码,因为原因2,很多时候static lib都不靠谱,更不要提dynamic lib了。
。[收起]