当前位置: 首页 > news >正文

优秀!19年后,它再次成为TIOBE年度编程语言

新年伊始,TIOBE发布了2022年度编程语言,C++时隔19年再度登顶,成为2022年最受欢迎的编程语言。TIOBE在2003年首次统计编程语言的流行指数时,C++便成为年度编程语言。2022年,C++获得了最高的人气+4.62%,紧随其后的是 C (+3.82%) 和 Python (+2.78%)。

在最近的20年里,编程语言风云变幻,但C++的变现非常稳定,份额始终名列前五,C++作为一种高级面向对象语言,可以开发快速而庞大的软件系统,且性能极其出色,使得其经常成为开发者的首要选择。

这款将近40岁的编程语言,为何能如此坚挺,且再次崛起呢?

1970年,贝尔实验室研究员丹尼斯·里奇和肯·汤普森闲来无事,因为都喜欢玩一款Space Travel的电子游戏,一拍即合,决定自己开发,于是开始合作编写UNIX系统,并且顺手改进了一下B语言,两年后,它被正式命名为C语言。

歪打正着,C语言作为UNIX的“副产品”,迅速成为应用最广泛的系统程序设计语言。但C语言也存在一些缺陷,类型检查机制相对较弱、缺少支持代码重用的语言结构,造成用C语言开发大型应用程序比较困难。

1979年,丹麦计算机科学家本贾尼·斯特劳斯特卢开始改进C语言,以C语言为基础,借鉴了Simula的思想,增加了数据封装、继承、多态等面向对象的编程特性,又增加了模板等面向泛型编程的特性,提高了开发效率,加强了对大中型软件的适用性。

在1983年,C++正式发布,并在当年通过了ANSI标准化,从而成为一种正式的编程语言。随后,C++不断发展,向后发布了C++98、C++03、C++11、C++14、C++17、C++20。

C++在编程语言领域一直保持活跃,一个很重要的原因是它的“学习能力”,不断地吸收和引入其他编程语言的优秀特性来完善自己,不断发布各种特性的新语言标准。

比如最新发布C++20标准,提供了模板元编程、类型推导、范围for语句、运算符重载等许多新特性,参考了Rust的安全特性和Swift的简洁语法,提供了更为强大和现代化的功能。C++ 社区也不断推出新的编译器和工具,如 Clang/LLVM 与 GCC, 这使得C++能够更好的支持新的架构和平台。

C++作为一种面向对象的编程语言,有很多优点,拥有面向对象编程、泛型编程和模板编程等强大特性,能够支持高性能计算和嵌入式系统开发,并支持跨平台开发。与Java、Python等语言相比,C++是运行在离操作系统最近的一种高级语言,可以直面系统底层API,SDK,跟C兼容,因此它的执行效率非常高。


它的缺点在于学习曲线较高,对于新手来说可能会有些棘手,特别是在内存管理方面,有时会引发难以调试的问题, C++的错误也可能很难排查。另外, C++在代码可读性和可维护性方面还有待提升,但这也取决于开发者的风格和编码规范。


C++为开发者提供了非常丰富和灵活的特性和工具,能够适应各种应用场景和需求。例如游戏引擎领域,很多主流游戏引擎,如Unreal Engine、CryEngine和id Tech等,都是用C++开发的。这些引擎能够为游戏开发者提供丰富的功能和工具,并在游戏性能方面表现优异。

操作系统领域,很多操作系统的核心部分,如Windows、Linux和macOS等,都是用C++开发的。这些操作系统能够提供稳定和高效的运行环境,并能够支持各种应用程序。

软件工具领域,很多成功的软件工具,如Adobe Photoshop、AutoCAD和Microsoft Visual Studio等,还有我们熟悉的QQ、各种杀毒软件、股票软件、浏览器都是用C++开发的。这些工具能够提供丰富和强大的功能,并能够满足各种专业领域的需求。

还有高性能计算和嵌入式系统,很多科学和工程领域的应用程序,如气象模拟、结构分析和分子动力学等,都是用C++开发的。这些程序能够提供高效和准确的计算能力,并能够处理大量复杂的数据。C++在嵌入式系统领域中也得到广泛应用,如智能家居、工业控制、智能交通系统等。

马上迎来40岁的C++,在编程届的地位仍然举足轻重。尽管随着其他语言的出现和发展,它的地位可能会受到挑战,但是它的高效性和灵活性使得它仍然有着很强的竞争力。在未来,C++可能会越来越重

相关文章:

优秀!19年后,它再次成为TIOBE年度编程语言

