快速业务通道

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

作者 凌众技术 来源 互联网 浏览 发布时间 2012-01-12

精英化趋势

  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,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号