写点什么

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:262293

评论

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

【建议收藏】Redis知识干货汇总

利志分享

redis 面试

[Day33-01]-[二叉树] 路径总和

方勇(gopher)

LeetCode 二叉树 数据结构和算法

Kotlin 入门笔记(一)

如浴春风

5月月更

极简Java数据结构-环形队列突破上限

芝士味的椒盐

Java 数据结构 5月月更

Java 从一个 List 中删除重复的元素

HoneyMoose

Git进阶系列 | 1. 创建完美的提交

俞凡

git 最佳实践

网站开发进阶(四)Tomcat Server处理http请求过程详解

No Silver Bullet

tomcat HTTP 网站开发 5月月更

架构实战营模块一作业

哈啰–J

辛亥篇 「虛幣」起役《「內元宇宙」聯載》

因田木

類電子病歷

抽象类——加油站加油

程序员猪小哼

安装Maven到Idea配置Maven竟如此简单

芝士味的椒盐

Java maven 5月月更

Netty篇之内存管理器

邱学喆

内存管理器 netty内存管理 jemalloc管理器

SpringSecurity 表单登录

急需上岸的小谢

5月月更

Continuous Integration 对 ABAP 技术栈来说意味着什么

汪子熙

持续集成 SAP abap 5月月更 持续优化

电商秒杀系统设计

Geek_36cc7c

maven构建docker镜像三部曲之二:编码和构建镜像

程序员欣宸

Docker maven java 5月月更

Java 如何逆向遍历一个 List

HoneyMoose

【51单片机】矩阵键盘

謓泽

5月月更 51单片机

Nation3云上国家--一场基于Web3的社会实验(32/100)

hackstoic

DAO web3 nation3

全链路压测(十):测试要做的准备工作

老张

性能测试 全链路压测 稳定性保障

公众号运营推广方式

源字节1号

软件开发

LeetCode 242:有效的字母异位词

武师叔

5月月更

DevOps系列之 —— DevOps概览(一)软件产业和交付模式发展趋势

若尘

DevOps 5月月更

Git进阶系列 | 2. Git中的分支策略

俞凡

git 最佳实践

OKR工具有哪些?如何选择适合自己的?

爱吃小舅的鱼

C语言总结_字符串函数封装练习

DS小龙哥

5月月更

阿里巴巴Java性能调优实战

Joseph295

Gitea 如何配置自定义页面

HoneyMoose

从源码深入了解Dio 的 CancelToken

岛上码农

flutter 安卓开发 跨平台开发 ios 开发 5月月更

洞见科技李博:科技向实,隐私计算规模化应用吹响号角

洞见科技

金融科技 隐私计算

redis性能调优--内存使用率过高

en

redis 内存

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