写点什么

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

评论

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

互联网电商项目天花板,从立项到交付快速落地,真正帮你解决大型互联网项目经验欠缺的短板

Java全栈架构师

程序员 面试 项目 架构设计 程序员进阶

LabVIEW控制Arduino采集热电偶温度数值(进阶篇—2)

不脱发的程序猿

单片机 LabVIEW Arduino VISA 采集热电偶温度数值

华为云AppCube带你5分钟开发微信小程序

乌龟哥哥

6月月更

Hexo + Github从零搭建个人博客

梁歪歪 ♚

Hexo 博客搭建

让开发效率飞速提升的跨端开发神器

Geek_99967b

小程序 小程序容器

阿里6月终于有HC了!耗时两月足足面试13轮成功入职阿里!拿到32*15Offer

Java全栈架构师

Java spring 程序员 面试 程序人生

Disruptor 高性能堆内队列 系列一

Nick

Java Disruptor 队列 高性能 6月月更

答应我:监听日志文件变化的这三种方法你一定要会!推荐第三种!

Java全栈架构师

Java 程序员 面试 IDEA 代码人生

2022年SaaS行业十大趋势:SaaS的新机遇有哪些?

小炮

InterpreterPattern-解释器模式

梁歪歪 ♚

设计模式

Flutter的整体架构

Geek_99967b

小程序 小程序容器

跨平台方案的比较

Geek_99967b

小程序 小程序容器

Flutter 利用 Redux 中间件完成购物清单离线存储

岛上码农

flutter ios 前端 安卓开发 6月月更

同心助力,战役有AI

开源社

人工智能 疫情防控

孙勇男:实时视频 SDK 黑盒测试架构丨Dev for Dev 专栏

声网

自动化测试 Dev for Dev

scp 高效操作之避免 zsh 路径展开

Nick

Linux zsh 6月月更 高效操作 scp

使用IDE并不是懒癌表现

Geek_99967b

小程序 小程序容器

开源生态|超实用开源License基础知识扫盲帖(上)

Orillusion

开源 WebGL 元宇宙 Metaverse webgpu

企业网站如何快速被搜索引擎收录

源字节1号

每日一题 | LeetCode 1 两数之和

武师叔

Python 算法 JAV A Leet Code 6月月更

5分钟了解SDN控制平面

穿过生命散发芬芳

SDN网络 6月月更

红利、辛苦钱、利润和工资【读书笔记】

FunTester

App中快速复用微信登录授权的一种方法

Speedoooo

APP开发 微信授权 微信登录

FinClip2022重要功能汇总

Speedoooo

微信小程序 APP开发 小程序容器 微信登录

leetcode 51. N-Queens N 皇后(困难)

okokabcd

LeetCode 搜索 算法与数据结构

「技术人生」第8篇:如何画业务大图

阿里巴巴中间件

阿里云 云原生 技术文章

Java设计模式学习总结

梁歪歪 ♚

设计模式

过去一周区块链热点回顾|BAYC项目具有被无限铸币的风险

区块链前沿News

Hoo

PC端实现运营小程序,是否能再创PC时代又一春!

Geek_99967b

小程序 小程序转app

深入浅出-如何安全的传输密码

梁歪歪 ♚

加密

面试官:执行一条 SQL 语句,期间会发生什么?

Java全栈架构师

Java MySQL 数据库 程序员 面试

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