新年伊始,TIOBE发布了2022年度编程语言,C时隔19年再度登顶,成为2022年最受欢迎的编程语言。TIOBE在2003年首次统计编程语言的流行指数时,C便成为年度编程语言。2022年,C获得了最高的人气4.62%,紧随其后的是…...

剑指 Offer 26. 树的子结构

摘要 剑指 Offer 26. 树的子结构 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构),B是A的子结构, 即 A中有出现和B相同的结构和节点值。 一、子树解析 思路解析:若树B是树A的子结构,则…...

他是00年的,我们卷不过他...

现在的小年轻真的卷得过分了。前段时间我们公司来了个00年的,工作没两年,跳槽到我们公司起薪18K,都快接近我了。后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 最近和他聊了一次天,原来这位小老弟家里条…...

C#开发的OpenRA的OpenGL创建纹理流程

C#开发的OpenRA的OpenGL创建纹理流程 由于OpenRA采用的是OpenGL来显示游戏画面, 那么它就必然采用纹理来显示了。 并且由于它是2D的游戏,所以3D的模型是没有的,只要使用纹理贴图,就可以完全实现了游戏的功能。 OpenGL的纹理要起作用,需要经过一系列的动作。 先要使用glGen…...

3D目标检测(一)—— 基于Point-Based方法的PointNet系列

3D目标检测(一)—— PointNet,PointNet,PointNeXt, PointMLP 目录 3D目标检测(一)—— PointNet,PointNet,PointNeXt, PointMLP 前言 零、网络使用算法 …...

《设计模式》策略模式

策略模式 前言 先了解一下设计模式的几种类似: 行为型设计模式(Behavioral Design Pattern)是指一组设计模式,它们关注的是对象之间的通信和协作。行为型设计模式描述了对象之间的职责分配和算法的封装,以及如何在运…...

【离散数学】1. 数理逻辑

1.数理逻辑 2. 集合论 3. 代数系统 4. 图论 离散数学:研究离散量结构及相互关系的学科 数理逻辑集合论代数系统图论 逻辑:研究推理的科学 数学方法:引进一套符号系统的方法 数理逻辑是用数学方法研究形式逻辑的科学,即使用符号化…...

Java8新特性学习

Java8新特性学习为啥使用Lambda表达式Lambda表达式的基础语法无参无返回有参无返回一个参数多参单个语句体类型推断四大内置核心函数式接口其他接口方法引用与构造器引用Stream简介什么是StreamStream操作步骤创建Stream中间操作终止操作(终端操作)归约与收集并行流…...

SPARK outputDeterministicLevel的作用--任务全部重试或者部分重试

背景 目前spark的repartition()方法是随机分配数据到下游,这会导致一个问题,有时候如果我们用repartition方法的时候,如果任务发生了重试,就有可能导致任务的数据不准确,那这个时候改怎么解决这个问题呢? …...

图数据库中的 OLTP 与 OLAP 融合实践

在一些图计算的场景下,我们会遇到同时需要处理 OLTP 和 OLAP 的问题。而本文就给了一个 OLTP 与 OLAP 融合实践的指导思路,希望给你带来一点启发。 Dag Controller 介绍 Dag Controller 是 NebulaGraph 企业版的图系统,经过反复测试无误后已…...

Shader Graph简介

使用着色器(shader)和材质(material),我们能够创造出非常多有趣的效果。除了Unity自带的shader外,还可以自己编写shader或使用其他人所编写的shader。编写shader通常需要我们了解shader编程语言的语法和相关…...

kubectl

目录 一、陈述式资源管理方法 二、基本信息查看 2.1 基本信息查看格式 2.2 查看master节点组件状态 2.3 查看命名空间 2.4 创建/查看命名空间 2.5 删除(重启)命名空间/pod 2.6 查看资源的详细信息 2.7 创建副本控制器来启动Pod 2.8 查看指定命…...

实验室设计SICOLAB第三方检测中心实验室设计

第三方检测中心实验室怎么设计?详细设计内容有哪些?功能区域有哪些?仪器有哪些?要多少面积?第三方检测中心实验室是一种独立的实验室,为客户提供各种测试和分析服务。以下是一个第三方检测中心实验室的详细…...

GPS经纬度转距离

function [pN, pE] distance_gps(lon1, lon2, lat1, lat2)d2r pi/180; % deg转radR 6371000.0; % 地球半径pN (lat2 - lat1) * d2r * R;pE (lon2 - lon1) * d2r * R * cos(lat2 * d2r); end...

7-周赛333总结

7-周赛333总结 还是只过了前两题,第三题又写了好久好久,然后也不知道错在了哪里,只过了部分题解,也许是思考不全面吧。下次也许先做第四题更好…第四题今天花了点时间 做出来了个大概 开心 :happy: 合并两个二维数组 - 求和法【…...

