作为衡量受欢迎程度的另一种方法,Oracle经常喜欢引用世界上有900万Java开发人员的统计数据。无论细节如何,我认为我们都可以同意,全世界确实有数以百万计的Java开发人员。

问题是,为什么Java继续如此受欢迎?我认为有很多原因。让我们只强调四个:

1.实用性

James Gosling将Java描述为一种“蓝领”编程语言。它旨在允许开发人员以最少的麻烦完成工作,同时仍使开发人员可以在以后使用其他人(甚至他们自己的)代码并了解该怎么做。当然,您可以使用Java编写不可读的代码,就像使用任何一种语言一样,但是使用良好的编码约定,它比许多其他语言更具可读性。

2.向后兼容性

Sun和随后的Oracle付出了巨大的努力,以确保为一种Java版本编写的代码将继续在新版本上运行。尽管情况并非总是如此(Java SE 1.4中的断言,Java SE 5中的枚举),并且有时导致没有兼容性(泛型)可能会更好的实现,但对于开发人员而言,这是一个非常引人注目的功能。没有什么比使用有效的代码并不得不对其进行更改以使其在较新版本的平台上运行更糟糕的了。那只是浪费时间。

3.可伸缩性/性能/可靠性

经过二十多年的发展和数千个人年的开发,Java是一个坚如磐石的平台,其性能可以匹配甚至超过本机代码(这是由于JVM使用动态而不是动态方式进行了一些优化)静态代码分析)。关于可伸缩性,只需看看一些使用Java的大型企业:Twitter(由于RoR无法扩展而将Ruby-on-Rails迁移到JVM),Spotify,Facebook,Salesforce,eBay,当然还有,甲骨文 Hadoop,Cassandra和Spark是大多数大数据项目的基础,它们是用Java或Scala编写的,并在JVM上运行。如果需要可伸缩性和性能,则Java和JVM是显而易见的选择。

4.新鲜度

对我来说,这是个大问题。从TIOBE图可以看出,自2014年10月(即JDK 8推出后不久)以来,Java的普及率出现了大幅增长。由于引入了Lambda表达式和流API,JDK 8对于使用Java的开发人员来说是一个巨大的变化。突然之间,Java开发人员可以以更多功能的方式完成工作,而不必学习像Scala这样的全新语言。这些功能还使利用多核/多处理器机器变得更简单,而不必编写许多复杂且可能容易出错的多线程代码。随着Jigsaw项目计划在JDK 9中交付,我们将看到模块化使大型企业应用程序的构建,部署和维护变得更加容易。JDK 10中已经计划了新的语言功能,例如值类型。

我期待Java再过十年就被授予年度编程语言奖。