Python 统治世界!TIOBE 5月榜单发布

整理 | 苏宓

出品 | CSDN(ID:CSDNnews)

一月一度更新的 TIOBE 编程语言排行榜迎来了 5 月新榜!

本月榜单一出,最大的看点毫无疑问是:Python 一路高歌,再次拉开了与其他编程语言的差距,甚至刷新了自己的历史纪录。这个语言的热度已经不仅仅是“受欢迎”那么简单,越来越像是走向“统治地位”。

这背后到底说明了什么?除了 Python,榜单里还有哪些变化值得我们关注?一起来看看这份热度榜单背后的技术动向。

图片

Python 统治编程世界!

曾经一句「Life is short,you need Python」(人生苦短,我用 Python)的老梗如今正在成为现实。

根据 TIOBE 最新数据显示,Python 的受欢迎程度在上个月再次大幅上升了 2.2%,总占比达到了 25.35%。这个比例几乎创下 TIOBE 指数有史以来编程语言占比的最高纪录——仅次于 Java 在 2001 年 6 月(也是 TIOBE 指数刚推出、追踪语言数量较少的时期)和 2001 年 10 月的表现。

同时,Python 还打破了另一项纪录:它与第二名 C++ 之间的差距首次超过了 15 个百分点,这在 TIOBE 榜单的历史上还是第一次出现。

这意味着什么?现实来看,Python 在数据科学、自动化测试等维度已经形成压倒性优势。此次突破 25% 占比,标志着 Python 不再只是“热门”,而是真正意义上的“主导语言”。

Python 简洁的语法和庞大的库生态降低了开发门槛,尤其适合初学者和跨学科开发者(如科学家、分析师等)。也正因为如此,除了专业开发者,越来越多“非程序员”也在用 Python 写工具、搞自动化。

当然,Python 的这轮增长与 AI 浪潮密切相关。PyTorch、TensorFlow、pandas 等 AI 和数据处理库几乎都以 Python 为第一语言。在大模型训练、数据标注、推理部署等环节,Python 是事实标准。这一趋势在可见未来可能还会持续。

不过,尽管 Python 风头正劲,但在一些要求极高性能、极高稳定性的领域,比如系统底层开发、嵌入式设备、实时控制系统,C/C++、Rust、Ada 等语言依然有不可替代的优势。

TIOBE CEO Paul Jansen 指出,其他语言之所以仍然存在,其根本原因是 Python 的性能较低,并且作为解释型语言,它在运行时更容易发生不可预期的错误。因此,在对安全性或实时性要求极高的场景中,仍需依赖其他编程语言。但在大多数其他应用领域,Python 正在稳步走向统治地位。

此外,从 Top 20 榜单中,我们也可以看到,不止 Python,其他与数据科学相关的语言也在全面普及,如 R 语言的排名从去年同期的第 24 名大幅跃升至今年的第 12,增幅显著。这些都说明,在 AI 和大数据仍在快速演进的今天,开发者对数据分析、建模与可视化的需求持续扩大,Python 和 R 成为了最自然的选择。

相较之下,C、C++ 和 Java 等“老三样”依然稳居前列,虽然增幅不大,但显示出它们在系统开发和大型项目中的基础地位仍未动摇。尤其是 C++,守住了其在高性能领域的重要性。而 Java 虽然多年未再引领潮流,但在企业应用场景中依然不可或缺,因此排名稳定也并不令人意外。

图片

其他编程语言

以下为 Top 21-50 的编程语言榜单:

第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):ActionScript, Algol, Alice, APL, bc, CHILL, CL (OS/400), Clipper, CLIPS, Clojure, Crystal, Curl, Eiffel, Elm, Erlang, F#, Forth, Groovy, Hack, Icon, Inform, Io, JScript, LabVIEW, Ladder Logic, Modula-2, Mojo, MQL5, NATURAL, Nim, OCaml, Occam, OpenCL, PL/I, PostScript, Q, Ring, S, Scheme, Smalltalk, SPARK, Stata, Tcl, Transact-SQL, Vala/Genie, VHDL, Wolfram, X++, Xojo, Zig

图片

Top 10 编程语言 TIOBE 指数走势(2002-2024)

图片

历史排名(1988-2025)

图片

编程语言“名人榜”(2003-2024)

【说明】:

TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于全球技术工程师、课程和第三方供应商的数量,其中包括了流行的搜索引擎以及技术社区,如 Google、百度、维基百科、必应、Hao 123 等等。具体的计算方式详见:https://www.tiobe.com/tiobe-index/programming-languages-definition/。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

这个排行榜可以用来考察你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。

推荐阅读:

“闭源”13个月后,Redis再开源!开发者怒了:一回生二回熟,真当我们忘了?

从失业到年入180+万元!仅用3周,他做出“爆款”插件:团队总共2人,原本只想糊口

AI不靠“闭门造神”,海内外一线专家共探智能新纪元,GOSIM AI Paris 2025圆满收官!

图片

### 编译错误 L6236E 的原因分析 该错误 `L6236E: No section matches selector - no section to be FIRST/LAST` 表明链接器无法找到匹配的选择器定义中的任何部分。通常情况下,这种问题发生在 `.sct` 文件配置不正确或者缺少必要的启动文件时[^1]。 具体来说,在 STM32 开发过程中,如果工程中未包含合适的启动文件(通常是 ST 官方提供的 `.s` 文件),就会触发此错误。这些启动文件负责初始化硬件并设置堆栈指针等重要参数。如果没有它们,链接器将找不到用于标记内存区域的第一节或最后一节的位置[^4]。 --- ### 解决方案 #### 方法一:检查并添加启动文件 确认项目中是否已包含适合目标芯片的启动文件(如 `startup_stm32fxxx.s`)。如果没有,则需从官方库下载对应版本的启动文件,并将其加入到 Keil 工程中。完成这一步后重新编译即可消除错误。 #### 方法二:修改 Scatter File 配置 打开 HAL_06_LCD.sct 文件,确保其内容符合实际需求。以下是典型的 scatter file 结构: ```plaintext LR_IROM1 0x08000000 0x00080000 { ; load region size_region ER_RO 0x08000000 0x00040000 { ; execution region RO base_address length *.o (RESET, +First) ; *(InRoot$$Sections) ; .ANY (+RO) ; } RW_IRAM1 0x20000000 0x00020000 { .ANY (+RW +ZI) } } ``` 重点在于 `(RESET, +First)` 这一部分,它指定重置向量表应位于闪存起始地址处。如果此处缺失或被误配,也可能引发上述错误[^2]。 #### 方法三:验证工具链版本兼容性 有时,Keil MDK 版本过旧可能导致某些功能不可用或行为异常。建议升级至最新版 MDK-Arm Pack 和设备支持包,从而获得更好的稳定性和更全面的功能支持[^3]。 --- ### 示例代码调整后的 Scatter File 假设我们正在处理基于 Cortex-M 系列微控制器的应用场景,可以尝试以下修正过的散列表达式作为参考: ```plaintext LR_IROM1 0x08000000 0x000C0000 { /* Load Region */ ER_CODE 0x08000000 0x000BFFFF { /* Execution Region */ *.o (Vectors, +FIRST) /* Vector Table at beginning of flash */ *.o (.text) /* Code sections */ *.o (.rodata) /* Read-only data */ } RW_IRAM1 0x20000000 UNLIMITED { /* RAM Section */ *.o (.data) /* Initialized variables */ *.o (.bss) /* Zero-initialized variables */ } } ``` 注意这里特别强调了 Vectors 节点必须放置于最前端位置以便引导 CPU 正确执行初始指令序列。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSDN资讯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值