Tooltip for disabled controls
richard.bair at oracle.com
Thu Apr 4 16:57:30 PDT 2013
>> From the front line, I'd like to just highlight the fact that backwards
> compatibility has so far been largely lip service rather than reality.
All software is going to have breaks in new versions (if you're fixing bugs, you're changing behavior, and that's going to break somebody). But there is a LOT of stuff we have wanted to do but haven't done for the sake of compatibility. And note that there are different levels of compatibility and neither Java nor JavaFX is committed to 100% perfect compatibility between any release (major, minor, or security). We just try to manage the type of incompatibility.
For example breaking binary compatibility is a huge issue. Breaking source compatibility is still a major issue, but not quite as bad. Breaking behavioral compatibility is less bad -- might be major, might be minor -- and within scope for consideration. We use the same rules here as the JDK, which has never been 100% compatible.
I would disagree we have only paid lip service to compatibility. There are a number of issues in JIRA that have been closed as won't fix because of compatibility. We're not just talking about it.
> builders will break soon,
Actually according to my plan, builders won't break for several more years -- just get removed from the javadoc & marked deprecated.
> Also worth noting is that cobundled JREs (and eventual app store deploys)
> don't suffer from backwards compatability issues since the jre is tied to
> the version of the app code. Only web based deploys (applets and jnlp)
> suffer here.
Sort of. There are two main issues that come up with respect to compatibility. The first is "does my running app break". With Applets & WebStart we face that problem, but as you correctly note, you don't with app co-bundles. However the other end of it is what happens when you own a large application and you need to ship it over several (perhaps 10 years worth) of updates. You adopt JavaFX at 2.2, but 2.2 doesn't have all the features you need. But behold! the features are coming in 8. So you upgrade to 8 and spend 5 months converting your app over. And the world has moved on and you need some more features, or bug fixes, and lo! they are coming in 8 update or 9. But son of a gun, you have to spend another 5 months overhauling your app.
So even though you are using an app cobundle, you are still suffering from backwards compatibility issues. There just isn't getting away from that. The people who aren't affected are the ones that write "fire and forget" applications. That'd be, consultants :-)
More information about the openjfx-dev