2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

2012,C++,学,还是不学?

  • 2012-02-06
  • 本文字数:1875 字

    阅读完需:约 6 分钟

珠三角技术沙龙组委会成员、发起人之一赖勇浩近期的一篇博客引起社区内热烈讨论。他在其中认为:C++ 是2012 年不宜进入的三个技术点之一;其他两个是: ActionScript/MXML , 线程

赖勇浩对于“不宜进入”的定义是:

如果你现在不是这三个技术点的专家,并且手上没有使用这三个技术点的项目,进入这三个技术点仅为技术储备,那么就“不宜进入”。

至于为什么不宜进入,赖勇浩认为根本原因在于:

标准化过程中的超长流程,一次次将 C++ 推向深渊。

接下来,赖勇浩首先回顾了 20 世纪 90 年代:

其实在 90 年代,计算机的运算能力有限,市场上非常需要一款性能较高、抽象较强的编程语言,C++ 获得了成功,但它标准化的时间过长,造成各种编译器有各自互不兼容的“方言”,成了它的第一个软肋。

然后,赖勇浩又指出:“C++ 在 21 世纪的第一个十年里仍然地位稳固”,其原因在于:“Linux 和 MacOS X 大获成功,在这两个平台上 C++ 都是非常有竞争力的编程语言,C++ 自然水涨船高。”

但是,赖勇浩提出开发效率成为阻挡更多人采用 C++ 的另一个因素:

但随着 web2.0 和 web app 概念的兴起,以及 CPU 的主频进一步提升,服务器端编程语言渐渐地对执行效率不再敏感,而是更在意程序员的开发效率,众多的脚本语言开始蚕食 C++ 的市场份额⋯⋯新兴的贵族是动态语言。面对动态语言在开发效率上的强劲挑战,C++ 社区除了在 2003 年对 C++98 做了小小的 patch,基本上睡着了,完全没有应对之策,哦不,连应用的姿态都没有。

在赖勇浩看来,

进入 21 世纪的第二个十年,⋯⋯在这个十年,我们需要这样的编程语言: 1. 能充分利用现代 CPU 的计算能力,不仅仅是多个核心,更是巨大的 L1/L2/L3 Cache、超线程等;
2. 能够大量减小异步 I/O 的性能提升的同时带来的副作用:异步编程的复杂性以及对可维护性的伤害

两句话其实也可以压缩为一句:需要有更好的并发模型的语言。

上述主要针对服务器编程领域,在桌面和移动领域,赖勇浩认为:

rust 会进入桌面开发,google go 肯定会顺道啃一口。而移动设备方面,⋯⋯编译型语言加脚本的模式就会占大头⋯⋯C++ 还是前景堪忧。

最后,赖勇浩的总结是:

回首 C++ 的 30 年,展望它的未来,总结起来可能就是:标准化流程拖死人了。如果不是 15 年不能标准化,java/c# 的搅局可能不会出现;如果在 2005 年能够应对动态语言……如果云时代有更好的并发模型……

对于赖勇浩的观点,知乎上有人提出质疑,知名 C++ 程序员陈硕做出了回应,他认为:

C++ 目前坚守的阵地:服务端基础架构(例如淘宝 OceanBase 是 C++ 写的),PC 客户端的 3D 游戏(DirectX 是提供 COM/C++ 接口),某些嵌入式上的 (准 / 软) 实时程序,其他 Java/C#/Python 未能涉足的领域(会遇到 C 的抵抗)。如果你正好在这几个领域,我看不出有担心的必要。

陈硕还指出:

C++ 目前仍然是最快的语言(见 google language benchmark 论文和 shootout.alioth.debian.org/ )。如果你的应用领域确实在乎这个性能⋯⋯那么 C++ 仍然是不二之选。

技术博客酷壳的博主陈皓对此次讨论也发表了一篇博客《Why C++ ? 王者归来》,他在其中引用了 Herb Sutter 的一次演讲,Herb Sutter 是 Exceptional C++ C++ Coding Standards 的作者、ISO C++ 委员会的主席、C++/CLI 首席架构师、Microsoft 的软件架构师。这次演讲是 C++ and Beyond 2011 上的一次公开演讲。

陈皓在文中摘取了本次演讲的幻灯片,并做了一些注释和内容提要。 他首先指出:

为什么 C++?因为 Performance per $,也就是说 performance 就是钱,这个分成三个方面,

  • 耗电,芯片的耗电量,移动设备的耗电量,家用电脑的耗电量都和钱有关系。
  • 资源,家用电脑和移动设备上的处理器资源有限,因为要让一般消费者买的起。
  • 体验,在更小的设备上会有更好的体验,有更好的体验就可以挣更多的钱。

此后,他也回顾了 C++ 的历史,并借助幻灯片中的一张表格指出:

