尽管Java被称为编程语言的“老马”,但它仍在不断发展。
在Tiobe排行榜中,它仍然是的第一名,在PYPL和RedMonk排行榜上则在与Javascript和Python争夺第二名的位置,按照GitHub上库贡献者的数据来看,它是第三大最受欢迎的语言(根据GitHub的10年数据)。
时光在变,Java一直没变,过去企业在谈Java,现在还是在谈Java,这一点可以在财富500强企业的技术栈中得到验证。
为什么Java能够一直流行呢?其中的原因有很多,例如企业最看重的是向后兼容性,众所周知,向后兼容性对重大的更新和升级非常敏感,而20年前用Java 5编写的系统还是能够在Java 8下编译和运行。
那么,2019年Java的发展如何呢?Baeldung调查了6707名开发经验丰富的技术人员,并从中获得了一些结论。
从Java 8 之后,Java的发布周期明显快了很多,现在已经快要到Java 14了。你可能会认为大多数人已经切换了更新版本的Java了,但实际情况并非如此,根据调查显示,80%的受访者仍然在使用Java 8。
为什么即使有了新版本,Java 8 仍然最受欢迎呢?这其中有很多原因:
首先,Java 8 开创性的语言特性(参见我的闭包和Lambdas书评)仍然在被编程社区吸收。即使到了2019年,关于Steam和Optional的相关问题仍在网上被热烈讨论,Baeldung自己也发布了Java 8 Optional指南。
其次,Java 9 首先支持的新模块系统使人们感到困惑,而不是使他们感觉更轻松。
第三,在后来的Java版本中引入的特性似乎没有足够的说服力让大家下决心切换。
最后,还存在一个大问题,在2019年1月份之后,Java SE 8的公共更新需要商业许可。这就是Oracle JDK与OpenJDK之争的开始,正如我们在之前的文章中所说的:
随着Oracle JDK发行和支持的变化,是使用Oracle JDK,还是Oracle的OpenJDK,或者是其他供应商的OpenJDK,这中间在权限上存在着相当大的不确定性。此外,在不同的供应商那里是否可以得到免费更新的相关计划,以及(新的和现有的)付费的支持模型,这些都要予以考虑。
在框架的采用方面,Spring占据了主导地位。与传统且臃肿的Java EE相比,Spring 是现代化的、基于Java的企业应用程序的轻量级框架。Spring Boot的采用率也很高。
在Java 构建工具的调查中,Maven 以相当大的优势排在了第一位,这表明排在第二位的Gradle仍然是Android的代名词,之后需要做更多的努力来摆脱这些限制,以便被认为是Java构建通用实践的一个可行的选择。
在IDE的调查中,IntelliJ以将近60%的份额占据了第一的位置,为什么IntelliJ如此受欢迎呢?Andrey Cheptsov 曾在一篇博客中这样写道:“在你编写代码时,IntelliJ IDEA也忙着在构建它的语法树,在类、变量、字段、方法和它们的用法之间创建引用,分析执行流,利用这些信息,它可以提供补全功能,帮助你快速浏览代码,提供错误分析和方便的快速修复。”
而传统的Eclipse 则有点不妙,其占比从去年的38%下降到32.8%
早在2011年,Forrester的首席分析师Mike Gualtieri 副总裁就写过一篇既有预见性又不受时间限制的文章,名为《停止在WebLogic、WebSphere和JBoss应用服务器上浪费金钱》
他开头写道:
“使用Apache Tomcat吧,它是免费的。 我不明白为什么有些公司要在Oracle Weblogic或IBM WebSphere Application Server这样的Java应用服务器上花费数百万美元。我明白为什么有些公司要在Red Hat JBoss上花钱,因为他们想要节省在应用服务器上的开销。但是,为什么要花钱呢?Apache Tomcat将满足大多数Java web应用程序的部署需求。”
该表反映了这种说法:Tomcat一直保持着轻量级的资源消耗,毫无争议地击败Jetty 夺得冠军。那些重量级产品的位次反映了它们那个年代已经过时的需求。
首先,让人感到有些惊讶和有趣的是,有62.6%的开发人员只使用Java,这与去年不相上下(62.8%)。考虑到大家对Kotlin的大量采用,我的预期是这个数字肯定会下降,但现在看来并没有下降。不过,Kotlin仍然从去年的13%增长到了现在的16.5%。和Gradle一样,Kotlin完全可以作为一种通用语言来用,尤其是在后端环境中,但在安卓之外它仍然未被接受得到普遍应用。
MySQL和PostgreSQL是前两名,Oracle是第三名,MongoDB和MS SQL是第四和第五名。这里有两个值得注意的趋势。与Percona的数据库管理系统流行度调查结果一致,关系型数据库管理系统胜过NoSQL,而开源数据库管理系统则比大型商业数据库管理系统做得更好。就像前文中的Web服务器一样,人们寻求的也是更轻量级的等价物,尤其是PostgreSQL。
总而言之,根据调查结果显示,Java不会被取代,在未来几年也将在继续保持Top 3的位置。不妥,尽管人们仍然坚持使用该语言及其围绕它的生态系统,但他们也在试图远离Oracle及其产品,如IDE(JDeveloper)、服务器(WebLogic)、JDK及其旗舰数据库。MySQL是个特例,因为它基本上不受甲骨文所有权的影响。大多数Java用户正在寻找更轻量级、更高效、更便宜、对开发人员和许可更友好的等价物,这些等价物完全比得上Oracle的同类产品,甚至更好。
原文链接:How is Java Doing?
领取专属 10元无门槛券
私享最新 技术干货