C&C++论战之C++真的还有未来吗?

2016-02-19 21:35 9 1 收藏

图老师设计创意栏目是一个分享最好最实用的教程的社区,我们拥有最用心的各种教程,今天就给大家分享C&C++论战之C++真的还有未来吗?的教程,热爱PS的朋友们快点看过来吧!

【 tulaoshi.com - 编程语言 】

  Stephan Lavavej提出了一个非常有趣也很尖锐的问题:“C++的未来在哪里?”

  这个问题是有解的。没有哪个语言会成为永恒,不是吗?(尽管C语言现在依旧生机勃勃)我不希望C++在2017年,或者甚至在2057年也依然那么有活力。在计算机行业,50年已经是一个几乎不可思议的时间了;虽然到今年为止,晶体管已有60年的历史。所以,在我问“C++的未来在哪里?”这个问题的时候,实际上是想问在接下来的10年,20年或者30年,C++会有什么变化?

  在文章中,Stephan引经据典,提到了Bjarne Stroustrup发布的一篇关于C++的论文,和Alexander Stepanov关于C++底层机器模型的访谈。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  然后他指出,尽管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语言引起别人注意的论点:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  看上去C++将会被打入冷宫,只有几个顽固不化的分子坚守阵地,大部分人都已转投.NET编码阵营。因为C++和现代的工具集那么地不合拍,公司和开发人员在无路可走的时候才会选择它。真的好惨,C++本来可以使.NET平台上的一个非常优秀的语言。可悲地是,有些人却别有动机,说.NET开发人员都在使用其他的语言。

  Olivier Giroux担忧的是C++内存模型在未来的表现:

  在单个芯片里同时运行100多个线程的性能,和只运行2到8个的情况是非常不同的,尽管你知道将来的趋势是可以做到的。

  因为有足够多的线程同时运行,指令就非常充足,你可以将已有的指令全都塞满。很快,阿姆达尔定律(译者注:该定律指出在体系结构的优化设计过程中,应该挑选对整体有重大影响的部件来进行优化,以得到更好的结果。)就把你牢牢拴在内存接口处。在过去,我们用缓存设计解决这样的问题,但那要比一个超线程负载需要更多的分部一致性。

  所以,C++在性能方面最大的威胁可能来自硬件,因为通过C++现在提供的内存模型还不容易对其进行相应的编程工作。

  那么InfoQ中文站的读者对于C++作为一门语言的前景是如何理解的呢?它是会继续昂首上前,还是即将辉煌不再?

来源:https://www.tulaoshi.com/n/20160219/1626612.html

延伸阅读
   持久对象 (persistent objects)广泛应用于游戏、分布式数据库系统、多媒体以及图形应用程序中。目前C++并不直接支持持久性(persistence)(但有一些在C++未来版本中添加持久性和反射(reflection)的建议)。 !-- frame contents -- !-- /frame contents -- 持久对象可以在创建它的程序的作用域之外保持自身状态。...
一、功能 保证一个类仅有一个实例。 三、优缺点 Singleton模式是做为"全局变量"的替代品出现的。所以它具有全局变量的特点:全局可见、贯穿应用程序的整个生命期,它也具有全局变量不具备的性质:同类型的对象实例只可能有一个。 四、实现 教科书上的Singleton定义如下: class Singleton { public: static Si...
1.引言 !-- frame contents -- !-- /frame contents -- 还记得当年学数学、英语都有个窍门,那就是搞个错题集。经常复习一下这个错题集,就可以避免下次犯同样的错误。而几乎所有的程序员都是从犯错误开始的,我们也很有必要总结一下编程新手的常见错误,本文的目的在于此。文中所列出的都是笔者在项目开发中接...
1. C++虽然主要是以C的基础发展起来的一门新语言,但她不是C的替代品,不是C的升级,C++和C是兄弟关系。没有谁比谁先进的说法,更重要的一点是C和C++各自的标准委员会是独立的,最新的C++标准是C++98,最新的C标准是C99。因此也没有先学C再说C++的说法,也不再(注意这个"不再")有C++语法是C语法的超集的说法。 2. C++/CLI 和&...
在学习c/c+过程中,指针是一个比较让人头痛的问题,稍微不注重将会是程序编译无法通过,甚至造成死机。在程序设计过程中,指针也往往是产生隐含bug的原因。下面就来谈谈指针的应用以及需要注重的一些问题,里面也许就有你平时没有注重到的问题,希望能帮助各位读者理解好指针。 !-- frame contents -- !-- /frame contents -- ...

经验教程

986

收藏

80
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部