根据最新的数据统计,Java和JavaScript主导了开发者,拥有大量忠实粉丝(开发者)。然而,随着更多的应用程序逐渐转移到云上,这种情况可能会发生变化。


当苹果公司和Facebook争相着去推出新的编程语言,以吸引开发者的想象力和创造力时,已经被证明可靠、屡试不爽的java语言作为开发者的首选语言,占据着至高无上的地位,有趣的是,虽然对Java的一般兴趣(类似c#、php)似乎在一段时间内都在减弱,但新一代的开发人员却不断转向Java和JavaScript来完成任务。

现在问题是,随着越来越多的应用程序转向云端,同时谷歌的Go编程语言是如此完美契合,这种情况是否会持续下去。


Java: 曾经和未来的王者

java似乎永远不会过时,尽管它在20世纪90年代最初为交互式电视而设计,但今天的Java却为企业应用、安卓移动应用开发以及其他一切功能提供了动力。Java开发工程师薪资不错:目前在全球有超过900万Java开发人员,在美国,Java开发人员的平均工资是83,975美元(美元)。这确实是一大笔钱!

也许正是Java的这种非常通用的特性赋予了它如此持久的生命力。Java的特别之处是,它不仅仅是老开发者的主流,而且它在GitHub和Stack Overflow的“狂热开发者”中占据了主导地位,Redmonk分析师Stephen o'grady的分析显示图A:

java的流行度

如果你想要分析上面的情节,o'grady会以这样的方式打破排名:

1. Java / JavaScript (tie)

3. PHP

4. Python

5. C#

6. C++ / Ruby

8. CSS

9. C

10. Objective-C

11. Shell

12. Perl

13. R

14. Scala

15. Haskell

16. Matlab

17. Visual Basic

18. CoffeeScript

19. Clojure / Groovy

需要指出的是这些数据存在大量问题,正如o'grady的同事Donnie Berkholz指出的那样,Github仓库中的语言检测是基于代码行数实现的,因此对于一个由大量javascript模版库(比如jQuery)复制到其中的代码仓库来说 ,该仓库会被检测成为Javascript而不是其大部分功能被实现的语言。

即便如此,Redmonk的数据统计也与 O'Reilly's对流行编程语言的分析(通过图书销售)相一致,更不用说在网站Indeed.com上的招聘信息(图B):

流行的编程语言

Java会否继续保持其领先势头?

在各种各样的措施下,Python、Go和Scala(特别是)相对于Java和JavaScript有了明显的增长。例如,Python在公司企业中蓬勃发展,这可能是因为它继续将R作为一种通用语言,在大数据应用程序中扮演重要角色。(即便如此,o'grady指出,R尽管相对复杂,但在排名中跃升了几个名次,从18位上升到13位。)

正如Berkholz分析显示,Go语言一直在上升,正如他所描述的,“Go,一个看起来非常小的表演者,已经在自由和开源软件中使用了将近十分之一的软件,这是现存最流行的语言。”Go使云的代码编写变得容易。


尽管Go并没有进入前20名,但在Redmonk的最后两项报告中,它在排名前20名的位置上跳了7个位置。这种编程语言感觉像是已经准备好进行更长的跳越 ,如Iron.io在博客中描述了它与Ruby的过渡,Go有很多有利的因素:

“我们研究了其他脚本语言,性能优于Ruby(这并不难),比如Python和javascript/node,我们研究了Scala和Clojure等Java衍生工具,以及Erlang(显然是AWS使用的)和Go(golang)等其他语言,最终Go赢了,事实上,并发是语言的一个基本组成部分;标准的核心库拥有构建API服务所需的几乎所有东西,它简炼、编译快、和Ruby一样,Go是一门有趣的语言,最后,数字不会说谎,在进行了一些原型设计和性能测试之后,我们知道我们可以通过它来推动一些重大的负载。”


虽然Iron.io团队担心寻找懂得Go编程的人才,“我们很快发现我们可以获得顶尖人才,因为我们选择了Go。”“有才华的工程师想要和最新的、最伟大的工程师合作。


取代Java?

它是否足以取代Java成为在编程语言的之巅?老实说不太可能,但是考虑到Go是为云架构而生的,并且我们的应用程序越来越多地转移到云端,随着云应用的普及,其适用性(Go)会有很大程度影响通用性(Java),这是很有可能的。


毕竟,Go使并发操作变得相对容易,而且还提供了与云的供应模型相匹配的其他特性。对于我们越来越多地在企业内外构建的应用程序,这是一种最优的语言。


诚然,Go并没有被列在“在你的业余时间学习的最佳编程语言”列表中,但越来越多的程序开发者们需要在他们工作的时间里学习。