AI Pulse
📡 X 信号

ScarletKc 说 C++ 性能还在,但历史包袱快扛不住了

突然发现好多人正规学编程的第一门白月光语言都是 C++,我自己也是,往身边一问几乎全是。高中打 NOIP 竞赛那会天天死磕 C++,成天手搓各种算法和数据结构调奇葩 bug,那几年真是给我写吐了。

不过抛开当年的滤镜看现在的工程环境,说句实在话,C++ 现在确实有点不太行了。倒不是性能不够,主要是历史包袱太重。为了兼容几十年前的老代码,从 C++17 到 C++23 不停往里塞新特性,但老的坑一个都没法删。

未定义行为到处都是,编译慢,ABI 兼容让人头疼,外加 CMake 配第三方依赖那套折磨人的流程,放在今天开发心智负担实在太重了。现在团队里想安全地写 C++,往往得先定一堆规矩把大半语法禁掉。

如果是现在从零开新项目,C++ 以前占着的那些位置,基本都能被更现代的语言分走。

真需要极致底层性能、无 GC、精细控制内存布局的场景,比如写系统组件、网络基建或者高性能原生库,直接上 Rust 就很稳。所有权和借用检查在编译期就能把内存安全和并发数据竞争拦下来,光一个开箱即用的 Cargo 包管理就能省掉无数配环境的麻烦。

偏应用和业务层的场景,像做游戏、写桌面客户端、工具软件或者高性能后端,现在的 C# 早就不是十年前那个笨重的印象了。现代 .NET 有了 Span、值类型优化、SIMD 还有 Native AOT,性能上限很高,但开发效率和工程体验比写 C++ 舒服太多,平时根本不用提心吊胆去防野指针和内存泄漏。

当然说可被取代,主要还是指新项目选型。像虚幻引擎、浏览器内核、数据库还有 AI 底层的推理算子库这些攒了几十年的基建,存量代码和生态摆在那,没人会闲着没事去推倒重写,C++ 在这些地方肯定还会存在很久。

只是对大多数开发者和新业务来说,现在确实没什么非写 C++ 不可的理由了。留着当心里的白月光挺好,真干活还是放过自己吧。

查看 X 原帖

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新