Java已经存在了很长时间,并且在过去的几年中,它进行了重大更改以保持其相关性。根据JetBrains 在2019年的开发者生态系统状况报告,它仍然是开发人员中最受欢迎的编程语言。但它可能不会永远保留该标题。

java

尽管它仍然位于许多编程语言的顶部,但其他语言(例如Python)也正在紧随其后。实际上,TIOBE预测,在未来几年中,Python将超越Java(和C)成为最受欢迎的编程语言。

Python不是Java的唯一竞争者。Kotlin的崛起也夺走了Java的部分份额,特别是在Google开始支持Kotlin进行Android开发之后。

Java恰好在正确的时间放置在正确的位置,类似于Python现在在正确的时间在正确的位置出现在AI和机器学习上的兴趣激增。

根据Red Hat产品管理高级总监Rich Sharples的说法,在25年前创建Java时,Java的设计考虑了网络,并且具有许多用于网络通信的功能。大约在多处理器系统开始流行的时候,它是最早利用这些硬件进步而无需开发人员进行过多工作的语言之一。

除了这些功能之外,它还获得了Sun Microsystems,IBM和Oracle的业界大力支持,最终收购了Sun。所有这些因素共同使Java成为一种非常成功的语言,并且是数十年来许多开发人员的首选。

Sharples解释说,之所以如此受欢迎,是因为它仍然可以满足跨网络工作的需求。当然,它也是开源的。“如今,技术领域发生的几乎所有有趣的事情都是围绕开源进行的。而且在主流开放源代码中也相对较早。因此,从技术角度来看,它已选中了所有复选框。”他说。

Java非常适合当时的环境,但是随着技术的变化,它还没有真正老化。Sharples解释说Java做了很多“很酷的动态工作”,但是微服务和无服务器等技术并不需要这些功能。

根据Sharples的说法,当在这类环境中工作时,开发人员往往会在遇到问题时才重新开始。夏普莱斯说:“如果我们看到一个问题,我们看到一个错误,我们就将所有东西都烧掉,然后以最新版本重新部署新容器。”

因此,实际上不再需要Java拥有的所有这些动态功能。“您得到的很多东西在那些现代体系结构中并没有真正提供太多价值……回想一下,Java被设计为在大型多进程计算机上运行。您几乎可以保证自己拥有这台机器,并且可以为每个JVM或应用程序服务器运行多个应用程序。那不是我们今天生活的世界。现在,您可以在一定时间内获得虚拟机的一部分,甚至只是一个函数的一部分。因此,这些功能中的许多功能带来了很大的负担和复杂性,并且价值不大。因此,如果您将函数作为服务看待,您不会发现Java提到了很多东西。”

java

但是Sharples认为Java不会消失。他认为Java可能会在很多年甚至几十年内仍会经历增长。

有许多项目使Java在当今的环境中蓬勃发展,例如Oracle的GraalVM(它允许在共享的运行时中实现互操作性)和Red Hat的Quarkus(这是Kubernetes的本机Java框架)。

负责Java Enterprise Edition(现为Jakarta EE)的Eclipse基金会执行董事Mike Milinkovich也认为Java本身将会发展以支持这些技术。“我认为从JVM到Java都将发生Java更改,” Milinkovich说。“因此,JVM中的任何新功能都将有助于将JVM与Docker容器集成在一起,并能够更好地在Kubernetes中对Docker容器进行检测,这无疑将是一个很大的帮助。因此,我们将寻求Java SE向该方向发展。”