Digital Edition

SYS-CON.TV
Java JVM Swapping - Safe Practice or Unsafe Risk?
A goal that's almost enshrined in the Java fundamental commandments, as Sun took out an advertising campaign to back it up

One of the most fundamental design principles of Java is captured in its motto "Write Once, Run Anywhere." It describes how a .class file encodes its instructions at the bytecode level, allowing portability between different machines that, through a specific virtual machine implementation, resolve the bytecodes into executable instructions to give the program life. It's a goal that's almost enshrined in the Java fundamental commandments, as Sun took out a high-profile advertising campaign to back up the "100% Pure Java" slogan and engaged Microsoft in battle for their proprietary language extensions.

Another fundamental design principle of Java is that functionality cannot be removed, so a program compiled to run on one version of a Java Runtime Environment (JRE) is able to run on future versions without re-compilation. The idea behind this is that as users upgrade their machine's JRE, they can be confident that none of their Java software will stop working because an API it relied on was removed.

About Joe Winchester
Joe Winchester, Editor-in-Chief of Java Developer's Journal, was formerly JDJ's longtime Desktop Technologies Editor and is a software developer working on development tools for IBM in Hursley, UK.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

What's your point with this article? I suppose you are advocating that Sun desists of maintaining backwards compatibility, preferring to remove old APIs (or add enhancements that require breaking changes)? If this is your idea, the bad news is that the gain would be exceedingly small. Summing all of the bad, old and ugly APIs that would be good candidates for removal would deliver a very small fraction of the latest JRE's size, and also of other costs like continued development and porting. The only exception would be enhancements that need a HUGE compatibility break, e.g. an alternative generics implementation without any compromises to keep old apps (that need non-generified collections etc) binary-compatible with new JREs. But upgrades like this would amount to a different language and massive porting or rewriting efforts for existing code; if you can cope with that, there are options like Groovy, Scala, JRuby etc.

Reality is that the Java compatibility story is exceptional. I have a couple large Java apps that I wrote by 1997-98, didn't receive any maintenance since ~2000 as the project was discontinued, and every year or two I perform a quick preventive maintenance - check out the code from repository, build it with the latest and greatest JDK and IDE, run a quick test - and everything continues working... the number of compiler warnings (like deprecation) increases slowly, the code looks more horrible compared to modern practices (e.g. hundreds of JSP 1.0 files stuffed with scriptlets and no MVC framework at all)... but it works.

And of course I'm not the only programmer that can code properly, there are zillions of Java apps and libraries out there that run reliably on a large number of JRE versions and OS/HW platforms. Yes, this is more common for free & open source apps, simply because FOSS developers usually care about user choice. If you complain that some app doesn't run on a different JRE, a typical commercial vendor's response may be "it's not certified on that JRE, please use the one we ship with the app". But an open source group will answer by fixing the bug (and yes, 90% of the time it IS an application bug) or provide a workaround. BTW, such bugs are typically caught early in FOSS projects, due to the habit of providing source distributions and letting users do their own compilation - with whatever OS, runtimes and compilers they have installed. So the developers get multiplatform testing for free (which is good, because too many FOSS hackers only use things like Linux and will rather touch fresh cat shit than a proprietary OS).




ADS BY GOOGLE
Subscribe to the World's Most Powerful Newsletters

ADS BY GOOGLE

@DevOpsSummit at Cloud Expo, taking place November 12-13 in New York City, NY, is co-located with 22...
SYS-CON Events announced today that IoT Global Network has been named “Media Sponsor” of SYS-CON's @...
To Really Work for Enterprises, MultiCloud Adoption Requires Far Better and Inclusive Cloud Monitori...
The best way to leverage your Cloud Expo presence as a sponsor and exhibitor is to plan your news an...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018,...
DXWorldEXPO | CloudEXPO are the world's most influential, independent events where Cloud Computing w...
Disruption, Innovation, Artificial Intelligence and Machine Learning, Leadership and Management hear...
"We host and fully manage cloud data services, whether we store, the data, move the data, or run ana...
Enterprises are striving to become digital businesses for differentiated innovation and customer-cen...
DXWorldEXPO LLC announced today that Telecom Reseller has been named "Media Sponsor" of CloudEXPO | ...
Enterprise architects are increasingly adopting multi-cloud strategies as they seek to utilize exist...
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As au...
"Calligo is a cloud service provider with data privacy at the heart of what we do. We are a typical ...
We are seeing a major migration of enterprises applications to the cloud. As cloud and business use ...
Discussions of cloud computing have evolved in recent years from a focus on specific types of cloud,...
Containers and Kubernetes allow for code portability across on-premise VMs, bare metal, or multiple ...
DXWorldEXPO LLC announced today that "IoT Now" was named media sponsor of CloudEXPO | DXWorldEXPO 20...
Modern software design has fundamentally changed how we manage applications, causing many to turn to...
In this presentation, you will learn first hand what works and what doesn't while architecting and d...
In an era of historic innovation fueled by unprecedented access to data and technology, the low cost...