写点什么

C++ 真的还有未来吗?

  • 2007-09-17
  • 本文字数:1177 字

    阅读完需:约 4 分钟

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

这个问题是有解的。没有哪个语言会成为永恒,不是吗?(尽管 C 语言现在依旧生机勃勃)我不希望 C++ 在 2017 年,或者甚至在 2057 年也依然那么有活力。在计算机行业,50 年已经是一个几乎不可思议的时间了;虽然到今年为止,晶体管已有 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++ 现在提供的内存模型还不容易对其进行相应的编程工作。

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

查看英文原文: Stephan T. Lavavej on the future of C++

2007-09-17 21:262731

评论

发布
暂无评论
发现更多内容

通过 Netty、ZooKeeper 手撸一个 RPC 服务!

Yano

Java 微服务 Netty RPC

消息队列构架设计文档

Chris Cheng

9个国外最佳免费编程学习一站式网站,谁用谁知道!

北游学Java

Java c++ php JavaScript

架构实战营-模块3-作业

笑春风

消息队列详细设计架构文档

Hesher

架构 MQ Architecture 消息队列 架构实战营

架构实战营 模块三:学习总结

👈

架构实战营

架构训练营——模块2作业

圆心角

Java Stream 源码分析

Yano

Java stream

模块3 学习总结

TH

架构实战营

Spark中将DAG划分为Stage核心算法

五分钟学大数据

spark 5月日更

【架构实战营】第3模块作业

swordman

架构实战营

自研集群 + MySQL 存储详细架构文档

@oo?金樱子

消息队列架构设计

俞嘉彬

架构实战营

架构实战营模块三作业

冷大大

作业 架构实战营 模块三

applet跨域访问安全性问题(java.security.AccessControlException:access denied)

xcbeyond

跨域 5月日更 疑难杂症

用组合式创新模型做产品建模

石云升

组合式创新 5月日更 产品建模

Semaphore

wzh

Java 并发 java工具类

HBase与Hadoop的关系

大数据技术指南

HBase 5月日更

一文看懂 Go 的数据类型

Rayjun

Go 语言

【LeetCode】制作 m 束花所需的最少天数Java题解

Albert

算法 LeetCode 5月日更

架构实训营 作业三——消息队列架构设计文档

开拓纪

第三章作业 #架构实战营

优秀程序员都在注意的十个点

好好学习,天天向上

Java 设计模式 代码 技巧

假如只剩下canvas标签

执鸢者

大前端 canvas

模块3作业 消息队列架构设计文档

TH

架构实战营

第三课作业

杰语

模块三作业 - 消息队列系统架构设计文档

青鸟飞鱼

架构实战营

模块3作业 3

wade

#架构实战营

读写锁

wzh

Java 并发编程 并发 JUC

ARTS - week 8 补打卡

steve_lee

前端百题斩[001]——typeof和instanceof

执鸢者

面试 大前端

架构训练营模块3作业《消息队列架构设计文档》-江哲

江哲

C++真的还有未来吗?_.NET_James Vastbinder_InfoQ精选文章