Discussions about how runtime deployment is a problem have gotten me really interested and I started to think about it. Other than completely taking the runtime out of the picture, what can be done to just make it easier to get Java on systems without it being intrusive?
The one thing that I find odd is that the runtime installer also installs the browser plugins. Thinking about it, that seems quite backwards from the average end-user perspective that we target (the story is different in corporate environments). What we have now is a complete inability to update the browser plugin through conventional means as it is so closely tied to the Java runtime installation. What if the plugin installation could be completely detached from the runtime installation? This would be the result:
- user installs Java plugin for browser X through browser X’s plugin repository (or built in plugin searcher) because he wants to run Java stuff.
- Plugin checks system and notices that the user has either no or an outdated runtime installed. Does nothing… yet
- user goes to a site that wants to display some form of applet. Plugin mentions to user that his Java runtime does not exist/is outdated so the applet cannot be run. Do you want to update to fix that?
- user clicks yes, because he/she wants to play his/her game ASAP.
- plugin makes sure the right runtime is installed properly. No browser reboot is needed because the plugin can of course reinitialize itself properly
- page is reloaded, applet is shown
- win.
That’s not all, that also takes care of the 64 bits Windows “problem”. You may or may not know that Windows by default boots the 32 bits version of Internet Explorer, even on 64 bits systems. Installing a 64 bits Java runtime therefore does not make “applets” or JavaFX work in the Internet Explorer that the average user will try to use (that still like IE for some reason) - you need to explicitly install the 32 bits runtime as well before that will happen. By making the plugin responsible for getting the runtime, you can’t get confused there. The worst that can happen is that you have a plugin nagging you for Java twice; once when you use 64 bits browser X and once when you use 32 bits IE.
On that note the second scenario: the plugin and the runtime are already installed and browser X reports that there is a new version of the plugin (because there is a new Java runtime). Either that or the browser is set to auto-update plugins and the user is not nagged at all.
- plugin update is initialized
- plugin automatically updates the runtime as well
- win.
What do you guys think? I know I must be missing something that casts a shadow onto this dream, other than Oracle never implementing it. What did I miss?