Today I have an interview with Jeff Hoffman, a member of the Java team at Oracle. Enjoy the interview!
Hi Jeff – could you please introduce yourself to the readers?
Jeff Hoffman, I’m the lead user experience developer for Java at Oracle.
You’re a member of the Java team at Oracle, but what is it that you actually do in general?
I work closely with the Java team members who are creating anything that will eventually be seen by an end user. I cover the end-to-end deployment experience from the java.com website where most users get Java on their computer to the launch sequence for an applet or web start application. This is where I have the largest impact since install, update and application launch processes have a lot of end user visible components. Much of my focus these days has been on the impact that our security measures have on application launch — specifically the dialogs we show when an application is requesting elevated permissions.
What does a regular day entail for you?
Understanding the various ways Java is installed and launched. Filing bugs where I find that the experience for the end user is clunky or the feedback we’re providing isn’t clear. Discussing possible approaches for addressing these issues with developers. Thinking about what kinds of user research we can perform to get useful feedback on how Java is deployed in the world.
How does JavaFX figure into your role at Oracle?
I’ve been working on JavaFX since the 1.0 release. I’ve been involved with creating samples, providing feedback on components and working with the docs team on tutorials. I designed the installers for the 2.0 runtime and SDK releases.
Installers are an interesting thing. If they are designed properly, they’re almost unnoticed, but if they fail to work, you can be given a very hard time.
Yes, I agree. No one’s end goal is to install a technology like Java or JavaFX. It’s just a step on the way to completing a user’s more important task — like being able to play a multi-user game with friends or finishing their taxes.
The installer’s role is to help the user by providing the base technology that they need, and to do so as quickly and efficiently as possible. The user should not have to think about what they’re doing — so we don’t burden them with unnecessary options. We just ensure that the information they need to know is easily accessed. We also leverage the commonly used installer technology on the platform so that it’s as compliant with the rest of the OS as possible.
We do extensive usability testing of our installers so we can see how well we’ve achieved our goals. I’m happy to say that over the years, the data we have collected through this testing has improved the installer experience quite a bit, and users are successfully completing millions of Java installs every day.
Java installers have always installed Java versions side-by-side, leading to systems that are bogged down in multiple versions. On Java.com you suggest removing older versions of Java. Does this give you headaches, and do you have plans to improve this situation?
In the past, that was true — however as of several years ago (and the release of Java 6 Update 10), we now patch the existing version of Java on your machine instead of installing a whole new one every time. This has reduced the problem quite a bit. However, the bigger issue is that some old applications specify that they’ll only work on an old version of Java, and this can compromise the security of the user’s system. In general, a lot of these applications still work fine on newer versions of Java, so we recommend that people remove the old versions.
Currently, we provide detailed instructions for how to remove these old versions via the Windows Control Panel facilities — however we’ve seen that this process can be error prone, and can result in old versions remaining on the machine, and possibly removal of the up-to-date version! So we are working on solutions to automate the process and eventually incorporate this in to the Java install and update flow.
What feedback have you received about Java installers, and what is it that you really want to achieve in future releases?
In general, the Java install process is pain free for almost all users. The proliferation of Windows 7 and 64-bit versions of Windows has resulted in comments that some users aren’t sure which Java installer to use. They see a 64-bit sticker on their machine, but don’t realize that the default browser is still a 32-bit process, so they need to install the 32-bit Java runtime for their browser based apps. The java.com website automatically chooses the appropriate installer for our supported configurations, so this isn’t a huge deal. If users are running desktop apps that require 64-bit Java, then they would need to install that also. Explaining something as abstract as 32-bit vs. 64-bit architectures to an end user really isn’t easy. In some ways this is a transitional problem and will go away as soon as commonly available browsers and OSes are all 64-bit.
As OSes become more vigilant about the software you download and install on a machine, users are asked to deal with multiple security warnings (like from Windows User Account Control) before they can install Java. Currently, you’ll get UAC messages when you install Java for the first time, and each time you are asked to update. These messages seem to appear “out of the blue”, so the user isn’t sure what generated them. We are taking steps to upgrade our installer technology and change our requirements so that users remain protected without being confronted by warnings.
Lastly, I’m happy that we’re integrating the Java and JavaFX installers both for the runtime and the SDK, since everyone appreciates one less installer!
Thanks for taking the time to chat with me. Do you have anything else you’d like to say to the readers?
I’m always interested in hearing from our users about their experiences — both good and not-so-good.
I’m having problems running JavaFX 1.3 applets with the latest JREs. Can you please have a look at this problem.
Steps to reproduce it:
– Install JRE 1.6 u30, JRE 1.6u31 or JRE 7
– Clear your Java cache, so that the JavaFX 1.3 runtime is not present
– Try to open: http://javafx.com/samples/MyTVSchedule/index.html
– The applet does not start due to Security Exception
If you’re using JRE 1.6 u29, the applet is working!
Please, have a look at the problem…
a few days ago the JFX1.3 applet didn’t work….
Just checked again with the latest JREs and it seems to work fine! nice job!
Thanks for the insight Jeff. It’s good nice to learn that you plan to integrate the Java and FX installers.
As you seem to be amenable to constructive criticism regarding the installer user experience, please allow me to make a few comments and forgive any offense.
With the current JavaFX Setup dialog (as it appears during a Win 7 install), I count at least five different font sizes. The dialog buttons are straight out of WIndows NT, as is the grayish-brown background color.
See here: http://www.dentofacial.com/fxdialog.php
It is somewhat incongruous that the installer for the planet’s foremost UI platform sports that utilitarian look that was so popular in the 90’s.
Looking forward to your next installer release.
I have to agree with Rick on the look and feel of the current JavaFX installer. It gives the user the impression that they are actually installing an “ancient” or out-dated technology. It doesn’t need to dazzle with rich text, animations or colours but it certainly could look more modern and with a more consistent use of fonts and layouts.
As for running JavaFX applets in the browser, why is it that Flash and Silverlight can both support video playback without any security dialogs but JavaFX cannot? I am sure it has something to do with the need to utilise native libraries but Flash and Silverlight both do that too. It’s just more intrusion for the user and possibly erodes their trust in running JavaFX applets.
Rick and John… Thank you both for your feedback on the installer window. The unfortunate buttons and NT scheme are a result of an installer toolkit that does not pick up the correct system look and feel. We hope to upgrade that in the future.
Also note that we are working to fully integrate the install experience with the JRE, so this specific panel should eventually go away.
As for your question about video playback in applets, I will have to ask — my understanding is that you should not need full permission to stream video.
John, I suggest you try out the following JavaFX tutorial that shows how to incorporate media in an application.
There are additional instructions to create an applet embedded on a web page. You are not required to request elevated permissions so your users would not get a security dialog just to stream video.