Reasons and advantages for upgrading to Java 6 for

2019-01-23 22:35发布

I'd like to upgrade from Java 5 to Java 6. We all know about the technical advantages and benefits, but:

I have the problem that a major client refuses to upgrade from java 5 to java 6 because of "the risks" and "no/too few benefits for us" (banking sector).

What can be answered to a non-technical decider at the client what benefits he'll get from an upgrade - or otherwise which problems/consequences may arise if he'll stay with java 5?

It's not a "fire and forget"-product, it's activly extended with new functionality/features - the development is and will be constantly going on - the dev team would definitly benefit from the jdk 6 features/tools.

EDIT: The reached EOL of Java 5 is a valid point indeed, but it doesn't convince the client because he is using the IBM JRE/JDK 5, which seems that it has not reached its end of life yet. And, beside that the client stated: "Java 5 is running fine for years and its unlikely that new, unseen problems arise"

11条回答
干净又极端
2楼-- · 2019-01-23 23:15

Rather than convince him that there are no risks, I would suggest instead working with him to come up with a risk mitigation strategy.

In other words, agreeing that if you can show that the system running under Java 6 passes tests X, Y and Z he'll be happy to upgrade.

查看更多
趁早两清
3楼-- · 2019-01-23 23:20

Staff recruitment/retention becomes an issue if the application is seen to be old fashioned. Developers do not usually want to stick around if they see no progression.

查看更多
Summer. ? 凉城
4楼-- · 2019-01-23 23:22

Over time, the client will increasingly need to upgrade because of things like:

  • Java 5 not being supported on some new hardware or operating system platform,
  • poor performance relative to newer Java releases,
  • greater coding and testing costs relative to newer Java releases; e.g. due to the "clunkiness" of older APIs, not being able to use streams, etc
  • increasing cost of vendor support1: you have to pay for support to get security patches, and the older the release the more you pay (I think)
  • difficulty of retaining Java developers to work on Java 5 projects,
  • third party Java libraries no longer being developed and supported for Java 5,
  • compliance issues; e.g. https://stackoverflow.com/a/3434063/139985
  • and so on.

But the longer the client delays upgrading, the larger the Java version jump involved, and more work (and potentially pain) that will be involved.

And the longer the client delays, the larger the accumulated costs of things like hardware provisioning, developer costs, deferred projects and so on.

To illustrate, suppose that you had waited 10 years to upgrade from Java 1.1 to Java 1.2. That would mean that you would have spent extra 10 years developing applications that used Hashtable and Vector as their primary data structures. And when you finally upgraded you would have 10 years worth of additional "legacy" code that is more difficult to maintain than if it had been written using Java 1.2 collections.

But the bottom line is that if the client insists on staying an old version of Java, you need to either go along with their wishes (and make sure that you pass on the extra costs!), or find a way to exit your contractual relationships with the client.


1 - The End of Life / End of Service dates vary from one vendor to the next, but AFAIK all major vendors have EOL'd Java 5 by now. Indeed Oracle have EOL's Java 6 and Java 7 as well.

查看更多
姐就是有狂的资本
5楼-- · 2019-01-23 23:22

Since you seem to be aware of all obvious benefits of java 6, and the client has good reason to be conservative, all that's left is to stress that not switching to java 6 will hamper development.

Development will be slower because you will undoubtedly spend time on implementing functionality you get for free in newer releases. And perhaps worst of all, not upgrading on a regular basis makes an upgrade more painful as time goes by, up to the point where it becomes practically impossible.

Typically, overdue upgrades result in a highly unpredictable scenario, with a resulting production loss across the entire company over a longish period of time. (assuming the software impacts a large enough user base within the company)

查看更多
萌系小妹纸
6楼-- · 2019-01-23 23:25

In Short Java 6 is more optimized,better performance ,reliable and currently supported. It also provides advance options like diagnostics, debugging etc.

Most of Java based technology are already migrated or migrating to Java 6. Even they would stop support for earlier versions.

查看更多
登录 后发表回答