2024最流行编程语言榜中榜
神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。
编者按:了解哪种编程语言最流行很有好处。排行榜可以帮助我们了解,但不同的排行榜的对流行的定义和计算依据各不一样,所以一个综合各家排行榜的榜中榜会跟更有参考一样。你知道最流行的三种编程语言是哪三种吗?文章来自编译。
调查是了解情况的重要手段,但是调查得到的信息不一定就能反映真实情况。因为调查可能会存在人口统计或心理统计上的偏见。
政治分析家已经开发出一种技术,可以通过调查数据获得更准确的信息。其方法是汇总多项调查的结果来排除总体偏见趋势,从而更准确地分析出整体状况。
在编程语言调查方面也遇到了同样的问题。IEEE对会员调查得出的结果,可能会与从 Google 检索到的有关某种语言的教程数量不一样。
ZDNET 编程语言流行度指数
所以 ZDNET 编制编程语言流行度指数时借鉴了政治分析领域的经验:汇总了来自九个不同排名的调查数据。
对于什么是流行,仁者见仁,智者见智。学生对流行的理解,是想学习有工作机会的那种语言。对于大多数人来说,带着缺乏需求的知识进入一个领域是没有意义的。
而对于已经熟练的程序员来说,他们想知道的是目前自己的技能还有没有用,或者是否该考虑其他语言了。流行度的变化可能意味着是时候学习一门新语言了。
开发产品的开发者也希望了解哪门语言流行,因为如果他们正在开发 API 或其他兼容性选项的话,会希望确保自己在开发客户会使用的解决方案。支持最流行的环境非常重要。
最后,如果你要启动一个项目,首先得选择用什么语言来开发。你的首要标准应该是用一种能够把活搞定的语言。如果一们语言很流行,但编写代码需要两年时间,而另一门语言不那么流行,但写应用需要两个月时间的话,显然你应该选择不那么流行的那门语言。但是,在其他条件相同的情况下,选择更流行的语言通常意味着可以接触到更多的程序员和资源,所以这也是一个重要的考虑因素。
流行怎么定义?
哪种语言最流行这个问题不像你想象的那么容易回答。关键是要确定什么叫流行。
这个问题没有明确答案,维基百科上有篇文章专门介绍如何衡量编程语言的流行度,里面列举了衡量流行度的一些可能因素,包括:
- 该语言名称在网络搜索出现的次数,如 Google Trends 上显示的次数
- 提及该语言的招聘广告数量
- 教授或描述该语言的书籍销量
- 用该语言编写的现有代码行数的估计,可能会低估了在公共搜索中不常见的语言的行数
- SourceForge、Freecode 及 GitHub 上该语言的项目数量
- 论坛与新闻组中有关该语言的帖子数量
这些也许也还不够,还可以将以下一些指标添加到该列表中:
- 编程训练营销售的课程数量
- 全球范围内报名参加该语言编程课程的学生人数
- YouTube 上每种语言的视频数量
- Reddit 或 Stack Exchange 上关于某种语言的帖子数量
如果再考虑到不同国家的流行程度的话,情况会变得更加复杂。
一句话,流行度不是单维度。
多项调查汇总
问题就在这里。即便大家知道流行度可以通过许多不同的因素来衡量,学生及专业人士仍想知道流行度是否在引导自己的职业及公司朝着正确的方向发展。本指数利用了五个组织的九个指数来收集原始数据,分别包括:
- PYPL:编程语言流行度(PopularitY of Programming Language)指数的数据源自 Google 搜索活动,衡量的是在 Google 上搜索某种语言教程的频率。这是兴趣的衡量标准,但不一定是使用率的衡量标准。
- Tiobe:Tiobe 是一家软件质量服务公司。他们是根据“全球熟练工程师、课程及第三方供应商的数量”来建立的指数,会定期更新。该指数利用了Google、Amazon、Wikipedia、Bing 及其他 20 多个热门网站来计算评级。”这也不一定是使用率的衡量标准。
- GitHub 使用情况 2023:GitHub 每年都会进行一系列调查,数据是按使用情况来衡量语言的流行度。
- Stack Overflow Professional Developers::Stack Overflow 会根据用户个人资料来衡量使用情况,该指数衡量的是自认为专业程序员的受访者的使用情况。这些人很可能是以编程为生的人。
- Stack Overflow Learning to Code:这个指数衡量的是表示自己正在学习编码的受访者的使用情况。这个指数的有趣之处在于它标记了新的开发者认为哪些语言值得学习。
- Stack Overflow Other Coders:Stack Overflow 没有具体定义这个其他程序员群体是哪些人,但这些既不认为自己是新手,也不认为自己是专业人士。也许可以将有能力的程序员列入这个名单,不过这些要么是将开发作为自己另一种职业的一部分,要么是用编码来完成项目,但这些编码工作并未获得专门报酬。同样,这是一种使用量衡量标准。
- IEEE Spectrum index:IEEE 是全球最大的科学家、工程师及相关专业人士的技术专业组织。Spectrum 指数衡量对编程语言的兴趣程度 “以典型的 IEEE 会员的概况为重点”。
- IEEE Jobs index:这个指数以“雇主在找什么”为基础。
- IEEE Trending:这个指数称自己“力求发现符合时代精神的语言”,可以通过这个指数了解哪些语言正在受到关注。
有些指数追踪的语言数量相对较少,而有些指数则花费了大量时间来追踪一些长尾语言。这个聚合模型分析的是每个指数的前 20 种语言。
说了这么多,最流行的语言到底是哪一门?
各大榜单的排名情况如下:
但问题是,这张图并没有告诉你应该关注什么地方,为此,我们根据每种语言在每张指数图出现的位置和出现的次数对每种语言进行加权,结果如下。
如图所示,留下语言可分为五个等级。最热门的包含 Python、JavaScript 以及 Java。这些都是 AI 编码领域非常具有代表性的语言。毫无疑问,你得熟悉这三门语言。然后第二级的包含经典的 C 语言家族,以及 SQL 与 TypeScript(JavaScript 的变体,但更强大)。
第三级是一段时间以来仍占主导地位的语言,主要用来开发和运营网站的web语言,之后是一系列其他语言,这些语言有些正越来越得宠(R,Dart),有些则慢慢失宠(Ruby)。
排在最后面的是苹果的首选语言 Swift。自从苹果推出 Swift 以来,苹果之前主推的编程语言 Objective-C 几乎已从榜单消失。不过,尽管苹果拥有众多开发者,但程序员对 Swift 的兴趣显然并不突出。
这张图告诉了我们什么呢?如果你对现代编码有所了解,就会意识到自己不只是在用一种语言。开发总归有一定目的,不管是做嵌入式系统、iPhone、Web 应用还是微软的服务器端应用。
语言熟悉度只是这个难题的一部分。比方说,不管你再怎么喜欢 Python 或非常古老但还有生命力的 C,如果你正在写 WordPress 插件或主题的话,那就得用 JavaScript 与 PHP。这跟其他语言有多流行没关系。如果你的雇主是微软开发者,你最好了解 C#。如果你打算给 AI 应用写代码,那就得懂 Python,但熟悉 R 可能也没什么坏处。
其它
IEEE Job index排名第一的语言是 SQL。这个看似有道理,但事实并非如此。你很少只靠 SQL 写代码。SQL 是用来访问数据,但你会用另一种语言来管理数据查询。所以了解 SQL 是件好事(甚至是必要的)。但光靠学 SQL并不能保证能找到工作、赚大钱或过得好。
这跟招聘公告有直接关系。大多数编程工作都会列出多种语言。这是因为大多数项目都需要多种工具。所以,哪怕你看到招聘 Java 程序员的广告,SQL 也可能会在其中。这就是为什么如果你只按招聘网站列举的语言计算流行度的话,SQL 很可能会排在最前面。
其次,考虑到 iOS 应用的流行程度,苹果的专用语言在排行榜上的排名要低于预期。但这是说得过去的。如果你想自己开发应用,就得学习这些语言。但至少目前没有多少公司雇佣苹果应用开发者。这所以 Swift 在排行榜上的排名相对较低,而Objective-C 正在被 Swift 取代。
除 Java 外,C 语言家族仍占主导地位。C++、C、C# 甚至 Objective-C 都是基于 C 的语言。如果你只打算学习一种语言,这些不再是我的推荐。我的推荐是 Python、Java 与 JavaScript。
我的建议是,多学几种语言、多学几个框架,尤其是如果你进入编程领域的话。用这些语言开发点东西。编程不仅仅是一种智力活动,你得真正去创造出一点东西来。
熟悉多种语言和框架非常重要,因为计算机行业变化太快了。因此,学习如何学习语言与学习语言一样重要——而做到这一点最佳的方法就是学习多种语言。
译者:boxi。