【译】编程语言未来十年

插图由作者使用 Apple Freeform 制作。徽标由(从左到右)提供:Rust Foundation、Public Domain、Mark Anderson、Jeremy Kratz、python.org

软件工程师有两种:一种是关心编程语言的,一种是不关心编程语言的。如果你问我,这两组人都说不上对错。前者关心的是使用尖端技术的项目,后者更关心的是坚持久经考验的技术。没有理由能说服我这两组人谁采取了错误的职业策略。话虽如此,无论你如何开始你的编程生涯,关注语言的发展没有害处。我倾向于后者,但我发现自己足够好奇,偶尔会查看各种编程语言的趋势并得出相关结论。Tiobe 指数是我了解此类趋势的可靠来源之一,今年 10 月的数据值得仔细研究。

2024年10月的Tiobe指数。作者截图。

唯一不变的就是变化。软件工程的格局总是瞬息万变。话虽如此,变化也不是一夜之间发生的。没有流行度指数可以改变这一点,也不应该助长任何炒作或悲观情绪。据称,PHP 已经“死亡”了大约十年,而 TypeScript 是自火以来最伟大的发明。显然,这两种说法都没有被证明是正确的。

编程语言不会突然出现和消失。它们也会存在一段时间。记住这一点。

也许最(不)令人惊讶的是 Python 占据了第一的位置。坦率地说,虽然主流媒体似乎对 Python 迅速升至第一感到惊讶,但这并不是什么新鲜事。C# 可能在 2023 年赢得了“年度语言”,但由于 AI 仍处于炒作阶段,Python 的受欢迎程度必将再次疯狂飙升。实际上,它一直占据语言排行榜前五名之一的位置。虽然我经常被视为人工智能怀疑论者,但这种对 Python 的新发现的普遍热爱再次证明了我和很多人已经说了很长一段时间的话 —— 生成式人工智能仍然只是机器学习,机器学习并不是什么新鲜事。我记得 10 多年前我研究过人机交互,Python 也因此而享受到了非常类似的人气飙升。

我认为这里更有用的是,Python 是一种多用途语言,所以如果你是编程新手,它是一个很好的入门语言——虽然它肯定不是我个人最喜欢的。如果你已经是一位经验丰富的 Python 工程师,那么这证明你走在正确的道路上,而且在职业方面你已经做好了一切准备,你甚至不必想知道还有什么其他选择。

除了 Python,榜单上还有另一种有趣的语言,那就是 PHP。虽然人们一直认为 PHP 已经过时了,但它仍然为大多数网络提供支持。当然,自去年以来,它在排行榜上的排名已经下降了不少,但当它与 Swift(第 20 名)和 Rust(第 13 名)等语言竞争时,仍然跻身前 20 名语言之列绝非易事。

PHP 开发人员不会有任何危险。它仍然是一种非常好的语言,即使对于新手来说也是如此。

但说到 Rust,不可否认它正处于上升轨道。它非常受欢迎,甚至超过了 PHP 和 Ruby。就我个人而言,我既不支持也不反对这种语言。不过,我确实希望它不要那么夸张,因为它经常让人感觉是被虔诚地推崇为构建软件产品的选择,而不是务实地推崇为一种选择——这从来都不是一件好事。用 Rust 重建一切绝对是浪费资源和时间。我们许多高级工程师都知道,简单地用一种新语言重建某些东西并不能改善它,甚至通常会带来新的问题。当然,这并不是说你应该忽视 Rust。相反,如果可以的话,也许你应该关注 Rust 而不是 TypeScript,这让我想到了下一个观点。

对于一种被誉为比工业革命更具变革性的语言,TypeScript 似乎年复一年地没有得到它的铁杆粉丝们的认可。它排在第 37 位,离排行榜还差得很远,它必须上升 32 位才能取代 JavaScript 的第 6 位。听着,我并不讨厌 TypeScript,我几乎每天都在工作中使用它。我看不出它有什么价值,尤其是现代 JavaScript 可以完成很多 TypeScript 被发明出来时的功能,但我并不介意承担 TypeScript 项目。对我来说,成本效益比不合理,尤其是在前端。

在我工作了五年之后,我不再关心编程语言。我更关心如何打造成功的软件产品。

多年后,这种情绪仍然没有改变,因此,如果我要做出务实的选择,即哪种语言能让我在未来打造出更成功的产品,我不会选择 TypeScript,而是选择 Rust。我甚至怀疑 TypeScript 人气的下降实际上可以直接归因于 Rust 的兴起。这只是一种理论。你怎么看?

