共计 3093 个字符,预计需要花费 8 分钟才能阅读完成。
过去几周,我们一直在 ZDNET 上讨论编程语言的流行度。最近,我汇总了九个不同排名的数据,制作了[ZDNET 编程语言流行度指数](https://www.zdnet.com/article/the-most-popular-programming-languages-in 2024-and-what-that-even-means/)。
在整理这些统计数据时,我发现了我 2016 年所做类似调查的原始数据。虽然那项研究基于六个排名而非今年的九个,但它仍然对各个群体中的语言流行度提供了有益的见解。
我很好奇。鉴于这些数据,过去八年间语言的流行度是如何变化的?显然,我们计算领域的重大变化是人工智能,那么它在这其中扮演了什么角色?结果就是这张非常漂亮的图表。
这张图表包含了很多信息。让我们尝试将其分解为更易管理的部分,首先从最热门的语言开始。
顶级语言
[Python](https://www.python.org/) 是一种优雅的语言。它简单而极其强大,已成为 AI 和数据科学家以及通用 Web 开发的首选语言。它不出意料地跃居首位。
[JavaScript](https://javascript.info/) 在 Web 开发中变得越来越核心,尤其是在创建动态网页文档方面。像 [React](https://react.dev/) 和[Angular](https://angular.dev/)这样的框架也帮助扩展了它的实用性,并推动它超越了其他语言。
表现稳定的语言
如果有一种语言体现了经典的编程,那就是基于 C 的语言:Java、C++、C# 和 C 本身。这些语言证明了算法编码仍然充满活力,它们基本上没有变化。
当然,[Java](https://www.java.com/en/)在我们的指数中下降了两个位置,但它仍然在胜利者的圈子中。Java 是一种健壮的面向对象编程语言,常用于企业应用和 Android 开发。尽管有其他语言的竞争,但大量的程序员和应用程序使其保持相关性。对于那些不太关注语言的人来说,Java 和 JavaScript 是截然不同的。
[C++](https://isocpp.org/) 是古老 C 的扩展,增加了面向对象的特性。虽然 C 可以追溯到 1972 年,C++ 也相当古老,最初部署于 1985 年。尽管如此,它仍然流行于需要面向对象结构的编译性能敏感应用。
[C#](https://learn.microsoft.com/en-us/dotnet/csharp/) 是微软对 C ++ 的诠释,广泛用于 Windows 应用程序和 Windows 游戏。它快速、高效,并且完全融入了微软的开发生态系统。
我对 [C 的长寿](https://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628) 感到有些惊讶。尽管如此,它非常紧凑。它没有多余的复杂性,只做它该做的事。它在某些操作系统开发、编译器和嵌入式系统领域受到高度赞赏。
对于前六种语言,过去八年的唯一变化是一些位置的调整。但现在,当我们转向不那么普遍流行的语言时,我们发现波动相当剧烈。
新晋语言
TypeScript、Rust、Kotlin 和 Dart 并未出现在 2016 年的列表中,但现在出现在 2024 年的列表中。这四种语言在 2016 年之前就已存在(尽管 Rust 当时才刚刚一年),但现在它们看到了更强的采用率。
[TypeScript](https://www.typescriptlang.org/) 是另一种微软起源的语言。它本质上是一种现代 JavaScript,增加了静态类型。这提高了代码质量并使维护更容易,尤其是随着项目的增长。它扩展 JavaScript 项目的能力可能是其日益受欢迎的因素之一。另一个因素是它已被纳入主要的 JavaScript 框架中。
[Rust](https://www.rust-lang.org/) 是一种在系统编程中广泛使用的语言。它专注于内存安全而不牺牲性能,这帮助它从 C 和 C ++ 手中夺取了一些系统工作。
[Kotlin](https://kotlinlang.org/) 本质上是 Java 的增强版。Kotlin 与 Java 完全互操作,增加了一些编码安全特性,帮助程序员编写更简洁的代码,增加了异步代码的协程,允许程序员使用扩展函数扩展类等。谷歌选择 Kotlin 作为 Android 的首选语言,这给了它强大的推动。
[Dart](https://dart.dev/) 和 [Flutter](https://flutter.dev/) 听起来像是迪士尼电影中的东西,但实际上我们谈论的是语言和框架。Dart 由谷歌开发,擅长构建移动用户界面,而 Flutter 帮助开发者在多个平台上部署。
上升之星
除了 Go 之外,我们的上升之星实际上是真正的老将,只是步伐更加轻快。
[Go](https://go.dev/) 是谷歌开发的另一种静态类型语言。它为构建可扩展、并发的应用程序提供了相当简单的结构。Go 在云计算、微服务和容器化方面变得流行。
既然我们已经多次提到静态类型,也许我应该向你解释一下。变量是包含可变值的编码容器。分配的值通常属于不同的类型(如整数、字符串、浮点数等)。通常编译器和解释器不检查哪种值应该与哪个变量匹配。
这个问题一旦部署可能会导致问题,但在开发过程中可能会被忽略。静态类型在开发过程中检查变量和值,从而在部署时产生更可靠的代码。这本来是魔法,但实际上只是编程的一部分。
失去人气的语言
人气下降的语言包括 PHP、Swift、Ruby 和 R。
因为 WordPress 是用 PHP 构建的,我做了很多 WordPress 编程,[我大量使用 PHP](https://www.zdnet.com/article/one-developers-favorite-mac-coding-tools-for-php-and-web-development/)。它并不那么有趣。PHP 是一种非常不优雅的语言,有奇怪的不一致和例外。它强大且有能力,但丑陋且容易产生不必要的错误。随着 Python 的增加,它的人气正在下降。
[Ruby](https://www.ruby-lang.org/en/) 是另一种曾经风光一时的语言,但现在有更好的替代品。JavaScript,特别是与 Node.js 结合使用,Python,Go,TypeScript 和 Rust 都是更灵活、强大和代码安全的替代品。
我真的很惊讶看到 [统计语言 R](https://www.r-project.org/) 下降,尤其是数据分析需要统计。但事实是,R 能做的所有事情,Python 都能做得更好。你开始明白为什么 Python 如此流行了吗?
然后是[Swift](https://developer.apple.com/swift/),苹果在 iOS 开发中的代表。Swift 的下降是否意味着 iOS 应用的人气下降?不,并不是这样。只是 Swift 不再是 iOS 开发的唯一选择。替代品包括 JetBrains 的 AppCode,谷歌开发的 Flutter,Facebook 创建的 React Native,以及强大的 Unity 游戏开发平台。
跌出榜单的语言
Objective- C 应该跌出榜单是合理的。这曾经是苹果设备的主要编程环境,但苹果积极地用 Swift 取代了它。所以,本质上,Objective- C 已经过时了。
Perl 在它所做的事情上很出色,但它的代码如此紧凑以至于几乎无法阅读。这也使得维护变得更加困难。随着编码项目变得越来越大,可维护性变得比编写一行代码所需的