摘要:“Java 是迄今为止最好的答案,”当被问及应用程序的长期可维护性时,Azul Systems 的联合创始人兼首席技术官 Gil Tene 告诉 The New Stack。“你今天就可以雇人。您现在有数百万人需要招聘,他们具备维护 10 年前和 15 年前用
在首次亮相三十年后,Java 继续主导企业发展,经受住了无数“杀手级”技术的考验,并随着从 AI 集成到云原生创新的现代计算趋势而发展。
图片来自 Unsplash
Java 编程语言今天已经 30 岁了。
在首次亮相 30 年后,Java 仍然是企业软件开发的冠军,打破了几十年来关于其消亡的预测,并继续为世界上最关键的业务应用程序提供支持。
“Java 是迄今为止最好的答案,”当被问及应用程序的长期可维护性时,Azul Systems 的联合创始人兼首席技术官 Gil Tene 告诉 The New Stack。“你今天就可以雇人。您现在有数百万人需要招聘,他们具备维护 10 年前和 15 年前用 Java 编写的应用程序的技能。没有其他语言可以真正说出这一点。
Java 经受住了许多本应取代它的技术挑战。Tene 举了几个例子:“我记得 20 年前回答过这个问题,从那以后我就一直用同样的方式回答这个问题,因为你可能还记得在 2000 年代初期,有 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 也发生了变化。“在 2000 年代后期,随着商用硬件变得足够好,以及虚拟机管理程序、虚拟化器和最终云的接管,我们远离了硬件,”他解释说。大约 15 年前,该公司转型为他所说的“一家纯粹的软件公司”。
如今,Azul 在 Java 生态系统中占据了独特的地位。“我们拥有 Java 领域最大的工程团队,”Tene 说。“在 Java 领域,我们可能还拥有除 Oracle 之外最大的商业产品,”他说。该公司现在为各个垂直行业的客户提供服务,专注于让 Java 运行得更快、更高效。
Azul 的 Optimizer Hub 代表了 Java 虚拟机 (JVM) 运行方式的根本转变。该技术允许整个 JVM 队列共享优化数据,而不是每个 JVM 单独优化代码。
Tene 说:“它允许一组 JVM 一起协调、共享经验和交叉优化,而不是每个 JVM 都独立运行并完全处理它必须自己处理的问题。
他说,一些“真正的大地方”已经采用了这项技术,将其引入拥有数以万计的 JVM 和“协调队列”的生产环境中。
Azul 的最新创新是上个月推出的 JVM Inventory。该公司声称,JVM Inventory 是 Azul Intelligence Cloud 的一项功能,是一种 Java 发现工具和“云服务,可持续地对正在运行的 JVM 进行编目,以将 Oracle Java 迁移时间缩短数月,并帮助确保持续的 Oracle 许可证合规性以进行审计防御”。
此外,该公司基于 LLVM 框架构建的 Falcon JIT 编译器表明了 Azul 致力于突破 Java 性能界限的承诺。“Falcon JIT 编译器可以生成世界上最快的 Java,而且速度要快得多。它比 OpenJDK 中的 C2 编译器快 30% 到 40%,“Tene 声称。
Java 的演变讲述了现代计算本身的故事。Tene 说,“30 年前 Web 浏览器中这个有趣、古怪的小东西”已经成为企业计算的支柱。
他补充说,在 90 年代后期,Java“有点闯入企业计算领域,然后在最初推出后的三四年内主导了企业应用程序”。
“如果你看看 Java 的开始,以及它以多快的速度取代了之前用于构建业务应用程序的其他所有东西,我们可以说我们还没有看到将取代 Java 的东西,”Tene 指出。“从它发生到每个人都只使用这种 [新语言] 而不是 Java 构建应用程序,可能只有大约两到四年的时间,而且我们根本没有看到这种趋势发生的迹象。”
然而,即使在新兴的 AI 领域,Java 也在寻找自己的位置。“从我几个月前听到的统计数据来看,Java 目前是排名第三的语言,而 Python 是迄今为止的第一语言,”Tene 谈到 AI 应用程序开发时说。“我们看到,希望将 AI 整合到应用程序中的应用程序数量确实大幅增加,这对 Java 应用程序来说是很自然的事情。”
Java 的持久力归结为一个简单的商业现实:企业需要持久的软件。“当您尝试弄清楚要用什么来构建应用程序时,您应该考虑的一件事是,从现在开始的 5 年和 10 年后,您将如何维护它?你能否雇佣到你需要的人来保持这个项目的活力和运转?
这一理念延伸到 Java 的开源生态系统。“Java 社区作为一个整体,往往会产生人们使用并依赖很多很多年的长期框架、项目和库,”Tene 解释说。“如果你看一下它们,大多数 Java 社区项目都没有很多丑闻,也没有很多独裁者或烦人的人来运行它们。”
Azul 在其客户群中亲眼目睹了这种稳定性。“由于 Java 是如此普遍,我们几乎在你能想到的所有垂直领域都有各种规模的客户,”Tene 说。“当他们想要更好地运行 Java 时,当他们想要 Java 应用程序的良好指标时,这是我们的主要平台擅长的,或者他们只是想要非常好的、负责任的构建、支持的开源,这就是我们的核心平台。我们为这些客户提供服务。
此外,JavaScript 用于 Web GUI,而 Python 是开发人员“编写非常轻量级的东西和服务”的一种方式。但是,每当你看到事情成熟时——从原型设计和一些初始功能到'我需要大规模运行它,我不能让它的成本达到它需要的 50 倍',他们往往会过渡到像 Java 这样的东西,“Tene 说。他以 Twitter(现在的 X)和 LinkedIn 为例。
“我们看到很多人用 Java 或基于 Java 的语言(如 Kotlin 或 Scala)或今年 JVM 的任何新语言重写大型后端,但从这个意义上说,它们都是基于 Java 的,我们只是看到更多,而不是更少,”Tene 说。
同时,可能记得 Java 冗长和繁琐的用户可能会对它的现代化身感到惊讶。“Java 25 将于今年晚些时候发布,它比 Java 8 更平易近人、更友好、更容易启动,”Tene 说。
该语言还通过虚拟线程等创新接受了云原生开发 ,有望简化并发编程。“至少在 Java 中尝试的转变之一,我认为在 Java 25 及更高版本中,我们将有一个有趣的机会回到作运行的线程的简单旧概念,以及同时运行数百万个线程的能力。”
Azul 还通过 Coordinated Restore at Checkpoint (CRaC) 等项目为 Java 的即时启动功能做出了贡献。“我们领导的 OpenJDK 项目专注于为 Java 应用程序和云环境提供非常快速的启动。因此,请考虑一下自动扩展的微服务或需要快速启动的云功能。
尽管 Java 目前占据主导地位,但 Tene 承认,技术中没有什么是永恒的。最终会有东西取代 Java。“当这种情况发生时,我敢肯定,无论它被称为 Java 还是其他名称,我确信我们会大量使用它,并就它进行大量讨论,也会对它感到兴奋。”
但就目前而言,在诞生三十年后,Java 继续证明,有时最好的技术并不是最新的,而是能够有效、可扩展和持久的技术。正如 Tene 所说,关于接下来可能会出现什么大型编程语言:“我们还没有看到它,我从 2000 年代初到中期就一直在说这个,所以,你知道,我一直在寻找,只是我还没有看到它。
与此同时,在一个痴迷于下一个大事件的行业中,Java 在其成立 30 周年之际继续蓬勃发展,这表明可靠性、可维护性和强大的生态系统通常比尖端功能更重要。
来源:AI中国一点号