快速业务通道

神话与谬误:争论C++前你应当知道什么

作者 佚名技术 来源 程序设计 浏览 发布时间 2012-06-30
汇编什么都能做。而是“在某个特定的领域,哪门语言表现更好”,人们的需求几乎总是对着某个特定的领域的。后者才是真正matter的问题。 从这个角度看,C++的市场其实只在效率这一块。有人可能会说,那效率这一块有C啊。问题是,C的抽象机制太弱。写架构简单的应用,或者写一些核心的(如驱动程序),没有面向对象结构的程序,容易。完全可以用C。但涉及到大型系统,比如.NET基层架构,一些3D游戏。必须用到面向对象或基于对象编程的领域,C在代码组织和抽象方面的弱点就暴露出来了。比如用C和宏来实现所谓OO,就正说明了C的抽象机制的薄弱。

但是,C++的领土基本也就在这些地方了。简而言之就是所有“效率重要,且同时需要好的抽象机制的应用领域”。因为C++的优势就是无损效率的实现更好的抽象。 那C++既有效率又有更好的抽象机制,为什么C++不能取代java、不能取代python,不能取代ruby?或者至少当C++进化到更好的阶段的时候,比如C++0x就是一个大的进展(在语言方面),为什么作为一门语言,不能取代那些严重“偏科”的语言呢?

原因有两方面。一方面,正因为“偏科”,所以有些语言才能在它们擅长的领域做得更好,乃至做到最好。“偏执狂才能生存”。人们的需求几乎总是在特定领域的,你说这时候人是愿意选用一门专门为这个领域而生的语言(ruby),还是愿意用一门general-purpose的语言(C++)?另一方面,就算C++在抽象机制上进化到了非常好,乃至于能在某些特定领域也表现不菲的话,由于市场早就被别的语言侵占,别的语言已经有了成百上千万行的代码基,别的语言的库已经发展到非常丰富的程度,别的语言的相关人才教育已经一代又一代,所以结果还是没得拼。 其实,从另一个角度来说,C++何尝不也是一门偏执的语言呢?C++的偏执就是效率,C的偏执也是效率,但C++提供更好的抽象,因此在这一块(效率+抽象),C++比C有优势。 C++的领土已经铸成,另一方面,C++的领土在可见的未来也不大可能缩水了。这是C++的现实,这个现实,至少在Bjarne看来,也没什么不好,因为它正反映了C++当时设计的意图——更好的C。我们也不用赶鸭子上架,非拿C++和其它语言比——适用的场合本就不同,没得比。 Fallacy #4 …

事不过三,就此打住。况且,这三条难道还不够吗?如果你想到还有什么fallacy要补充的,请不吝回帖:) 我会考虑加到文章里面的:)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号