升级到 Java 6 作为非技术决策程序的原因和优势(在客户端)

2022-09-01 05:37:38

我想从 Java 5 升级到 Java 6。我们都知道技术优势和好处,但是:

我有一个问题,一个主要客户拒绝从java 5升级到java 6,因为“风险”和“对我们来说没有/太少的好处”(银行业)。

对于客户的非技术决策者,他可以从升级中获得什么好处 , 或者如果他继续使用java 5,可能会出现哪些问题/后果?

它不是一个“火与忘”的产品,它积极地扩展了新功能/特性 - 开发正在并将继续进行 - 开发团队肯定会从jdk 6的功能/工具中受益。

编辑:Java 5的EOL确实是一个有效的观点,但它并没有说服客户,因为他正在使用IBM JRE / JDK 5,这似乎还没有达到它的寿命终点。除此之外,客户表示:“Java 5多年来一直运行良好,不太可能出现新的,看不见的问题”


答案 1

Java 5 现在已经过了它的生命周期结束日期。Sun/Oracle 将不再向其发布公开更新。

Java SE 5.0 正处于 Java 技术生命周期结束 (EOL) 过渡期。EOL 过渡期从 2007 年 4 月 8 日开始,将于 2009 年 10 月 8 日完成,届时 Java SE 5.0 将达到其使用寿命结束 (EOSL)。

如果你现在在Java5中发现一个错误(例如,热点崩溃 - 它们确实发生了),你就搞砸了。如果您与 Sun/Oracle 签订了专门的支持合同,他们确实为那些卡在过时版本上的人提供了该合同,那么他们可以为您修复它。

您可能会争辩说,留在不受支持的平台上的风险大于(更易于管理的)迁移风险。


答案 2

随着时间的推移,客户端将越来越需要升级,因为以下原因:

  • Java 5 在某些新硬件或操作系统平台上不受支持,
  • 相对于较新的 Java 版本,性能较差,
  • 与较新的Java版本相比,编码和测试成本更高;例如,由于旧API的“笨拙”,无法使用流等
  • 增加供应商支持的成本1:您必须支付支持费用才能获得安全补丁,并且版本越旧,您支付的费用就越多(我认为)
  • 难以留住 Java 开发人员来处理 Java 5 项目,
  • 不再为 Java 5 开发和支持的第三方 Java 库,
  • 合规问题;例如 https://stackoverflow.com/a/3434063/139985
  • 等等。

但是,客户端延迟升级的时间越长,涉及的 Java 版本跳转就越大,并且将涉及更多的工作(以及潜在的痛苦)。

客户延迟的时间越长,硬件配置、开发人员成本、延期项目等累积成本就越大。

为了说明这一点,假设您等了 10 年才从 Java 1.1 升级到 Java 1.2。这意味着您将花费额外的10年时间来开发使用并作为其主要数据结构的应用程序。当你最终升级时,你将有10年的额外“遗留”代码,这些代码比使用Java 1.2集合编写更难以维护。HashtableVector

但最重要的是,如果客户坚持使用旧版本的Java,你需要要么顺应他们的意愿(并确保你转嫁额外的成本!),要么找到一种方法来退出你与客户的合同关系。


1 - 生命周期结束/服务终止日期因供应商而异,但AFAIK所有主要供应商现在都有EOL'd Java 5。事实上,Oracle也有EOL的Java 6和Java 7。


推荐