电子招标采购系统源码—互联网+招标采购

智慧寻源 多策略、多场景寻源,多种看板让寻源过程全程可监控,根据不同采购场景,采取不同寻源策略, 实现采购寻源线上化管控;同时支持公域和私域寻源。 询价比价 全程线上询比价,信息公开透明,可…...

SQL注入和XSS攻击

1、SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。 我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输…...

js Map的使用

前言:Map数据集可以理解为加强版的对象 一、for...of 1、对象不能用于for of,因其没有部署Iterator接口;其他数据集如:数组、Map、Set、Iterator对象等都可以用for...of2、使用for...of的优势: for of的循环体中可以…...

企业应该怎么管理香港服务器?

做好服务器管理,往往能为站长避免很多麻烦。用户租用服务器,除了希望它快速而安全,还有就是如何才能得到优质及时的售后和指导建议了。服务器供应商只提供服务器管理的基础服务,负责提供硬件、带宽和电力等服务,服务器…...

软件设计(十四)-UML建模(上)

软件设计(十三)-原码、反码、补码、移码https://blog.csdn.net/ke1ying/article/details/129115844?spm1001.2014.3001.5501 UML建模包含:用例图,类图与对象图,顺序图,活动图,状态图&#xff…...

douyin-downloader:从素材焦虑到创作自由的抖音内容获取方案

douyin-downloader:从素材焦虑到创作自由的抖音内容获取方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback…...

3个技巧让Sketch设计稿命名效率提升300%:Rename It插件终极指南

3个技巧让Sketch设计稿命名效率提升300%:Rename It插件终极指南 【免费下载链接】RenameIt Keep your Sketch files organized, batch rename layers and artboards. 项目地址: https://gitcode.com/gh_mirrors/re/RenameIt 想象一下这个场景:你刚…...

【硬件小达人-基础篇(1)】-电阻那些事儿

文章目录什么是电阻电阻的功率一定要降额使用电阻的额定电压和精度额定电压精度PCB设计中,电阻的作用1.限流电阻保护敏感元件常用经验2.分压电阻电压反馈ADC采集电路一些经验3.分流电阻4.上拉电阻/下拉电阻什么是上下拉作用一、 防止引脚悬空,消除外部干…...

SEO_中小企业如何低成本做好SEO推广的秘诀

为什么SEO推广对中小企业至关重要 在当今的数字经济时代,网络已成为中小企业营销的主要渠道。搜索引擎优化(SEO)推广不仅能够帮助中小企业提高在搜索引擎中的排名,还能带来更多的潜在客户。SEO推广常常被认为是一个高成本、高技术…...

汽车行业空气动力学仿真Fluent的license分点方案

汽车行业空气动力学仿真Fluent的License分点方案你是绝非老是在项目高峰时段发现Fluent的License不够用了,而且平时又有数来空闲许可在浪费?你是不光是也在担心合规风险,搞不好一不小心就超了额度,被软件商追着要钱?实…...

百考通:AI精准赋能开题报告,让学术研究全流程智能化

对于每一位学子与科研人而言,开题报告是学术研究的“第一粒扣子”,它不仅是研究方向的蓝图,更是顺利推进论文写作、获得导师认可的关键。然而,选题迷茫、文献梳理繁琐、逻辑框架搭建困难等问题,常常让开题之路步履维艰…...

BetterNCM安装器终极指南:3分钟搞定网易云音乐插件管理

BetterNCM安装器终极指南:3分钟搞定网易云音乐插件管理 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM安装器是一款专为PC版网易云音乐用户设计的强大插件管理器…...

【APS合集】20余份APS生产排成系统及与其他系统集成方案合集(PPT+WORD)

本方案面向“十五五”构建以约束优化算法为核心的APS智能排程系统,通过集成ERP、MES、SCADA及WMS,实现计划-执行闭环联动。旨在解决人工排产低效、资源冲突频发等痛点,支持分钟级动态重排与交期精准承诺,显著提升设备利用率与订单…...

第三方系统集成若依权限校验

假设系统A是由若依管理系统进行的二次开发,保留了若依的用户、权限、角色管理功能,第三方系统B想要调我们的系统A的接口,就得先集成我们的SDK,这样就可以通过我们系统A的权限、角色校验,从而完成接口调用 一 开发若依S…...

Qwen3.5-9B多模态应用:上传招聘JD截图生成面试问题+考察点分析

Qwen3.5-9B多模态应用:上传招聘JD截图生成面试问题考察点分析 1. 项目概述 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型,具备强大的多模态理解能力。该模型特别适合处理需要结合文本和图像信息的任务,比如从招聘JD截图中提取关键信息并生…...