如果把我们的对编程语言的需求总结为四个:效率,灵活,抽象,生产率。那么,C 语言玩的是前两个,而 C++ 玩的是前三个,Java 和 C#玩的是后两个(抽象和生产率) 任保一种设计都不可能让你什么都要的,这就是 Trade-Off——什么事都需要交换的。

接下来,陈皓从移动设备、数据中心两个角度,说明了 C++ 的性能效率的重要性,同时还指出:

当然,不是 C++ 不注重 开发效率,看看 C++0X 的标准引入了多少东西我们就知道了。但是本质上,C++ 还是致力于性能和抽象的完全平衡

目前仍在进行的 2011 InfoQ 读者年度深度调查中,有超过 30% 参与调查的读者主要使用的语言是 C 和 C++,也欢迎正在阅读本文的您参与调查,告诉我们您使用哪些语言,同时也可以在文后留下您对本次讨论的想法。

2012-02-06 01:597794
用户头像

发布了 479 篇内容, 共 180.5 次阅读, 收获喜欢 53 次。

关注

评论

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

开源能源管理系统 MyEMS:技术深耕与实践赋能的深度解析

开源能源管理系统

开源 能源管理系统

从零搭建AI应用:Coze还是Dify?看完这篇不再纠结

测吧(北京)科技有限公司

【跨国数仓迁移最佳实践8】MaxCompute Streaming Insert: 大数据数据流写业务迁移的实践与突破

阿里云大数据AI技术

阿里云 数据仓库 数据迁移 MaxCompute

阿里云携手MiniMax构建云原生数仓最佳实践:大模型时代的 Data + AI 数据处理平台

阿里云大数据AI技术

阿里云 数仓 Dataworks Minimax

用先进算力,为智驾提速:华为云CloudVeo智能驾驶云服务正式发布

极客天地

K8s集群+Rancher Server:部署DolphinScheduler 3.2.2集群

白鲸开源

大数据 开源 Kubernetes 云原生 Apache DolphinScheduler

通过工具增强 LLM Agent 能力:veRL+ReTool 的完整实践指南

火山引擎开发者社区

字节跳动

海外达人营销常见误区与破解之道

Wolink

海外社媒营销 海外营销推广 达人营销

超级精灵再进化 smart发布EHD超级电混技术:每一程,比增程更成

极客天地

从零开始学MCP | MCP 协议核心原理解析

测试人

态势感知:数字时代的安全前哨与战略支撑

沃观Wovision

态势感知 舆情监测 沃观Wovision 舆情监测系统

腾讯再次出手,现在视频号里也能直接召唤元宝了

苍何

“操作系统开源与 AI 进化”分论坛全议程来啦 | 2025 云栖大会

OpenAnolis小助手

AI 操作系统 云栖大会 龙蜥社区

深度探讨基础软件驱动下的智驾进化之道 |《AI 进化论》第四期

OpenAnolis小助手

操作系统 智算 AI进化论

小程序热更新赋能App动态引擎无缝迭代

xuyinyin

闲鱼商品列表API数据解析

tbapi

闲鱼API 闲鱼数据采集 闲鱼商品列表数据 闲鱼关键词搜索接口

突破性AI设计工具Subframe:可视化React/Tailwind代码生成方案

qife122

前端开发 React

深度探讨基础软件驱动下的智驾进化之道 |《AI 进化论》第四期

阿里云基础软件

操作系统 智算 阿里云 PAI-TurboX AI进化论

能效提升 × 碳减排双驱动:MyEMS 开源能源管理的双重价值实践

开源能源管理系统

开源 能源管理系统

合合信息参编《数据产业图谱(2025)》,助力绘制中国数字经济发展新蓝图

合合技术团队

人工智能 大数据 算法

腾讯Youtu-Agent正式开源,加速推动智能体从研究走向应用

极客天地

Coze教程 | 第2章:Coze开发环境搭建与配置

测吧(北京)科技有限公司

JNPF报表设计,解锁数据呈现新方式

引迈信息

睿思芯科正式加入龙蜥社区,携手共建 RISC-V 服务器生态新标杆

OpenAnolis小助手

操作系统 龙蜥生态

国产 AI 再放大招!智谱开源 GLM-4.5V,视觉推理能力“屠榜”全球

测试人

【硬核干货】把 DolphinScheduler 搬进 K8s:奇虎 360 商业化 900 天踩坑全记录

白鲸开源

开源 Kubernetes 技术分享 Apache DolphinScheduler 奇虎360

火山引擎多模态数据湖落地深势科技,提升科研数据处理效能

新消费日报

从库存到利润加速器 AI商品计划重塑零售战略

第七在线

开源能源管理系统 MyEMS:赋能能源高效管理的创新利器

开源能源管理系统

开源 能源管理系统

SeaTunnel 如何给 MySQL 表做“精准切片”?一篇读懂 CDC 分片黑科技

白鲸开源

MySQL 大数据 开源 CDC Apache SeaTunnel

2012,C++,学,还是不学?_编程语言_郑柯_InfoQ精选文章