Since Sun announced the JavaFX meta-project awhile back (2007?), there’s been a lot of commentary, mostly negative, on the effort; but I think a great deal of this misses the point, which is that FX is not primarily aimed at the RIA market, but at the much larger market of devices.
Look, raise your hands if you use an RIA app on a daily basis. Heck, on a weekly basis. I don’t. Nobody I know does. I’ve downloaded some, browsed through the demos, and hey–I use a lot of software, I test drive a lot. And I haven’t seen any compelling RIA apps that I need to keep installed and turn to to solve my problems–any problems, in fact.
That’s not to say that there isn’t an RIA revolution around the corner. But I think JavaFX is aiming for something else–a market I’m pretty sure Adobe and Microsoft are also aiming at–which is devices that can support high-quality video, UI stacks, and audio, and which are connected to a network at least part of the time. A turning point for me was when I was at the airport–I think in England–a few months ago, and I was waiting in line to check in. Looking around, I saw a TV-sized device showing inbound and outbound flights. The monitor, like the airport, was a recent vintage, and the display eschewed the traditional, colored-test UIs which I’d grown to know in many airports for a modern, sleek, highly readable and informative display. The colors were better, as were the fonts and layouts; there were icons representing the carriers, and these flipped around to show other icons indicating on-time, or delayed. The animations between screens showing inbound and outbound flights were not distracting, but rather a small cue that said, “We’re about to show you something new.” There were also, IIRC, advertisements that showed up occasionally. I could have done without those.
Anyway, it was at that moment, looking at this new-fangled airport info screen that I realized: that’s the point of this excercise. That’s where Sun, with JavaFX, wants to be. All of these devices, almost regardless of size, which people use every day to gather information, entertain themselves, communicate, plan, that was the target for this platform. And that market is HUGE. That’s not just mobile phones and smart phones, that’s music players and TVs and set-top boxes and info terminals for tourists and monitors at airports and handheld GPS devices and who knows what else. It’s any screen attached to any computer which is powerful enough to drive a modern GUI interface and smart enough to pull stuff from the internet when it needs to.
That market is not new, but what is new is that the cost of a decent hardware platform–decent graphics cards, a chunk of memory, a good amount of disk space, a high-quality screen–has fallen dramatically and continues to do so. If you can enter that market with a set of tools allowing you to write–more or less– code that runs on your desktop as well as that other device, I think that’s a big deal. Because you’ve not just reduced (or eliminated) the effort of porting the software, you’ve granted the developer a gift: they no longer have to learn a specialized toolkit to write to one of these devices, and they no longer have to learn different stacks to work across different types of devices, different models of those devices, from different vendors.
A number of bloggers (and blog-commenters) are focusing on JavaFX Script, and I do think it deserves attention. Actually, I think JavaFX Script will end up doing well in its space. But I think we have to look at the larger picture, and the larger picture is dramatically improving hardware across all devices, and Sun believes it can offer a solution that’s comprehensive and which is an incremental improvement to something that already works in the field. The motto is, we can do more now. That, it seems to me, is the market that Sun is aiming at, and it’s much bigger, and much more important, than the hold-your-breath RIA space.