By Geertjan on Jan 13, 2010
"I think this year was the year of RIAs with the arrival of JavaFX, Flex/Flash and SilverLight. I think it has dawned on a lot of developers that RIAs are limiting. In my mind, they seem designed for graphic intensive web apps - but most enterprise apps are data intensive. Unfortunately I don't see JavaFX going anywhere until they fix it so that it can seamlessly support for bi-directional interoperability and RCP interoperability is built into it. I'm not saying that there won't be a lot of RIAs out there - just that they seem relegated to flashy, low-data graphics apps on web sites."
What I like about this (in addition to the predicted increase in popularity indicated above) is the distinction made between graphic intensive and data intensive applications. That distinction explains (to me) a lot of the confused discussion re JavaFX vs NetBeans Platform. These statements (made by opposite camps) are typical implementations of that confusion:
- "Swing is just too hard and not Flash-like enough. Developers want to be able to create UIs very quickly (with complex animations done in a declarative style, etc) and they want to create them for multiple targets (i.e., desktop, web, mobile, i.e., 'all the screens of your life')."
- "JavaFX is just not good enough. It just focuses on the UI and, even there, is mainly focused on animations and other similar Flash-like stuff. It doesn't offer enough for me to move to it, the switch to JavaFX from Swing simply doesn't offer me enough incentive, and the pay off is pretty weak for my purposes. Plus, I don't care for 'all the screens of my life', since I'm doing a lot of processing and displaying large amounts of data, sometimes while in a car or in the middle of a field or on an oil rig, so that the whole web story is meaningless to me, except as an alternative/addition to my main application which is on the desktop."
The first statement is made by a developer interested in creating graphic-intensive applications. For these developers, JavaFX is great. However, for data-intensive needs, the second statement is familiar. Why would you switch to JavaFX if you're creating some large banking application, for example? You're not all that interested in the UI, in that case, sure, you want good and solid UI, it's got to be clear and transparent to the user. However, the stuff offered by JavaFX simply isn't useful enough for moving to it. The modularity of the NetBeans Platform (which means you have to use Swing) is far more important to enterprise applications than the cool UI-story that JavaFX offers.
Ideally, of course, you'd use both JavaFX and the NetBeans Platform. But that's another story. The point of this blog entry is simply to argue that both statements "JavaFX is wonderful" and "JavaFX isn't all that useful" are true, depending on what your application's main focus is: graphics or data.