JavaFX SDK Preview Coming In About Two Weeks
It looks as if Sun will be releasing the first technology preview of the all-new JavaFX SDK in about two weeks – that is, at the end of the month. That includes: a new language (JavaFX Script); a new compiler; a new underlying Java hardware-accelerated 2-D and 3-D graphics stack; (hopefully) new audio and video support; a new Java plug-in and other features of Java6 Update 10.
That’s a huge amount of work – and it looks like the team still has more to do before the end of the month. Anyone that’s had to ship complex software to hard deadlines before will be wishing them a lot of luck. It will mean working really long hours, and there will be huge amounts of stress. I’m sure they can do it though – in situations like this, previously untapped reserves of energy and brain capacity seem to kick in, and the work rate gets crazy-fast.
After they’ve shipped this first technology preview, and the dust settles, I really hope the JavaFX team will take the following points on board. I think they are critical to the success of the JavFX project:
1) JavaFX demos need to be applets, not Web Start applications
JavaFX is all about the consumer experience. Web Start is horrible from a consumer point of view – it involves clicking on buttons in ugly dialogue boxes with horrible warning triangles and silly messages about trusting or not trusting the publisher. So – no Web Start please! If JavaFX is to be a serious consumer RIA player, then JavaFX RIAs need to “just start” seamlessly, and rapidly, as applets embedded in web pages. Just like Flash RIAs do. Just like AJAX RIAs do.
Making all demos applets will force the JavaFX team to eat their own dog food. That is, use the technology as developers will use it to build real RIAs. If the technology isn’t good enough to build pretty much all demos as applets, then what hope is there for real-world RIAs?
2) The fact that the content in a web page is a Java/JavaFX applet needs to be invisible the the user
When Flash or AJAX RIAs start up, the end user sees nothing to interrupt their browsing experience. It’s just like visiting any web page. Currently, when Java applets start up, some really horrible things can happen. You sometimes get a BIG ORANGE advert for Java and Java.com in the web page. You always get a Java icon showing up in the system tray, when the Java VM starts up. I’ve seen some Sun people arguing that neither of these things matter. Well – those people are wrong. These are both significant net negatives for the end user. From the end user perspective, the RIA is just another part of the web page; it is not special enough to justify anything different happening when the Java/JavaFX stuff starts up.
To be honest, the fact that some Sun people don’t understand this, worries me; and makes me concerned that they don’t actually understand what it’s going to take to build a compelling consumer-facing technology. The point is: this is really basic 101-level stuff – no-one should have any trouble understanding it. A helpful rule of thumb for anyone that doesn’t understand the fundamentals is: if the behaviour I build in is different from the way Flash behaves, I’m probably doing something wrong. For example, when Flash content starts in browsers – do you see big Adobe/Flash adverts? NO! When Flash content starts in browsers, do you see an Adobe/Flash icon in the System Tray? NO!
3) Get the JavaFX Designer Tool Shipped ASAP, For Free
In 2008, sensible people don’t hand-code the bulk of their user interfaces. They use visual tools to do much of the heavy-lifting i.e. auto-generate code. For example, with Java Swing, sensible developers use Matisse in Netbeans. So – going back to hand-coding UIs with JavaFX is going to be a retrograde step that will limit adoption. Sun is working on a visual design tool for JavaFX. It’s aimed at graphic designers, but developers will also want to use it for majors part of their work. The point is: it will be the only sensible way to build UIs using JavaFX.
So, the truth is – without a great visual design tool, it will almost certainly be more productive for Java developers to continue to build Swing UIs by using Netbeans/Matisse, than it will be to build JavaFX UIs. Clearly, the JavaFX Design Tool isn’t going to be finished before it’s finished. However, the sooner it’s ready, the sooner Java developers will start adopting JavaFX. And, of course, the design tool needs to be free, just like Netbeans.
I think that’s it. It’s a really exciting time in the world of client Java. I’m looking forward to seeing some amazing new demos when the JavaFX SDK technology preview comes out!
Jeria wrote:
Good article. I feel that JavaFX will fail badly on the web if point 1 and 2 are not implemented.
Posted 17 Jul 2008 at 6:25 pm ¶
Asgard wrote:
I think the biggest proplem is swing is too ugly if sun did the same things at javafx.
Posted 22 Jul 2008 at 6:39 am ¶
Hanno wrote:
@Simon
I agree with your post. The user doesn’t want to be bothered with splash screens or tray icons. The simpler the better.
I like the way how the PulpCore [http://www.interactivepulp.com/pulpcore/] engine handles this, except the tray icon of course.
I hope the JFX Designer will be accepted by designers and artists, but I think that some export filter for established programs like Photoshop are even more important.
Posted 22 Jul 2008 at 10:38 am ¶
Jeria wrote:
@Asgard
I personally think that Swing widgets look quite good when they use the native operating system theme.
Posted 22 Jul 2008 at 12:36 pm ¶
simon wrote:
@Hanno
For sure, the export plug-ins for Photoshop will be important. I’m not sure they’re more important than the designer tool. Why? Because JavaFX has an absolutely critical requirement to enable Drag n Drop building of user interfaces; as can be done currenly for Swing using Netbeans. Without that designer tool, JavaFX will, in many cases, be more of a pain to use than Swing.
@Asgard and Jeria
Jeria is right. Native OS theme works really well with Swing, especially with Java 6.
By the way – anyone who thinks non-native Swing has to be ugly doesn’t understand Swing. It’s just about the most powerful GUI toolkit around – you can build *anything* using Swing. So , it’s powerful, but the problems is it’s hard to use, especially for doing graphically funky interfaces, such as those built using Flash/Flex.
That’s why the JavaFX project was started – to make it *much* easier for people to take advantage of the huge capabilities of the Swing/Java2D platform.
Posted 22 Jul 2008 at 8:07 pm ¶
JBR wrote:
Will the new JavaFX runtime be included automatically in the “standard” JRE download, or will it be an extra add-on?
In other words, will all PC users who grab or update to a future new “Java 2 Platform Standard Edition” runtime automatically get JavaFX included??
Posted 28 Jul 2008 at 2:13 pm ¶
Jay wrote:
I think that Swing looks good. The only thing that it missed and still is missing is the ‘typeahead’ feature for JFileChooser, which I think that it’s more import than any looks.
Posted 29 Jul 2008 at 3:30 pm ¶
josh wrote:
I really cannot agree with #1. WebStart rocks. I would be really sad if I, as a developer, would have to force my customers to launch WWW browser each time just to be able to launch my application.
WebStart is annoying only when it is not signed with authorized certificate and your application does have to be able to access your computer (like files, system properties, etc…) which seems very reasonable.
I do feel very comfortable that any WebStart application either is not capable of accessing my computer or can do that, but is siged using “well-known” cert.publisher. Yellow triangles, questions etc. – only when not signed and capable of doing whatever it wants with my computer, for me it’s fine.
The other way was shown to us by Micro$oft and ActiveX on web pages. No questions, very “user-friendly” and it was enough to open some page in IE and… viruses, trojans and everything else was doing with your computer the Autumn of Middle Ages…
Posted 06 Aug 2008 at 8:28 am ¶
simon wrote:
Josh,
I think it’s possible we may be talking at cross-purposes.
WebStart is a pretty good way of installing an application. In comparison with downloading an installer from a web-site; finding where the installed was saved; then running the installer etc… well, then WebStart has less friction.
BUT (it’s a big “but”, hences the caps
)… there’s a *lot* more friction with WebStart than there is with an applet running in a web page. The point I was trying to make is this: any time you ask potential users to install something i.e. put a number of mouse clicks, and dialog box decisions, between the user seeing your system, and being able to try it out, you automatically lose a really significant percentage of your audience. In many case, that is “not a good thing” [TM]
You mention ActiveX controls in your post. That’s not the competition. The competition is Flash.
Obviously, one problem with the above is that, right now, it’s not possible to do JavaFX applets on MacOS X, because Apple hasn’t shipped a suitable Java SE 6 plug-in. Hopefully, that will be addressed by Apple in the not-too-distant future (although, they do seem to have their hands kinda full right now!).
Also, when I said WebStart looked “ugly”, perhaps I should have said, “non-configurable” (beauty is clearly in the eye of the beholder). The thing is, when a developer creates a stand-alone installer for an application they want to distribute, they can create a look for the installer that matches the look of their application. It would probably help developers, if they could do things like set colours for features in the WebStart installing windows, and add custom graphics etc. These things would start to make WebStart compete with stand-alone installers in terms of letting developers of a piece of software have control over the *complete* experience the end-user gets, right from the point a user expresses interest in using their software.
Posted 06 Aug 2008 at 8:52 am ¶