Stephan Lavavej提出了一个非常有趣也很尖锐的问题:“C++的未来在哪里?”
这个问题是有解的。没有哪个语言会成为永恒,不是吗?(尽管C语言现在依旧生机勃勃)我不希望C++在2017年,或者甚至在2057年也依然那么有活力。在计算机行业,50年已经是一个几乎不可思议的时间了;虽然到07年为止,晶体管已有60年的历史。所以,在我问“C++的未来在哪里?”这个问题的时候,实际上是想问在接下来的10年,20年或者30年,C++会有什么变化?
在文章中,Stephan引经据典,提到了Bjarne Stroustrup发布的一篇关于C++的论文,和Alexander Stepanov关于C++底层机器模型的访谈。
然后他指出,尽管C++作为一门语言一直关注性能的问题,但根据Herb Sutter在2005年发表的一篇关于并发的趋势以及语言必须演进以迎接这些挑战的论文,由于工艺的限制,底层硬件的发展现在处于一个不稳定的状态。Stephan说:
在C++改变最大的核心语言属性列表中,应该包括可变参数模板(Variadic Template)、概念和左值引用(rvalue reference)等。前两个会使得写模板更加有趣,这当然很好,因为模板是生产高效代码的一个很有力的方法。另外,第三个主要面向C++03中最为薄弱的领域之一——复制数值的趋势。
一个叫Jared的评论者也同意Stephan的观点,但对.NET能否像C++那么长盛不衰,没有太大的信心:
说得好,但是我相信C++会一直兴盛到2057年。实际上我认为C++会比.NET撑得更久。(我认为.NET最终会因为市场驱动而成为一个技术实体,但不好说)
Jim Grow不同意关于托管C++没有像其他.NET语言引起别人注意的论点:
看上去C++将会被打入冷宫,只有几个顽固不化的分子坚守阵地,大部分人都已转投.NET编码阵营。因为C++和现代的工具集那么地不合拍,公司和开发人员在无路可走的时候才会选择它。真的好惨,C++本来可以是.NET平台上的一个非常优秀的语言。可悲地是,有些人却别有动机,说.NET开发人员都在使用其他的语言。
Olivier Giroux担忧的是C++内存模型在未来的表现:
在单个芯片里同时运行100多个线程的性能,和只运行2到8个的情况是非常不同的,尽管你知道将来的趋势是可以做到的。
因为有足够多的线程同时运行,指令就非常充足,你可以将已有的指令全都塞满。很快,阿姆达尔定律(译者注:该定律指出在体系结构的优化设计过程中,应该挑选对整体有重大影响的部件来进行优化,以得到更好的结果。)就把你牢牢拴在内存接口处。在过去,我们用缓存设计解决这样的问题,但那要比一个超线程负载需要更多的分部一致性。
所以,C++在性能方面最大的威胁可能来自硬件,因为通过C++现在提供的内存模型还不容易对其进行相应的编程工作。
那么,您对于C++作为一门语言的前景是如何理解的呢?它是会继续昂首上前,还是即将辉煌不再?
相关推荐
对目前C++标准中一些缺陷的更改
c++讲解
在文件和目录操作方面,boost也有相应的组件,而在网络编程方面有socket++,还有boost::asio,未来的C ++0X中几乎肯定有一个网络编程和一个线程库。然而目前看来,ACE仍然是进行系统和高性能网络编程的首选,其地位...
可以说C++Builder是快速应用程序开发模式和可重用构件的一个完美的结合,代表着C++语言的未来发展方向。 C++Builder 5.5是Inprise公司(原Borland公司)于2001年最新推出的新一代的面向对象可视化快速编程工具,是继...
c++ 编成必备,学好c++ 掌握未来
C++14的标准在2014年的时候已经确定,而C++17标准正在制定当中,可以预见的未来,C++的发展会越来越好,C++的应用会越来越广泛,也会更受广大开发者地欢迎。 本书的内容来源于C++11项目实践,写作此书的目的是为了和...
Visual C++程序员职业规划
C++0x的工作已经进入了一个决定性的阶段。ISOC++委员会对C++0x的目标是使其成为“C++09”。这意味着我们要在2008年完成这个标准以便被ISO成员国批准。最后提交的标准设施将选自目前正被讨论的那些提案。为了按时完成...
未来教育的 计算机二级C++ 适合大学生或者考二级的人
作者综合性地论述了C++的发展历史,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景。全书共18章,分两大部分,其中第1部分(第1~9章)分别...
作者综合性地论述了C++的发展历史,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景。全书共18章,分两大部分,其中第1部分(第1~9章)分别...
1.熟悉Visual C++集成开发环境。 2.掌握结构化程序设计的方法,具有良好的程序设计风格。 3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。 4.在Visual C++集成环境下,能够编写简单的C 程序,并...
作者综合性地论述了C++的历史和发展,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景。 目录 ······ 出版者的话 专家指导委员会...
大学C++课程设计任务——火车票管理系统。 随着计算机技术的发展,人们对计算机智能化的需求越来越大,对软件的实用性、速度等性能的要求也越来越高。未来火车站的发展趋势是完全自动化的售票信息查询,网络售票,...
C++Builder XE5的Android开发版本有望最晚明年第一季度发布,但众所周知的是,Android使用Java可以开发出酷炫的应用界面,那么未来的C++Builder的表现会如何? 根据伊伯龙的路线图,跨平台界面开发将主要使用...
使用Visual C++实现CPU特权指令操作是一项重要的任务,因为这将使您能够操作计算机的核心组件。在本例中,我们将探讨如何将Visual C++与CPU操作结合...这将有助于推动计算机科学的发展,并为未来的创新打下坚实的基础。
条款32:在未来时态下发展程序 252 Program in the future tense 条款33:将非尾端类(non-leaf classes)设计为 抽象类(abstract classes) 258 Make non-leaf classes abstract 条款34:如何在同一个程序中结合 ...
闲来无事,用C++编了一个五子棋游戏 其中附有源代码,全部都是用C++编的 这个游戏电脑的智能在中级以上,可以 预测未来两步的棋型
随着新的C + +标准和技术报告2制定,多线程是C++未来的一大趋势。 TR2对将提供更高级别的同步设施,为更大程度的抽象允许,使编程多线程应用程序更简单,更安全。 本书为指导和引用C + +标准和TR2,是对现有程序员...
分享一本关于c++的书籍,希望它可以帮到喜欢C++的人,未来的程序就靠你们了,加油!