I am always curious to see if companies are fast enough in adopting latest upgrades in Java related technologies. After much research, to my surprise, I discovered that most of the websites are leveraging the improvements in Java technologies (i.e. using latest version) and thereby building better websites.
However, I know many companies, who are still dragging their feet with Java 1.4. Even though these companies have upgraded to latest web/application server, they are still coding/compiling to 1.4 versions, meaning, developers are not able to leverage the latest advancements in Java technologies while developing code, resulting in writing more code, and arguably code with poor performance also. This results in more time spent on IT and less time innovating.
I am not saying the enterprises have to upgrade to latest and greatest technologies all the times. Rather, Iam just saying, that companies have to leverage advancements in technology to build better applications faster. Agile technology enablement! I understand that LOBs are “risk-aware” but we in IT have to come up with risk-mitigation strategy and be able to convince the Business about the business benefits. I know enterprises usually wait till end of life for a product/software but that may not be the right approach always – definitely not in this case.
Imperatives for upgrade:
- older versions of Java not being supported on some new hardware platform
- poor application performance
- greater coding and testing costs relative to newer Java releases
- increasing cost of Oracle support; e.g. to get security patches
- third party Java libraries no longer being developed for older Java versions
- development will be slower because developers will undoubtedly spend time on implementing functionality you get for free in newer releases
- not upgrading on a regular basis makes an upgrade more painful as time goes by, up to the point where it becomes practically impossible. Overdue upgrades result in a highly unpredictable scenario, with a resulting production loss across the entire company
A lot has changed since 1.4 to 1.7 – critical compile-time improvements, Runtime smartness, performance optimizations, modularity, better memory management, better garbage collection, expanded monitoring and diagnostics’ capabilities,and others. Java 7 has performance benchmarks of over 50% compared to Java 1.4. When all the Java related integration products have migrated their products towards using latest Java version, it only makes sense for enterprise developers to adopt newer versions and convince the IT leads to move higher on value chain. Atleast, simply running existing Java applications on the latest release would help to great degree.
Java has evolved over the last 10 years and has made significant improvements in last few years, at the same time creating some confusion over terminologies. Some history on evolution of client-side and server-side Java technologies below:
Java SE evolution:
- JDK 1.0: 1996
- JDK 1.1: 1997
- J2SE 1.2: 1998
- J2SE 1.3: 2000
- J2SE 1.4: 2002
- J2SE 5.0: 2004
- Java SE 6: 2006
- Java SE 7: in Draft
Java EE evolution:
- JPE: 1998
- J2EE 1.2: 1999
- J2EE 1.3: 2001
- J2EE 1.4: 2003
- Java EE 5: 2006
- Java EE 6: 2009
As you can see, if you are not using Java 6, you’re atleast 3 yrs behind. It’s not just enterprises who need to be educated but maybe, its Oracle too(?). Maybe, Oracle, has to figure out the way to get the remaining ~25% Customers onto the latest version, maybe its training, providing a better migration path etc.
My recommendation for enterprises who are on older versions of java is to start having conversations with IT/Business Leads – maybe, this is one of those projects which gets initiated in IT which ultimately does realize business benefits.