C++的精英化趋势与两个关键缺陷.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C的精英化趋势与两个关键缺陷

C++的精英化趋势与两个关键缺陷 ?   C++是一门引起无数争议的语言。   眼下最常听到的声音则是C++将趋于没落,会被某某语言取代。   我很怀疑这种论调的起点是商业宣传,C++的真实趋势应该是越来越倾向于精英化。   精英化是指在可用可不用C++的领域中,C++将逐渐退出,   而所有剩下必须用C++的领域通常都是附加值比较高,难度较高的领域,比如:操作系统,数据库,大型网站后端等。   这一过程造成的现象就是在TIOBE上,C++的份额逐步下降。   但就像经济上挤泡沫一样,这倒不是C++衰落了,而是原本人们对C++的期望过高了。   早在1995年,美国的调查机构就曾经预测:“终端用户”编程从从业人员比率上将占94%,而“基础结构”编程从业人员只占1.5%不到。   (参见《软件成本估算:COCOMOII模型方法》)   C++本来就不适合“终端用户”这种涉众很多的项目,比如物流程序,而适合对性能要求较高的基础结构项目,比如OS,大型数据库等。   (根据Google的测试,C++的performance远高于其他语言)   只是当年OO很火的时候,大家又没有什么别的选择,就一窝蜂的用,实际上很多程序确实不适合用一个没有垃圾收集的程序来写。   这里有一份统计列表,大家可以自己看看,当前C++的主战场是那里。   The Programming Languages Beacon(这个表告诉我们:IT行业的骨头是C/C++做的)   这导致的结果就是修炼C++的程序员必须往高端走,你要么找不到工作,要么就找到很好的工作。   而不像其他语言,大差不差还能混口饭吃。   这个趋势不好绝对化,但估计在未来会被强化。TIOBE上C++的份额跌得越多,这个趋势强化的越厉害。   短时间完全看不到C++退出历史舞台的可能性,只要硬件还是软件的基础:   例1:网站A和网站B类似,用C++可以让速度提升30%,你感觉这个网站会选择语言的易用性,还是会选择速度?   例2:公司A要开发一个新的软硬结合的产品,你感觉他会先开发一个虚拟机,再开发产品,还是会直接基于硬件上封装驱动后开发程序?   两个关键缺陷   这两个关键缺陷分别是语言的过度复杂和标准库的过度苍白。   C++语言过于复杂在业界是共识。   一个指针就使C++比关键字数目相同的语言复杂许多,导入模板后各种应用精巧的应用使这门语言进一步复杂化,个人感觉C++0x使这复杂性又升华了。   Google在公布的C++ Coding Rule开篇就说:   As every C++ programmer knows, the language has many powerful features, but this power brings with it complexity, which in turn can make code more bug-prone and harder to read and maintain.   这里也就不多说了,但贴几个好玩的句子:   C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off. —— Bjarne Stroustrup(Stroustrup还是挺搞的,意译下:C语言让人很容易开枪走火打到自己的脚,C++让走火发生的可能性降低,但一旦走火,你的腿就没了。)   IMO, good C++ code is better than good C code, but bad C++ can be much, much worse than bad C code. —— John Carmack.   C++标准库的苍白倒值得多说一点不知道没用过C++的人是否能想象,这个世界上还有一门语言的标准库里甚至不覆盖正则表达式和XML. C++就这样,并且还将持续这样。我专门查了一下,C++0x里好像终于有正则了,但还没有XML的库。   (不用提醒,我也知道boost里有,但boost不是标准库。)   C++本身不缺库,并且还都是大佬级的,如:OpenCV,OpenMP,ACE,MPICH2等。   随便那一个都是一方诸侯,如果你没用过OpenCV和OpenMP这些东西,第一次用一定会有点震撼,但关键是标准库不太行。   从这个角度看C++0x方向走错了:锦上添花的事做了不少,雪中送炭的事上不太给力。   感想C++语言已经无法简化,如果编译器能够提供可定制编译也许对这个语言会有帮助。   比如:设定某个选项后,C++就变成了有对象的C.设置某个选项后,多重继承就不支

文档评论(0)

youshen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档