One thing that's clear is that we need to improve the initial Ogoglio experience for people using Microsoft Windows. On OS X this is a zero step process, since Apple cares about the idea that things should Just Work, but the fine people at Microsoft and Sun have taken their infighting to a new level of inconvenience for their users and the result is a confusing 17 step process to go from a vanilla XP installation to something which can render Java3D. It only takes seven minutes or so if you just blindly click "Ok", "Run", "Accept" and "Install", but if you pause for a second to consider what's happening you'll end up drunk in the gutter with despair at the possibilities flushed down the toilet because two big corporations can't stop shooting at each other.
Read this to understand why we're seriously looking to Adobe Flash for accelerated 3D in the browser, like so. We think it's possible to lower the number of steps to three or four if we invest in a custom installer and take on the costs of supporting that across the myriad of Windows flavors, but frankly I find that to be unacceptable.
First Microsoft shows you a lame dialog when a page tries to load Java:
If you click "More Info" (the default) you are taken to a page which suggests that you turn on Java, despite the fact that they could test and see that you don't have Java installed. Thanks, Microsoft!
Assuming that you clicked "Ok" instead of "More Info", our page suggests that you either turn on or install Java (we can't test to see which you need from a web page):
So, if you click the "Install Java" link you're taken to the overly complex and self-aggrandizing java.com:
At least there's a Big Green Button, which if clicked shows you a scary IE Security Warning:
Assuming you're not scared away (though most people will be) and you hit "Install" you'll have to accept a EULA, sit while it downloads (3 minutes on DSL), then watch the dozens of completely freaking useless progress bars stripe across your screen. Eventually you will be presented with an exclamation of their success:
When you hit "Finish" it doesn't take you back to what you were doing, you know, before you dedicated your life to installing Java. Instead, it takes you to a verification page just in case they didn't actually succeed in installing the JRE:
If you hit the Big Green Button it chunks a bit before telling you that the installation worked, though of course sometimes it doesn't.
By now you've completely forgotten what it was that you were trying to do and so you pop 'round the pub to get a drink and talk about the good old days when you could fit the HTML spec in the palm of your hand and a luggable computer in the trunk of your car.
But let's pretend that you're really dedicated and you remember to return to the page from which all this pain originated. Let's also assume that the authors of said page did everything in their power to test whether you have Java and Java3D and in fact their scripts noted that you don't have the latter so they presented you with a link directly to its installer (ignoring the god awful mess which is java.sun.com's Java3D page) which you then click:
You ignore the security warning because at this point you feel like you've already given Sun the opportunity to steal your facebook password and tell all your friends to buy thin clients, and you click "Download" and wait for it to do so for a couple of minutes.
(sidenote: At this point in the writing process I had to stop and drink martinis because it's just too, too much)
Then you'll see Yet Another Security Warning which will drive away %50 of everyone who has heard about viruses because the installer isn't even signed and so it could be from your neighborhood Spam King.
But pretend that you don't care whether random code runs on the same machine as your tax returns and you click "Run". Except that it doesn't run without presenting you with an end user license agreement which in all likelihood has no legal basis whatsoever but companies like to include anyway:
Then you have to confirm that you actually want the install:
Then it proclaims its success and (assuming that you ignore the readme about graphics card flags which can be passed in the command line to turn on pixelation flabjulibation) you're returned to your regularly scheduled web page.
Unfortunately, the browser still thinks there's no Java3D because there's no way in hell Java will notice a new Java3D install without restarting completely, so you shut down your browser and go read a book.










I completely agree that the current state of getting Java onto a PC is unacceptable. The Deployment Toolkit looks like a promising direction, but its still unclear to me how far it will go towards a more seamless experience.
http://blogs.sun.com/designatsun/entry/the_deployment_toolkit
"So, assuming that users will have the DT plug-in already installed, how will the user experience improve? DT Javascript on your web site will detect if users have the required Java version, and if not, it will redirect them to the java.com web site to download and install the latest. When they're done, it will redirect users back to your web site. This means that users will no longer get lost or distracted, and they can continue with your provided Java content. And what if a browser restart is required by the update? No worries -- after the restart, your website will be loaded in the browser automatically."
Posted by: Patrick O'Shaughnessey | January 26, 2008 at 06:18 PM
Thanks for the link, Patrick! I looked at the DT a while ago and it wasn't up to snuff so we had to write our own equivalent. It appears that they've continued development so it's worth checking out again.
Nothing makes me happier than ripping out our code and replacing it with a standard library.
Posted by: Trevor F. Smith | January 27, 2008 at 05:52 AM
Great post. Have you had any luck in redirecting users back to your site after they've installed Java?
For IE users, the DT function installLatestJRE encodes the parameter "returnPage", which apparently is there so that the Windows automatic install Java page can redirect users back to a page after they've installed Java.
I've not been able to get the returnPage parameter to be honored - I always get redirected to the Sun "test Java" page.
Any luck on this one?
Posted by: Rich | February 16, 2008 at 12:12 PM
Hey Trevor -
Have you taken a look at JNLPAppletLauncher? I believe it results in fewer steps than what you've documented above. Its worth a look anyway. Example here:
https://java3d.dev.java.net/applets/FourByFour.html
- Patrick
Posted by: Patrick O'Shaughnessey | February 17, 2008 at 09:16 PM