JavaFX is the latest GUI framework for Java and most people agree that it's very impressive. The tiny and low cost Raspberry Pi is still in the process of proving what it can do, but it seems running JavaFX is on the list.
It still isn't particularly clear if the remarkable Raspberry Pi (R-Pi) is going to have the software to make good on its promise to bring proper computer education to the masses, but you have to be amazed at the sorts of things people are doing to get programs up and running.
The initial software supports Python and C but there is a script that will install the beginner's graphical language, Scratch. None of this is particularly easy to use, unless you are skilled with the Linux command line, but in time it could be prepackaged and simple to install.
The big question is whether or not Java will run or, even if it does run, will it be capable of doing anything useful in such limited hardware. It is something of a surprise to discover that Oracle is working on the problem. The speakjava blog has some interesting information:
"Over the last few days I've been playing with the Raspberry Pi board (I was lucky enough to secure one of these as part of the work Oracle is doing to ensure that Java runs smoothly on it)."
Apart from the jealousy, as I haven't been able to get a R-Pi for love nor money, this is good news. The rest of the blog takes a bit of the shine off the initial positive announcement.
There is an OpenJDK build for ARM, but it doesn't have JIT support, so performance is not optimal. Oracle provides a commercial implementation, which does have JIT support, so I downloaded and installed this which was painless. (The only thing to note here is I used the vfp version of the JDK).
This makes sense in that to get the best performance from the R-Pi you do need JIT, but the bad news is contained in the phrase "commercial implementation". After an attempt at compiling the JavaFX source for ARM, it turned out that there already was a compiled version that someone had created for the Beagle Board (another Arm development system). This seems to have just worked and a few minutes later the result was a working JavaFX application, which you can see in the video below:
You probably won't think that it's very impressive as the app is just a clock animation, but if you have seen what JavaFX can do then it is exciting. Demo's of 3D games are more impressive than this, but they are written in C/C++ which compiles to native code. This is a Java application running under the supervision of the JVM, admittedly with JIT. Even so, the casual comments in the video suggest that performance is still an issue. What effect running it app in a remote window rather than direct to a video monitor is having is unclear but it most likely slows things down enough to be noticeable.
Raspberry Pi might be able to run JavaFX, but for the moment it isn't clear if this is a good idea.
One of the biggest problems programmers face today is making a single code base work across a range of systems. How a giant company like Google solves the problem is obviously going to be interesting. [ ... ]