说到冉冉升起的新星,另一个让我感到内心暖洋洋的就是看到 COBOL 排在第 19 位。对于如此古老的语言来说,这相当令人印象深刻。你能相信它比 Swift 更受欢迎吗?而且 Swift 背后有苹果万亿美元的实力。话虽如此,看到 COBOL 表现如此出色并不完全令人惊讶。虽然它可能在 65 年前首次出现,但它在 2002 年进行了重大更新,成为面向对象。许多政府、行政和商业系统都运行在 COBOL 上,这些都需要维护。自 2002 年以来,它一直在定期进行较小的更新,最新版本是 COBOL 2023,甚至允许异步消息传递!我不会向新程序员推荐它,但那些资深程序员可能会考虑尝试一下,特别是如果他们所在地区有 COBOL 工作,并且他们愿意通勤到办公室。虽然并非所有人都将此作为要求,并且从技术上讲,有人可能会认为甚至不应该有这样的要求,但许多 COBOL 工作意味着你必须在办公室工作。

咣咣咣。谁啊?长时间的沉默……是我,Java。

多年来,另一种被许多人过早视为垂死语言的语言是 Java,但你猜怎么着?它只会越来越受欢迎。它现在排在 Python 和 C++ 之后的第三位。Mike Melanson 写了一篇关于 Java 现状和部分历史的优秀文章,所以读一读,你会学到比我一段话所能塞进的还要多的东西。不过,正如他在 2022 年所说的那样,它的中心思想是:

Java 诞生近 30 年后,您可能会认为该语言已经出现了一些衰退迹象,但事实并非如此。2022 年的 Java 并非一种衰落的语言,而是一种为软件开发的蓬勃发展的未来做准备的语言。

显然,许多企业、开发人员和开源项目都高度依赖和鼓励使用 Java 语言。2010 年代中期,Java 领域确实取得了不错的创新,因此我认为 Java 语言在很长一段时间内都不会消失。事实上,我对 Java 的光明前景的信心与对 Python 的信心一样坚定。

最后,您可能会认为 Scratch 是一种“不是为了正经编程”的语言,但它出现在 Tiobe 指数上并非毫无原因,我很高兴看到它仍然在排行榜上——尽管排在第 14 位。在孩子的早期生活中教授编码、编程、培养这些技能是非常宝贵的。我在二十五六岁时学习哈佛 CS50 课程时发现了 Scratch,即便如此,我仍然觉得它很迷人,是编程之旅的绝佳第一步。这是一个好兆头,尤其是在一个将生成式人工智能炒作成“码农杀手”的世界里。

展望未来十年
十年是一段很长的时间,但如果你看看 Tiobe 指数,你很快就会意识到,编程并没有像有些人认为的那样发生太大的变化。即使快速浏览一下,你也会发现除了 Rust 之外,所有其他语言要么刚刚起步,要么在 10 年前就已经很流行了。

我认为未来十年大有可为的语言有 JavaScript、Python、Java、C 的所有“变体”、PHP 甚至 Swift,因为我也不认为苹果会有什么变化。至于其他语言,就像我之前说的,编程语言不会来来去去,它们会存在一段时间。这段时间足以让你练就扎实的编程能力,开始更少地关注语言本身,而更多地关注用它们构建的东西。

以 Ruby 为例。它不久前就失宠了,但仍然存在。当然,我刚刚将数十个用 Ruby 编写的端到端测试迁移到基于 Java 的框架,但做出这一决定完全是因为不想让代码用我们公司不熟悉的语言编写。更注重 Ruby 和 Ruby-on-Rails 的企业可能会不惜一切代价,让他们的 Cucumber 测试用 Ruby 而不是 JavaScript 编写。

这里的底线基本保持不变。许多语言之所以能存在很长时间,是因为我们已经对它们进行了投资,而且很多时候你真的不需要修复没有坏的东西。

当然,这并不能阻止新语言的出现和取代一些旧语言,而且总会有新企业加入这股潮流并投资于它们。这完全正常。从宏观上看,语言在 Tiobe 指数排行榜或任何其他流行指数上的上升和下降意义不大,尤其是对经验丰富的工程师而言。

对于其他人,我会建议我一贯的做法 — 选择您所在领域提供良好就业前景的流行、多用途语言。这将为您提供发展职业生涯的平台,使用该语言工作 5-10 年,并成为资深人士 — 也就是上面提到的类别 — 如果项目需要,他们会很乐意使用任何语言。


你不必使用流行的编程语言来成为一名成功的工程师或打造出色的产品。你只需要热爱编程。



Attila Vago — 软件工程师,用一行行代码改善世界。永远很酷的书呆子,代码、博客和书籍的作者。作家。网络无障碍倡导者、乐高迷、黑胶唱片收藏家。喜欢精酿啤酒!在这里阅读我的 Hello 故事订阅更多关于乐高科技编码无障碍的故事!对于不太常看的读者,我也会写一些随机片段写作

posted @ 2024-11-07 10:52  WAKU  阅读(16)  评论(0编辑  收藏  举报