Java FX has a huge potential as being a real Open Source (GPL) RIA platform compared to its more or less closed source competitors. I know, Flash has some parts of it made 'open', but Flash basically remains a commercial platform, requiring commercial Adobe developer tools for the 'real' work (including the now classic video à la youtube). It remains to see if Sun will be able to maintain the full GPL license for Java FX, since video and sound are usually licensed from third party providers using patented technologies (e.g. On2).
Although RIA apps have a tremendous 'whaw' factor (e.g. parleys.com) , I'm quickly bored by all the transitions, fading in/out and other visual magic. It's also very hard developing good RIA applications that are both functionally relevant and appealing to the eye. Developers must combine design skills, good taste and programming talents. Otherwise you end up with disastrous websites like this amusement park. It takes about 15-20s of looking at a shiny progress bar, hearing silly music and looking at stupid animations to finally find the opening hours. Definitely in the top-10 of 'worst-RIA-sites-ever'.
RIA apps fail to embrace the strengths of the classic web:
- bookmarkability & addressability: In typical RIAs, only the main page has an address; forget to send a to-the-point URL to a friend... Bookmarking individual parts of a RIA app requires the oh-so-stupid 'link this' button. This is opposite to the current "REST" trend where everything is a URL, a resource.
- user driven action: RIA apps tend to limit the users' behavior, forcing them to follow a fixed pattern, where classic webshops let the user decide where to click. Have a look at the on-line promotion folder of a classic brick and mortar shop. It takes about 2-3 seconds to change to the next page; at least one or 2 minutes of clicking if you're searching a specific item.
- speed: it looks like every RIA app needs its shiny progressbar, tricking the user to wait much longer than he'd be willing to wait for a classic web-page
- search engine friendliness: by default RIA apps can not be indexed by google, unless tricking google by offering a 'ghost' site to the search robots. This is how parleys.com solves their search ranking problem. Someone said 'hacking'?
- OS-agnostic: only Java FX promises to target Windows, MacOS and Linux. Of course, Flash support under Linux has made huge progress, with e.g. the Flash 64bit version released under Linux first. But all RIA platforms try to address the 'fat client' offline problem: running apps while disconnected from internet, even outside the browser (e.g. Adobe AIR or Java Update 10). Unfortunatly, those 'fat client' standalone versions of RIA apps offer a consequent look on all OSes. This might be a plus, but the current trend is to adapt your UI to the OS. Firefox 3 for example has a different look and feel under Gnome than under Vista.
- hackability: I'm addicted to noscript, adblock and firebug, but those tools are useless in a RIA context. Even a simple 'save as', as Firefox provides, is not straightforward. Perhaps the development of gnash might bring some new hacker-tools to the scene.
We'll see what the RIA-future brings: all Flash (flex/air), Java FX, or a "back to the web" reaction?