“Java has never been future compatible, and will never be. I just want to make sure that is clear, because if you’ve been under the impression that it was 100% future compatible or that there was an implied contract I can assure you that is not the case. There are numerous times in each release where fixing a bug will break somebody. It is just the nature, or physics, of the situation.”
Richard Bair on bundling a JRE per-application for desktop applications.