摘要:它是一门很魔幻的语言。自首次亮相的三十年间,Java始终在主导着各大企业级的开发市场,经受住了无数“杀手级”技术的冲击,云原生来了,它跟进,大模型来了,它集成,不管现代计算的创新风云如何变幻,Java始终屹立不倒。
5月,Java迎来了30岁生日。
它是一门很魔幻的语言。自首次亮相的三十年间,Java始终在主导着各大企业级的开发市场,经受住了无数“杀手级”技术的冲击,云原生来了,它跟进,大模型来了,它集成,不管现代计算的创新风云如何变幻,Java始终屹立不倒。
30年里,多少有关“Java消亡”、“Java已死”的言论此起彼伏,但回头看,Java这朵傲梅依旧“傲视群芳”,它依旧是企业软件开发领域的王者,并持续为全球最关键的商业应用提供动力。
“到目前为止,Java对此有着最佳的实践记录。”
近日,知名公司Azul Systems的联合创始人兼首席技术官Gil Tene在一次采访中被问及当今应用的长期可维护性问题时,认为Java有着绝对的优势。
他指出,“今天你就能雇到人。你有数百万掌握技能的人可以雇佣,他们能够维护10到15年前用Java编写的应用程序。没有其他语言能真正做到这一点。”
那么,Java会消亡吗?当然。 Tene认为,在技术领域,没有什么是永恒的,最终会有东西取代Java。
“当那发生时,我敢肯定,无论它叫Java还是别的什么,我们都会深入研究它、热烈讨论它,并为之兴奋。”
话不多说,本篇文章带领各位探讨:30岁的Java是如何杀出一条血路,并将如何在AI大行其道的今天,续写王者传奇!
Java经受住了无数本应取而代之的技术挑战。Tene举例说:“我记得20年前就回答过这个问题,从那以后我的回答方式也大致相同,因为你可能还记得,在21世纪初,LAMP(Linux、Apache、MySQL、PHP/Perl/Python)技术栈曾一度要席卷全球并扼杀Java,但现在已经没有多少LAMP技术栈的程序员了。”
那些所谓的Java“杀手”名单,听起来像是一个曾经热门技术的墓地。“然后是Ruby on Rails,它也曾扬言要席卷全球并扼杀Java,但现在已经很难找到Ruby程序员来维护那些东西了,”Tene补充道。
值得注意的不仅仅是Java的生存能力——更是其持续的增长。“Java一点也没有萎缩。Java一直在持续增长、增长、再增长,并且它的邻居们(其他技术)也在不断发展壮大,”Tene解释说。
Azul Systems 本身就体现了Java的演进。该公司成立于2002年,最初通过构建定制硬件来解决Java性能问题,这是一种新颖的方法。“我们围绕运行Java应用程序构建了一些有趣的数据中心硬件解决方案,并将它们整合、集中到我们称之为计算设备和计算设备集群中,”Tene回忆道。“今天,我们会称之为虚拟Java云。”
但随着计算领域的变化,Azul也随之改变。“在21世纪末,随着商用硬件变得足够好,以及虚拟机监控程序、虚拟化技术乃至云计算的兴起,我们转型,脱离了硬件,”他解释说。大约15年前,该公司转型为他所说的“纯软件公司”。
如今,Azul在Java生态系统中占据着独特的地位。“我们拥有Java领域最大的工程团队,”Tene说。“在Java领域,除了Oracle之外,我们可能拥有最大的商业产品,”他说。该公司目前服务于各个垂直行业的客户,专注于让Java运行得更快、更高效。
Azul的Optimizer Hub代表了Java虚拟机(JVM)运作方式的根本性转变。该技术不再让每个JVM独立优化代码,而是允许整个JVM集群共享优化数据。
“它允许一个JVM集群进行协调、共享经验并共同进行交叉优化,而不是每个JVM独立运行并完全自行处理其必须面对的问题。”
他说,一些“非常大的机构”已经采用了这项技术,并将其投入到拥有数万个JVM的生产环境中进行“集群协调”。
Azul最新的创新是上个月推出的JVM Inventory。该公司声称,作为Azul Intelligence Cloud的一项功能,JVM Inventory是一个Java发现工具和“云服务,它能持续编目正在运行的JVM,从而将Oracle Java的迁移时间缩短数月,并帮助确保Oracle许可证的持续合规以应对审计。”
此外,该公司基于LLVM框架构建的Falcon JIT编译器,彰显了Azul致力于推动Java性能边界的决心。“Falcon JIT编译器产生的Java代码是世界上所有JVM中最快的,而且领先幅度很大。它比OpenJDK中的C2编译器快30%到40%,”Tene声称。
Java的演进本身就讲述了现代计算的故事。Tene说,30年前,它只是“网页浏览器中一个有趣、古怪的小东西”,如今已成为企业计算的支柱。
他补充说,在90年代末,Java“有点像闯入了企业计算领域,然后在最初推出的三到四年内就主导了企业应用。”
“如果你回顾Java的初期以及它如何迅速取代了之前用于构建商业应用的所有其他技术,我们可以说,我们还没有看到能够取代Java的东西,”Tene指出。“从那种情况发生到每个人都用那种[新语言]而不是Java来构建应用程序,可能只需要大约两到四年时间,而我们根本没有看到这种趋势发生的任何迹象。”
然而,即使在新兴的人工智能领域,Java也正在找到自己的位置。“根据我几个月前听到的统计数据,Java目前是该领域排名第三的语言,而Python则遥遥领先,”Tene在谈到AI应用开发时说。“我们看到希望将AI融入应用程序的应用数量大幅增加,这对于Java应用程序来说是很自然的事情。”
Java的持久力归结为一个简单的商业现实:企业需要能够持久运行的软件。“当你试图弄清楚你想用什么来构建你的应用程序时,你应该考虑的一件事是,五年后、十年后你将如何维护它?你是否能够雇佣到所需的人才来保持这个东西的活力和运行?”
这种理念也延伸到了Java的开源生态系统。“整个Java社区倾向于产生长寿的框架、项目和库,人们会使用并依赖它们很多很多年,”Tene解释说。“如果你观察大多数Java社区项目,会发现它们没有太多丑闻发生,也没有很多独裁者或讨厌的人在运营它们。”
Azul在其客户群中亲眼见证了这种稳定性。“由于Java如此普遍、如此流行,我们几乎在你能想到的所有垂直行业都有各种规模的客户,”Tene说。“当他们希望Java运行得好或更好时,当他们要么需要Java应用的良好指标(这是我们Prime平台的强项),要么只是想要非常好的、负责任地构建、有支持的开源产品(这是我们Core平台的核心),我们都会为这些客户提供服务。”
此外,Tene说,JavaScript用于Web图形用户界面,而Python是开发者用来“编写非常轻量级的东西和服务”的方式。“但每当你看到事情走向成熟——从原型设计和一些初始功能发展到‘我需要大规模运行这个,并且不能让它的成本是应有成本的50倍’时,它们往往会转向像Java这样的东西。”他列举了Twitter(现在的X)和LinkedIn作为例子。
“我们看到很多人用Java或基于Java的语言(如Kotlin、Scala或今年JVM上出现的任何新语言)重写大型后端,但从这个意义上说,它们都是基于Java的,我们看到的这种情况只多不少,”Tene说。
与此同时,那些可能还记得Java冗长和笨重的用户,可能会对其现代的化身感到惊讶。“将于今年晚些时候发布的Java 25,与Java 8相比,在易用性、友好度和项目启动便捷性方面都有了显著提升,”Tene说。
该语言还通过虚拟线程等创新拥抱了云原生开发,这些创新有望简化并发编程。“至少在Java中,我们正在尝试进行一种转变,我认为随着Java 25及更高版本的推出,我们将有机会回归到操作在线程中运行的简单旧概念,并能够同时运行数百万个此类线程。”
Azul也通过诸如检查点协调恢复(CRaC)这样的项目为Java的即时启动能力做出贡献。“我们领导的那个OpenJDK项目专注于为Java应用程序和云环境提供非常快速的启动。所以,可以想象一下那些需要自动扩展的微服务或需要快速启动的云函数。”
尽管Java目前占据主导地位,但Tene承认,在技术领域没有什么是永恒的。最终会有东西取代Java。“当那发生时,我敢肯定,无论它叫Java还是别的什么,我们都会深入研究它、热烈讨论它,并为之兴奋。”
但就目前而言,在其诞生三十年后,Java继续证明,有时最好的技术并非最新潮的——而是那些行之有效、可扩展且持久耐用的技术。正如Tene在谈到接下来可能会出现什么重要的编程语言时所说:“我们只是还没看到它,我从21世纪初到中期就一直在这么说,所以,你知道,我一直在寻找,只是还没看到它。”
不过,目前看,Java的王者之威依旧。毫无疑问的是,Java30年铸就的生态已经足够强悍,即便放在今天这样一个痴迷于追逐下个“重大事件”的行业中,没有哪个企业敢放豪言:抛弃Java吧!
这表明,可靠性、可维护性和强大的生态系统,通常比尖端、前沿的功能更为重要。
参考链接:https://thenewstack.io/azul-cto-java-at-30-still-rules-enterprise-dev/
来源:51CTO一点号