2025年,学什么编程语言?
潘忠显 / 2025-02-11
2025年,学什么编程语言?
今天跟大家聊聊,如何选择一门编程语言进行学习,简单说说 Python、Rust 以及两匹黑马——Mojo和Zig。
《程序员修炼之道》第二版「Invest Regularly in Your Knowledge Portfolio」一节中,有提到每年学习一门新语言:
即使不能每年学习一门,我们也应当不定时的刷新一下我们的知识库。
成熟语言 or 新语言
你可以选择一门成熟的语言,利用其丰富的学习资源、广泛的社区支持,你可以快速地掌握编程技能。同时,成熟意味着稳定可靠,有强大的生态系统和高效的开发工具。在就业市场的岗位也相对更多,增加了你的就业机会。
你可以选择一门新兴的语言。新兴语言通常摒弃了过时设计,博彩众长,提供更强大功能,让你接触更新的编程理念和技术。尽管其社区和生态系统尚未成熟,但参与其中可以让你在早期成为社区的一部分,甚至影响语言发展。
学习一门新语言就是一种投资,学习成熟语言可能是「稳健」投资,而新兴语言是「进取」投资。前者风险小,后者带来的回报可能越大。
无论你投资哪种编程语言,总得选个靠谱的,不然就是拿时间成本打水漂啦!
借助TIOBE指标决策
下边介绍一下具体的如何选择。
首先,你可以根据你感兴趣的应用领域来圈定一些语言。比如,你想做后台开发,可能 Go、C++、Rust 都是你的选择;要深入了解人工智能领域,选择 Python 就比较合适;如果你感兴趣的是前端,那就又有另外一个候选集了。
选定应用领域之后,就可以借助 TIOBE 指标进行决策,最终敲定一款你今年的学习目标。
TIOBE指数是编程语言流行度的一个指标。该指数每月更新一次,已持续更新20余年。
该指数并不是评选最好的编程语言,或代码最多的语言,而是衡量编程语言的流行度。它基于搜索引擎的查询次数、开发者的讨论热度和第三方供应商的报告等多种因素来评估语言的受欢迎程度。
虽然TIOBE指数可以作为选择编程语言的参考,但它并不直接反映语言的技术优劣或适用性。
其网站地址是:https://www.tiobe.com/tiobe-index/
2024年度语言Python
Python赢得了「TIOBE 2024年度编程语言」的称号,该奖项授予在一年内评分增长最高的编程语言。Python在2024年增长了惊人的9.3%。这遥遥领先于其竞争对手:Java +2.3%,JavaScript +1.4%和Go +1.2%。Python无处不在,它在许多领域中是无可争议的默认选择语言。
根据分数的增长趋势,Python 甚至打破 TIOBE 指数中最高分数记录。这里需要说明一下,TIOBE的分数是经过归一化的,也就是所有语言的分数加起来是1。
尽管 Python 以其较慢的执行性能不足著称,但它在2024年仍然是TIOBE年度编程语言,并且在编程界保持着强大的影响力。这主要归功于其易学性和广泛的应用领域,特别是在数据科学、人工智能和教育领域。Python 的简单性和易用性使得它成为许多新程序员和非软件工程师的首选语言。
除此之外,2024年 TIOBE 指数前10名中发生了两件有趣的事情:
- C 被 C++ 和 Java 超越,从第2掉到了第4。其主要原因是 C 在许多嵌入式软件系统中被 C++ 取代
- PHP正式告别了前10名,被Go取代,Go成为前10名的常客
安全又高效的 Rust
Rust 创建于 2006 年,是一门现代系统编程语言,旨在提供相较于 C 和 C++ 等现有语言,更高的内存安全性和性能。
近些年来 Rust 在变得越来越受欢迎。在今年2月,其评分更达到了历史最高的1.47%,在所有语言中排名 13。
Rust 跟 Python 像是两个极端。Rust 编译后的代码性能接近 C 和 C++,但是其学习曲线陡峭,注定它永远不会成为普通程序员的通用语言。
另外,Rust 通过所有权系统和借用检查器来管理内存:可以利用编译时检查(确保对象的生命周期和所有权)和运行时检查(确保内存访问有效)来保证内存安全。避免了许多其他语言中常见的内存管理问题,如空指针引用、悬挂指针和数据竞争。
高效且安全让他非常适合系统级编程。
有一个 Rust for Linux 项目,旨在将 Rust 添加为可在 Linux 内核软件中使用的编程语言。2022 年 10 月,Torvalds 批准了接受 Rust 的 Linux 实现的拉取请求。2023 年 12 月,第一个用 Rust 编写的驱动程序被接受,并在 6.8 版中发布。2024 年 7 月,Linux 首次支持多个 Rust 版本。
Rust 提供了安全的并发编程模型,允许开发者编写高效且无数据竞争的并发代码。我目前常用Go语言,其并发模型(goroutines和channels)虽然易用,但需要开发者自己确保并发安全。
除此之外,Rust 还有「零成本抽象、丰富的类型系统、自带的包管理器Cargo、跨平台支持」等特点。
常关注我公众号的朋友,应该看到过之前 GitHub 热点中有出现过一个 Rust 项目——Dioxus,可以一套跨平台的App开发框架。
也有人用 Rust 开发游戏《糯米团子历代记》并记录了自己使用 Rust 的原因和过程。
后起新秀——Mojo 和 Zig
Mojo是由Modular公司开发的一种基于MLIR编译框架的编程语言,旨在为人工智能等领域的软件开发提供统一的编程框架。
Mojo语言于2023年5月推出,仅仅推出两年,现在已经排名到第51位,有很大的希望在2025年接近前20名的位置。
Mojo为Python语言的超集,同时还具有C++的速度与Rust的安全性,特别适用于高性能计算和机器学习领域。通过静态类型系统、编译时优化和强大的并发支持,Mojo能够提供高效的执行性能,同时保持易用性和灵活性。
对于需要高性能和快速开发的应用场景,Mojo是一种值得关注的选择。
Zig 是一种现代化的系统级编程语言,由 Andrew Kelley 于 2015 年发起开发,旨在替代 C 语言,同时提供更高的性能、安全性及开发效率。其设计融合了底层控制能力和现代语言特性,适用于操作系统、嵌入式系统、编译器开发等高要求领域。
Zig 也在2024年从第149位攀升至第61位。
乍看上去,Zig 的设计目标跟 Rust 有些类似。但 Zig 应该是更加注重语言简洁性和高性能,没有像 Rust 那样的所有权和借用系统。Zig 特别强调在编译时进行计算和优化,以减少运行时开销;有提供基本的线程支持,但没有内置的高级并发抽象。
学新语言的目标
必须设定一个目标,「学习一门新编程语言」这件事才能持续下去。
可能是想深入进入某个领域,比如你要学人工智能相关的编程,选择了 Mojo,你最终是可以使用 Mojo 开发一些相关的应用。
可能是想做一个跨端的 App,你选择学习使用 Rust 的 Dioxus 框架,最终你会开发出一个你想要的 App。
我会选择 Rust 作为我 2025 年学习的那门语言。尝试去了解一下其内存所有权和借用系统、并发模型。比较 Rust 的并发模型和 Go 的有什么区别,最终对当前使用的 Go 语言有更深入的了解。
2025年,你会选择学习哪种语言呢?你的目标是什么?欢迎留言!