移除 Java 可能是一个复杂的过程,因为编程语言和工具包在您的应用程序和基础架构中无处不在。
译自 Breaking Up With Java: Is the Cost and Complexity Worth It?,作者 Simon Ritter。
在 Oracle Java 的许可和定价挑战迫使公司探索替代方案的背景下,许多公司正在考虑迁移到 OpenJDK 发行版。
然而,一些公司甚至考虑将他们的业务应用程序重构到 另一种编程语言,以避免 Oracle 带来的风险和持续的不确定性。在四年内四次许可和定价政策变更,这种不确定性不太可能很快停止。
以下是对选择将整个应用程序资产从 Java 中移除所涉及的实际风险和收益的清晰概述,以便您能够正确了解此决定的影响和不切实际的性质。
神话:摆脱 Java 比处理 Java 的许可和定价风险更容易。如果 Oracle 在 Java 上制造问题,请移除问题的根源并使用另一种编程语言。
现实:摆脱 Java 很困难。重写代码可能需要数年时间,并且存在代码无法提供相同功能并可能包含新错误的固有风险。认真考虑用另一种语言重写的组织通常会得出结论,存在更好、更实惠的替代方案。
如果 Oracle 的定价、许可和执行策略变得过于繁重,一些公司可能会想要放弃,并考虑完全移除 Java。除了 Java 由于其经过验证的速度、规模、稳定性、安全性以及季度功能增强和升级而成为大多数企业应用程序的既定方案之外,它也是大多数组织开发人员队伍的核心技能。重构和重新开始将对您内部的应用程序程序员产生严重后果,因为团队要么需要 学习其他编程语言,要么被替换。
抛开所有这些,移除 Java 本身可能是一个复杂的过程,因为这种编程语言和工具包在您的应用程序和基础设施中无处不在。
例如,流行的 框架和工具,如 Spring、Struts、Google Web Toolkit、Grails、Vaadin 和 Apache Log4J 都依赖于作为“Oracle Java”核心的 Java 开发工具包 (JDK)。像 Apache Tomcat、Jetty 和 Wildfly/JBoss 这样的 Web 服务器也依赖于 JDK。Kafka、Hbase 和 Solr 等基础设施也是如此。这些程序中的每一个都有其优势,需要用另一种语言替换,您需要验证切换是否值得。
如果您需要在 Oracle 将您迁移到昂贵的许可计划之前摆脱 Oracle Java,那么现在是时候找到一个价格合理的 Oracle Java SE 替代方案,该方案提供版本与版本兼容性和相同及时的更新。
如果您选择继续移除 Java,以下是一些您需要克服的挑战:
以下是在生产环境中移除 Java 时的一些典型挑战:
组织可以采取措施来降低发生灾难性事件的风险。这些步骤包括:
如上所述,重构 Java 代码存在风险并需要时间。大多数大型企业会发现自己需要重构来自多个 Java 发行版和版本的代码。
留在 Java 上的公司可能拥有熟悉代码的人员来进行重构。然而,用其他语言替换 Java 则要复杂得多,可能需要大量新人才或承包商团队。这两种途径都可能很昂贵、耗时且有风险。
Java 应用程序通常依赖于许多不同的库和框架。如果删除了其中一个依赖项,则可能会破坏应用程序。循环依赖会导致问题,包括相互依赖模块的紧密耦合,这会影响单独使用每个模块的能力。
以下是 Java 依赖项可能导致删除 Java 变得困难的一些具体原因:
您可以采取一些措施来简化删除 Java 依赖项的过程:
从公司生产环境中删除 Java 的难度取决于许多因素,包括环境的大小和复杂性、依赖 Java 的应用程序数量以及 IT 人员的专业水平。一般来说,从生产环境中删除 Java 是一个复杂且耗时的过程。重要的是要仔细计划和执行删除过程,以避免中断关键业务应用程序。
请记住,Java 仍然是世界上最流行的编程语言之一,因为它具有灵活性、易用性和互操作性。
在 Azul Java 状态调查和报告 2023 中,98% 的受访者在他们的软件应用程序或基础设施中使用 Java,57% 的受访者表示他们的大多数应用程序都是基于 Java 的。将此数字与基于 Java 的框架、库和基于 JVM 的语言相结合,很明显 Java 继续在现代企业中发挥着重要作用。
删除 Java 的难度是否意味着您必须永远与 Oracle 合作以满足您的 Java 需求?当然不是。有许多 TCK(技术兼容性工具包)认证的 OpenJDK 发行版可用,包括 Azul Platform Core。