TIOBE 10 月榜单发布:Java危?
今天,10 月 TIOBE 编程语言榜单已最新出炉,一起来看看本月有什么值得关注的新变化吧!
# 被 C# 超越,Java 即将跌至第 5 名?
去年 12 月,Java 历史首次被 C++ 超越、跌出榜单前三的事实,令许多程序员深感意外,由此发出不少 “Java 英雄迟暮?”、“Java 真的已死?”的疑惑。自此以后,这 10 个月来 Java 在 TIOBE 编程语言榜单的排名再也没上过前三,与 C++ 之间的差距也日益扩大。
可能很难预料到,昔日常年霸榜的 Java 在被挤出 Top 3 之后,如今甚至还面临着被 C# 超越、即将跌至第 5 名的危险。
从市场份额来看,Java 在 Top 20 编程语言中的降幅最大,为 3.92%;反观 C# 的涨幅高达 3.29%,彼此仅相差 1.2% —— 按照 TIOBE 的官方说法:“C# 和 Java 之间的差距从未如此之小。如果这种趋势保持不变,预计 C# 将在两个月后超过 Java。”
回顾 C# 诞生的这 23 年来,它与 Java 之间因相似的特性与应用领域一直竞争不断。2000 年,微软发布由 C 和 C++ 衍生出来的面向对象的编程语言 C#,也是运行于 .NET Framework 和 .NET Core(完全开源,跨平台)之上的高级程序设计语言,由 Delphi 和 TypeScript 之父、.NET 创立者 Anders Hejlsberg 开发。
乍看之下,C# 与 Java 惊人地相似:面向对象编程的语言,有着几乎同样的语法,都需要编译成中间代码再运行,都支持跨平台,都支持单一继承和多接口实现,都提供自动垃圾回收功能,都支持强引用和弱引用,此外异常处理方式也几乎相同……不过,C# 与 Java 之间的区别也很明显:C# 借鉴了 Delphi 的一个特点,与 COM(组件对象模型)直接集成,还支持在创建数组时既定义数组大小又给数组赋值,同时支持使用预处理程序指令进行条件编译和 goto 语句等等。
然而,Java 受欢迎程度下降的原因不仅是因为后来者 C# 的各种优势,也因为甲骨文公司在 Java 8 之后决定引入付费许可模式。而微软在 C# 上则是采取了相反的策略:先是只能用作商业工具 Visual Studio 的一部分使用,如今 C# 已是免费开源的,因此受到了许多开发人员的欢迎。
除了付费许可模式,TIOBE 还推测了一些 Java 逐年衰落的其他原因,例如 Java 语言的定义在过去几年里没有太大变化,相比之下“其完全兼容的直接竞争对手 Kotlin 更容易使用,而且免费”——似乎是印证了这个说法,在本月的 Top 20 榜单中,Kotlin 继上个月强势“杀回” Top 20 后,本月再次上升两个名额,到了第 18 名。
# 其他编程语言
以下为 Top 21-50 的编程语言榜单:
第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):
-
4th Dimension/4D, ABC, ActionScript, Apex, APL, Ballerina, bc, CL (OS/400), Clean, Clipper, CLIPS, Clojure, Crystal, Curl, Eiffel, Elixir, Erlang, Forth, Groovy, Hack, Icon, IDL, Io, J, J#, LabVIEW, Ladder Logic, LiveCode, ML, Modula-2, MQL5, NATURAL, Nim, OCaml, OpenEdge ABL, PL/I, PostScript, Pure Data, Q, Racket, Raku, REXX, RPG, Smalltalk, SPARK, SQR, Tcl, TOM, VHDL, Wolfram
# Top 10 编程语言 TIOBE 指数走势(2002-2023)
# 历史排名(1988-2023)
注:以下排名位次取决于 12 个月的平均值。
# 编程语言“名人榜”(2003-2022)
【说明】:
TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于全球技术工程师、课程和第三方供应商的数量,其中包括了流行的搜索引擎以及技术社区,如 Google、百度、维基百科、CSDN、必应、Hao 123 等等。
具体的计算方式详见:https://www.tiobe.com/tiobe-
index/programming-languages-definition/。
请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
这个排行榜可以用来考察你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。
详细榜单信息可参考 TIOBE 官网:https://www.tiobe.com/tiobe-index