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

程序员的店小二 程序员的店小二     2022-12-18     204

关键词:

尽管自 2001 年以来,C++ 在 TIOBE 编程社区指数榜上逐渐呈现出了一个下滑趋势,甚至有人觉得 C++ 已经像 COBOL 一样“死了”。但 SD Times 认为,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++ 在现代计算中根深蒂固,不会消亡。 

寒假近半个月的收获

寒假已过去半个月,自己还是太懒,做的事情太少,很对东西都丢了,像css的很多属性和用法,一部分都忘记,果然还是经常用,才能更熟练。前些天在学Photoshop,曾经以为很简单,没想到,往深了学,东西太多,收获还是有不少,... 查看详情

c++为什么能重夺年度语言?

...什么概念?那一年Java的流行指数是14%。二、C++为什么衰落三、C++为什么重新流行1、C++为什么重新流行起来了呢?2、C++究竟做对了什么呢?3、根本原因没有解决,C++究竟凭什么?... 查看详情

科技云报道:历经半个多世纪的数据库未来还有什么值得期待?

科技云报道原创。近些年,数据库技术路线和产品层出不穷,令人眼花缭乱应接不暇。其中,有以MySQL、Oracle、PostgreSQL为代表的传统产品,也有以Aurora、Spanner等为代表的创新路线产品,还有工业数据库、时序... 查看详情

关于android注解这些基础,这些都不知道?历时半个月呕心之作(代码片段)

...聊,就静下心来收集内容来刷面试题。好在前前后后历时半个月,终于出土了😃饭要一口一口吃,路要一步一步走。先从注解,泛型聊起。后续在聊性能优化再到架构,音视频,flutter等 查看详情

设计趋势:网页之粗粝设计风格

...行艺术设计,存在了数十年。重新回归的粗野主义设计和半个世纪前的版本有所不同,而这些差异也正是它抓住你注 查看详情

零基础同事学习c++自学一个月与java上课半个月之后的一些总结

C++与java在语法上是相似的输出语句C++:cout<<输出语句java:System.out.print()两者相比之下C++的更为简洁,虽然java可以使用sout来快捷补完输出语句但是在读取时依然臃肿。输入语句C++:cin>>orgetline(cin,内容)输入语句java:Sca... 查看详情

Windows 中最流行的 C++ gui 框架是啥? [关闭]

】Windows中最流行的C++gui框架是啥?[关闭]【英文标题】:WhatisthemostpopularC++guiframeworkinwindows?[closed]Windows中最流行的C++gui框架是什么?[关闭]【发布时间】:2013-05-0816:29:15【问题描述】:现在有很多Windows应用程序。几年前,MFC可能... 查看详情

数据可视化是什么

  数据可视化(DataVisualization)起源于18世纪,WilliamPlayfair在他出版的书籍《TheCommercialandPoliticalAtlas》中第一次使用了柱形图和折线图。当时是为了表示国家的进出口量,在今天依旧这么使用。19世纪初,他出版了《Statistic... 查看详情

科技和女性的今天,《赛博格宣言》半个世纪前就预言了

...她当团队鼓励师了。这些科技给女性带来的变化,约半个世纪前,哈拉维(DonnaHaraway)1985年发表的一篇论文,就精准预测了。女性主义理论的预言,真的照进了现实,让团队的小伙伴们感到非常奇 查看详情

哪个是 C++ 程序领域中最流行的开源日志记录软件/程序? [关闭]

】哪个是C++程序领域中最流行的开源日志记录软件/程序?[关闭]【英文标题】:whichisbestpopularopensourceloggingsoftware/programinc++programarea?[closed]【发布时间】:2014-02-0306:52:33【问题描述】:哪个是c++程序领域最流行的开源日志软件/程... 查看详情

全息技术发展前景

  全息思想从提出到现在已经有半个世纪的时间了。在短短的半个世纪,全息技术的发展取得了重大的成就。想要更好的了解全息技术对现在以及今后的生产、生活产生哪些重要影响,就需要我们好好的梳理一下全息技术的发... 查看详情

c++对象模型是什么,对象的内存布局和结构问题

...得不去说的因为c++的入门最先接触的就是c++对象。在上个世纪一共有三种c++对象模型,它们的出现可以说是一个不断优化的过程最终只有我们目前看到的c++对象模型在使用。了解c++对象模型非常重要,了解之后对于对象的内存布... 查看详情

什么是爵士乐?和摇滚乐有什么区别?

...同、音乐来源不同。一、起源时间不同1、摇滚:起源于20世纪40年代末期的美国,20世纪50年代早期开始流行,迅速风靡全球。2、爵士:于19世纪末20世纪初源于美国。二、特点不同1、摇滚: 以其灵活大胆的表现形式和富有激... 查看详情

java技术栈:java编程语言概述

Java是一种编程语言,起源于20世纪90年代初Sun公司的一个叫Green的项目,该项目主要目的是是开发嵌入家用电器的分布式软件系统,从而使电器更加智能化。因为项目小组成员皆为C++的高手(那个年代正式C++流行的年代),于是... 查看详情

图解电动汽车:电动汽车发展历程

电动汽车的出现比燃油汽车早了近半个世纪,经历了短暂的繁荣而迅速走向衰落。如今,随着全球能源结构转型,电动汽车又迎来了新的春天。电动汽车的起源电动汽车最早可以追溯到19世纪初,虽然业界对谁是第一个发明电动... 查看详情

关于世纪互联azure无法充值问题处理

前段时间发现世纪互联的Azure账户余额不多了,于是想要再充值以避免服务被停止带来麻烦,但是在充值的过程中遇到下图中的问题提示登录会话已到期,请重新登录。但是这个窗口明明是刚刚才登录的,而且按照提示退出重新... 查看详情

请问:style是什么意思!

...ressbecamepopularatthestartofthe1980's.这种款式的服装流行于20世纪80年代初。三、流行款式Thisspraywillkeepyourhairinstyleforalongtime.这种喷发胶能使您的发型保持很久。四、风度;体面,时髦Bournemouth,youhavetoadmit,hasstyle.你不得不承认伯恩茅... 查看详情

什么是java

...有功能强大和简单易用两个特征。“Java是怎么来的?”20世纪末,硬件领域出现了单片式计算机系统,这种系统价格低廉,立即引起了研究人员的注意,由于C++程序过于复杂和庞大,研究人员开发了一种称为Oak的面向对象语言。... 查看详情