往大了说就是C++已经过了巅峰期。新的标准就像Fortran 90 --- 这个语言在努力跟上时代,但是使用者的平均年龄在变大,项目都巨大且有年头了,新项目越来越少了。
这样的社区自然越来越难以接纳新东西。
另一方面,C++的语言机制大都是leaky abstraction,范例看起来很漂亮,实际使用有很多坑,非熟悉其实现细节不能运用。典型如STL用起来看似简单,但等闲生成几屏幕错误信息,包含各种你未曾听说过的内部名字。
这极大阻碍了C++库的推广。C和Java都没有这个问题。像Spring Framework这样魔幻的库能被普及,对于C++是不可想象的。
再者,C++大概是贯彻“绝不直接给用户他想要的”最彻底的语言。现代语言要有好用的string, array和dict?我们绝不给核心语言加这些类型,而是加入各种机制,使得用户自己可以实现别的语言中内置类型的效果。(我们甚至允许你自定义字符串字面量!)
这既拖慢了C++在上升期的发展速度(我们到哪年才可以用字面量初始化map的?),也加重了上一个问题(想想错误信息里那些冗长的basic_string)。
再回到原问题。原不原始的先不论,C/C++作为不安全的语言,不管加入多少特性,始终还是危险和难用的。只是很多领域,暂时没有/没有流行更好的选择。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有