JavaFX first impressions and getting it running on Linux

Well on the 4th December 2008 Sun officially released the much anticipated JavaFX its play in the new Rich Internet Client (RIA) wars. Despite promises that its final release would  run on Linux when its SDK, which was released earlier, did not the final release only runs on Windows and Mac. Needless to say I am not happy with this. The December release includes  not only the SDK but the necessary tooling to support JavaFX such as Netbeans plugins as well as some plugins for Adobe.The download can be found here

JavaFX does not run on Linux!

If you go to the JavaFX web site and try and download the software you get a message which "encourage[s] you to try JavaFX on Windows XP, Windows Vista or Mac OS X".  For me this just shows the underlying assumption of many vendors when it comes to Linux. They all think Linux users have a windows box lying around somewhere that we secretly use anyway. Image saying to a Windows user "download the Mac version and try it in the mean time." Its laughable and shows a complete ignorance of Linux users.

Anyway the good news is there is a way to hack the Mac version to run on Linux. How to do this can be found here . Part of the task of getting it running involves downloading about 23 netbeans modules. I wrote this small script to take the pain out of the process.

#!/bin/sh

wget http://updates.netbeans.org/netbeans/updates/6.5/uc/final/stable/modules/javafx

files=`cat index.html | sed -n 's/^<A href="\([A-Za-z-]*\.nbm\)".*/\1/p'`
for file in $files;do
    wget http://updates.netbeans.org/netbeans/updates/6.5/uc/final/stable/modules/javafx/$file
done

 JavaFX first impressions

Once I had JavaFX up and running on Linux I took it out for a spin. These are my first impressions. It seems to me that when ever a new technology is released it goes through a number of phases. I remember when C# came out all the windows developers started out learning how to hack the byte code to remove empty class constructor. Now-a-days you will be hard pressed to find a C# developer who even knows what byte code means. The same seems to be the case with JavaFX. Many of the first tutorials out there deal with the specifics of the JavaFX language. Some of the changes seem a bit irrelevant to its main purpose which is Rich Internet Applications (RIA). 

The tutorial on the Sun's site for example has a chapter on "sequences". Maybe its just me but I really don't see how this helps that much with GUIs? Anyway thankfully the JavaFX.com web site  has tutorials that are focused more on building GUIs. It is quiet easy to throw a simple gui app together with JavaFX andI will definitely be switching to JavaFX for my RIA development once it matures. Currently I use Flex, Adobes flash based RIA play.

Current JavaFX short comings

From my brief sojourn into JavaFX I think it still has some way to go before it becomes useful to me. First off it is missing crucial UI components such as a table or grid and of course a tree ui control. If you are a flash or creative design  type of developer then JavaFX will give you what you need right now but as someone who mainly develops business applications the lack of support for crucial UI components means that its not very helpful. Sure you can hack your own but then thats time and time is money, especially in todays economic situation. 

Also there is no chart support yet in JavaFX. This is one area where Flex has great support. It trivial to knock together some charts which always makes the finance guys feel happy.

Thats it for now. I still need to play some more. I am pretty sure the most annoying thing about JavaFX will be its nested braces and brackets. Even a trivial application can get quite confusing. This may be taken care of as a best-practices pattern emerges for JavaFX application development. All the examples shove everything into one file at the moment. Enough experimenting now. I need to get back to some swing development :)