超越Java,JavaScript成为最受欢迎的编程语言,TypeScript也大放异彩!

发表时间: 2019-03-29 09:40

在多种趋势榜单中,Java、C、Python 已成编程语言界的新任“铁三角”。而在开发者日常使用以及讨论中,编程语言又有什么样的现状?

近日,一年仅发布两次编程语言榜单的美国知名软件开发者行业分析公司 RedMonk 正式发布了 2019 年 Q1 季度的编程语言排行榜。与此前一月一发的 TIOBE 编程语言榜单不同,RedMonk 的编程语言排行榜数据主要来源于开发者最常使用的代码分享之 GitHub 社区和讨论之 Stackoverflow 社区。

其中 GitHub 的数据源是 GitHub Archive,而 Stack Overflow 则是基于 data explorer 工具收集所需的指标,以便开发者可深入了解潜在编程语言的未来应用趋势。

下面,我们就来一起看一下这份榜单。

2019 年 1 月发布

细细看来,该编程语言排行榜的 Top 20 如下所示:

1. JavaScript

2. Java

3. Python

4. PHP

5. C#

6. C++

7. CSS

8. Ruby

9. C

10. Objective-C

11. Swift

12. Typescript

13. Scala

14. Shell

15. Go

15. R

17. PowerShell

18. Perl

19. Haskell

20. Kotlin

从中我们发现,最受欢迎的不是在企业级应用程序中使用最多的 Java,而是 JavaScript。此外,和去年 6 月,RedMonk 发布的编程语言排行榜相比,新的榜单并没有过多的浮动。

2018 年 6 月

事实上,一般来说,编程语言排行榜的前 10-12 种语言,每月甚至于每年几乎都没有太大的变化。虽然在如 GitHub 或者 Stack Overflow 等平台上,开发者在开发时所使用的技术每年可能会根据兴趣爱好或者项目需求发生一定的变化,但是主流且可获得高收益的编程语言就那么几种,这样的现状也导致新的语言想要在一堆强劲竞争的主流编程语言中提升排名越来越难。

不过在此次最新的榜单中,还是有几个值得我们关注的一些变化:

  • TypeScript,和去年排行榜相比,上升了四个名次,位列第 12 名。在此也如上文所述,在如今几大主流编程语言当道之时,其他编程语言排名上升实属不易,而通过一年的时间,TypeScript 可以上升四个名次,这也是为什么其会如此值得我们关注的原因。而考量其中缘由,也必然和排名第一的 JavaScript 不无关系。众所周知,TypeScript 是 JavaScript 类型的超集,它可以编译成纯 JavaScript,同时在安全功能,如可选的静态类型检查等方面有很大的提升。但是仅凭功能特性本身不足以快速推动语言的发展,因此它必须通过广泛的项目来推广。近两年,GitHub 上出现了不少有关 TypeScript 的库以及项目。
  • Go 和 R 分别下降了一个名次:从宏观角度来看,这样轻微的浮动可以忽略不计。不过对于 R 语言来说,其在数据分析和机器学习领域的工具中依然占很大比重。但同时也鉴于 R 的领域局限性,其发展前景应该进不了排行榜的 Top 10。另一款语言,Go,虽然它在技术上受到了高度重视,并且也在各种基础设施项目中广受欢迎,但是到目前为止,它并没有任何的能力证明它会去遵循 Java 的成功脚步。
  • Kotlin 上升 8 位,进入 Top 20;Scala 下降一名;Clojure 下降 3 名;Groovy 下降三名:在本季度的编程语言排行榜中,变化最大的要属基于 JVM 的语言,如 Clojure、Groovy、Scala 均有所下降,而新贵 Kotlin 反而大幅增长。目前,Kotlin(第 20 名)仍然远远落后于 Scala(第 13 名),但是根据 RedMonk 的历史编程语言排行榜来看,Kotlin 的增长仅次于 Swift,所以,其未来值得期待。
  • Julia:对于一种甚至不在前 30 名的语言,Julia 上升了两个名次,位居 34 位,但还是吸引了不少开发者的注意力。这种集 Python、C、R、Ruby 之所长的动态编程语言,其实值得大家关注。此外,它的涨幅也像极了,三年前 TypeScript 的增长趋势。当然,并不能绝对的说 Julia 就一定能像 TypeScript 那样流行,但是其未来不容忽视。
  • Rust:和去年相比,Rust 排名没有变化,一直是第 23 名。对于一些开发者而言,可能会对这个结果有些失望,但 Rust 的流行度向来如此。和 Google 研发的 Go 语言相比,Rust 发展稳定的同时在人气知名度上受到了一定的限制。不过,在系统语言中,它仍然排名仍高于如前面提到的 Clojure、Groovy、CoffeeScript、Dart、Visual Basic 等众所周知的语言。

事实上,编程语言排行榜对于刚入门或者想要拓展学习的开发者而言,极有帮助,同时也能给诸多从业者一些趋势借鉴,而更多的应用仍需要遵循项目的需求。针对此次榜单,不少网友也发表了自己的看法:

@Srinivas JONNALAGADDA:

就 Go 而言,在项目数量上,它似乎是领先于 Swift、Scala、TypeScript 甚至 C 的。不过其在 Stack Overflow 平台上出现不多的原因可能是因为语言相较而言显得小众了些。

另一方面,Go 1 以及以后的版本均保持了兼容性,这样开发者曾在 Stack Overflow 提出的相关问题可能同样适用于现在。这就导致了有关 Go 的新讨论由此减少。

@David Young:

这只是我的个人看法,由于编译器强制错误检查功能(很多代码报错消息可以告诉开发者如何解决与语言相关的问题),Rust 在 Stack Overflow 讨论中出现概率可能会大大降低,这可能会导致其在 GitHub 上很流行,而在 Stack Overflow 不受欢迎。

@Bob

该编程语言排行榜指出了使用主流语言或工具的风险,其中 JavaScript、TypeScript / Anguar、SQL、C# 和 Java 是主流,其余的不太可能在商业行业中获得10年或更长时间的牵引力。

对此,你怎么看?

更完整的报告,可查看:
https://redmonk.com/sogrady/2019/03/20/language-rankings-1-19/