36

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

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

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

它不是“一劳永逸”的产品,它积极地扩展了新的功能/特性——开发正在并将不断地进行——开发团队肯定会从 jdk 6 的特性/工具中受益。

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

4

11 回答 11

29

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 签订了专门的支持合同,他们确实为那些停留在过时版本上的人提供了合同,那么他们可以为您修复它。

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

于 2010-07-30T13:12:41.013 回答
18

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

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

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

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

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

但底线是,如果客户坚持使用旧版本的 Java,您要么顺从他们的意愿(并确保转嫁额外费用!),要么找到退出合同关系的方法与客户。


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

于 2010-07-30T14:13:22.430 回答
17

来源

问:Java SE 6 与之前的版本(J2SE 5.0)有何不同:在功能、安全性、性能等方面有哪些改进和更新?

答:任何拥有现有 Java 应用程序的人都将立即受益于 Java SE 6 的性能、可靠性和 UI 改进。再加上平台内置的扩展监控和诊断能力,该版本提供了巨大的开箱即用无需任何编码更改甚至重新编译即可获得好处。只需在这个最新版本上运行现有的 Java 应用程序即可。

关于同一问题的更多信息(可能有助于向客户详细说明):

升级到 Java 6 的 10 大理由

为什么要升级到 Java 6?

于 2010-07-30T13:12:55.953 回答
14

与其说服他没有风险,我建议与他一起制定风险缓解策略。

换句话说,同意如果你能证明在 Java 6 下运行的系统通过了 X、Y 和 Z 测试,他会很乐意升级。

于 2010-07-30T13:09:58.197 回答
9

如果应用程序被认为是过时的,员工招聘/保留就会成为一个问题。如果没有进展,开发人员通常不想留下来。

于 2010-08-02T12:41:02.453 回答
5

告诉他这是一个小升级:使用"-version"命令告诉他版本从 1.5 到 1.6。:)

于 2010-08-04T16:40:28.420 回答
4

由于您似乎知道 java 6 的所有明显好处,并且客户有充分的理由保守,所以剩下的就是强调不切换到 java 6 会妨碍开发。

开发速度会慢一些,因为您无疑会花时间实现在较新版本中免费获得的功能。也许最糟糕的是,不定期升级会使升级随着时间的推移变得更加痛苦,甚至变得几乎不可能

通常,逾期升级会导致高度不可预测的情况,从而导致整个公司在很长一段时间内出现生产损失。(假设该软件影响了公司内足够大的用户群)

于 2010-08-06T12:22:55.680 回答
3

去年我们从 1.4 升级到了 1.6。它对发展提供了巨大的帮助,但并非没有打嗝。虽然这不是我们的动机,但今天我们需要通过 PCI(信用卡处理要求)“保持最新”。您的应用程序可能运行顺利,但我确信 Java 1.5 有一些自 1.6 以来已修复的安全漏洞。

于 2010-08-08T11:03:15.623 回答
2

简而言之,Java 6 更优化、性能更好、更可靠且目前受支持。它还提供高级选项,如诊断、调试等。

大多数基于 Java 的技术已经迁移或迁移到 Java 6。即使它们会停止支持早期版本。

于 2010-08-03T15:50:11.267 回答
1

我将从客户的角度来回答。

我们的系统开发车间仍在使用 Java 5。要迁移到 Java 6,我们必须测试我们的整个产品组合。

当我们从 Java 4 迁移到 Java 5 时,这个过程耗时 6 个月,并且涉及到一些代码更改(主要是更改枚举变量名以进行枚举)。

此时,我们的系统开发部门认为 Java 6 的好处不值得迁移的痛苦,

您的银行客户也有同感。在被迫迁移到 Java 6 之前,它们不会迁移。

于 2010-08-08T01:11:19.423 回答
0

去年我们和一个客户遇到过这个问题,我们坚定地表示,未来的开发(针对 Java 1.4)在未来至少会更加昂贵,随着时间的推移,我们甚至可能不再与我们一起成为可能。这是一个风险,但我们认为这是值得的,因为它使我们能够大大降低开发成本。显然我们并不像开场白那样直率。我们向客户展示了为什么保持原样会变得越来越昂贵的所有原因。

于 2010-08-05T09:42:59.597 回答