历时近半个世纪,C++ 为什么依旧流行?

来源: OSCHINA
2021-07-28

尽管自 2001 年以来,C++ 在 TIOBE 编程社区指数榜上逐渐呈现出了一个下滑趋势,甚至有人觉得 C++ 已经像 COBOL 一样“死了”。但 SDTimes 认为,C++ 仍然像以前一样有生命力、有活力且有意义。

TIOBE 7 月指数显示,C++ 依旧是地球上第四大最受欢迎的编程语言,占据了近 7.5% 的份额,紧随 C、Java 和 Python 之后。虽然这与 2003 年该语言在 TIOBE 中接近 18% 的峰值相比确实有所下降,但其流行程度仍然是不可否认的。

作为一种在首部 iPhone 发布前近十年就已标准化的编程语言,C++  如何以及为何在云计算和高性能计算的时代仍然具有相关性?SDTimes 做出了如下分析:

Still popular, still relevant

C++ 在大众市场上持续存在的核心原因是什么?性能、速度、成熟度等:

  • 性能 — C++ 仍然是高性能软件的黄金标准。Adobe 使用它、Unreal Engine擎基于它、Chrome 和 Firefox 也是如此。
  • 速度 — 在处理速度仍是瓶颈的时候,C++ 依旧被用来创建市场上一些最快的软件。
  • 成熟度 — 很明显,C++ 已经存在近 40 年的事实意味着大多数软件问题已经得到解决。
  • 生态系统 — C ++ 是大多数编程课程的核心部分,拥有大量的开发工具、第三方组件、库、手册等。
  • 嵌入式 — 大多数嵌入式系统,更不用说物联网设备,都是由用 C/C++ 编写的固件驱动的。

Not just legacy

另一方面,也有一些优秀的“老”项目在推动着 C ++ 的持续发展,很多几十年前开始的 C++项目(或从 C++ 前身如 C 开始的项目)至今仍在运行。例如,UNIX、甲骨文的 MySQL、Linux 内核、微软的 Office 和Visual Studio,甚至苹果的一些 OS X,都是采用 C++ 编写的。除此之外,C++ 也主导着当今大部分的新开发项目。 

C++ 是游戏的主要语言,为 Unreal Engine 和当今许多最大和最流行的游戏提供动力。同时,C++ 还主导着物联网、国防软件和制造业应用;几乎所有被认为是实时的东西都采用了 C++ 语言。 

C++ 也仍然被用于性能密集型工作站应用的新开发(如 CAD/CAM 软件)或基于计算密集型服务器的应用程序(如高频交易)的新开发。它被应用于虚拟机、设备驱动程序、运行时解释器和工具。C++ 还在人工智能驱动应用程序的开发中承担了重任,并且仍然是谷歌 Android 操作系统的核心部分。

The bottom line

 进入第四个十年的 C++ 仍在普及。C# 和 Java 等较新的语言将在未来几年继续引领市场,而 C++ 也将继续保持并驾齐驱。

C++ 是一种强大且不断发展的语言,它帮助了并将继续帮助创建我们所知的计算基础。C++ 的下一次更新定于 2023 年,它有着庞大的开发者社区和庞大的知识库,更不用说最佳实践、外部库、组件和工具,这些东西在一些新语言中需要几十年才能成熟。C++ 在现代计算中根深蒂固,不会消亡。 

展开阅读全文
8 收藏
分享
加载中
精彩评论
学习Rust这些,语法总是可以学会的,但你数学不行,抽像能力差,算法差,写不出自己的东西,那还是选择生态环境好的C++比较实用。
2021-07-28 11:21
11
举报
因为cpp可以完成你一切想要的东西,这就是理由。别的哪个行?
2021-07-29 09:41
8
举报
十年之后看,我觉得 rust 连 go 的占有量都比不过
2021-07-30 10:29
5
举报
linus大佬贬低c++十几年了吧,碍着c++发展了吗?他贬低gcc,gcc现在没人用了吗?
2021-08-02 09:32
4
举报
因为c++没有竞品。
2021-07-29 09:16
4
举报
最新评论 (39)
本质上是因为计算机的硬件就是那么设计的,硬件的设计不变,对于硬件友好的 C/C++ 就永远不可能消失
2021-08-03 09:20
0
回复
举报
就像少林武功里面的“罗汉拳”,即使有了易筋经,罗汉拳还是不会消失
2021-08-02 16:45
0
回复
举报
因为C++完美兼容C,而且不像objective-c那样过度依赖单个公司的支持。
兼容C很重要,因为除了软件行业外,电子信息行业自动化行业都是用C的,因为可以方便操作RAM。
2021-08-02 11:28
3
回复
举报
主要是库吧,,比如qt、opencv,,都没有很好的替代品
还有最近几年大火的人工智能,tensorflow、pytorch也是C++写的
2021-08-02 09:54
0
回复
举报
Rust 在 web3.0 的时候可能会大放异彩。
2021-08-02 09:38
0
回复
举报
为什么linux的内核用c, 不用c++呢?
2021-08-02 08:44
1
回复
举报
Linus写linux时,c流行,c++虽然基于c,增加了面向对象,也因此带来很多问题,以后慢慢解决成熟起来的。
2021-08-02 08:57
0
回复
举报
Linus: "C++ is such a bad language!" - https://medium.com/nerd-for-tech/linus-torvalds-c-is-really-a-terrible-language-2248b839bee3
2021-08-03 09:43
0
回复
举报
这个言论就是那个时代,Linus说出来的,当时c++的确问题多多,现在已经非常成熟好用了。
2021-08-03 15:20
0
回复
举报
我猜你可能漏掉这篇文章中的几个关键时间点:
1. He started bombarding C++ as early as 2007.
2. This is not over yet. In 2010, Linus posted a series of C++ messages on the mailing list. According to him, C++ is really a terrible language
3. So Linus, who heard this comment (posted on 15 Apr, 2021), did not control the sneer. He said contemptuously: “C++ can’t solve the problem of the C language at all, it will only make things worse. This is a really bad language.”
2021-08-05 06:59
0
回复
举报
c++17已经变得很好用了。可能大厂编码人员的水平参差不齐,上手这么一个高度灵活语法的语言确实成本很高。小团队用cpp编码效率还是解耦程度都很舒服
2021-08-06 10:07
0
回复
举报
c++没啥不好的,新型语言其实也没多好。
2021-07-30 10:25
1
回复
举报
因为cpp可以完成你一切想要的东西,这就是理由。别的哪个行?
2021-07-29 09:41
8
回复
举报
C ?
2021-08-04 09:16
1
回复
举报
我说的包括应用层和语法层哦😁
2021-08-06 10:05
0
回复
举报
因为c++没有竞品。
2021-07-29 09:16
4
回复
举报
现在用c++是由于大量代码已经用c++写了
未来会过度到rust
时间会比较长,估计20年
2021-07-28 22:25
0
回复
举报
更多评论
39 评论
8 收藏
分享
返回顶部
顶部