As illustrated in the movie Finding Nemo, clownfish and sea anemones have a mutual symbiotic relationship. The latter Wikipedia article states that "The territorial [clown] fish protects the anemone from anemone-eating fish, and in turn the stinging tentacles of the anemone protect the clownfish from its predators. A special mucus on the clownfish protects it from the stinging tentacles". Of course, as also demonstrated in Nemo, mutualism breaks down when uninvited barracudas join the party ;-)
Two of the creatures in the internet application ecosystem are web pages/apps, and rich internet apps created in platforms such as JavaFX and Flex. I like the way that Stephen Chin characterizes these creatures when he was interviewed by James Sugrue for the DZone article entitled JavaFX in Practice:
I wholeheartedly agree with Stephen, and feel that it is very important when creating a new application to not just assume that its UI should live in a web browser. We need to carefully consider which portions of its functionality (if any) belong inside a web browser, and which portions would offer the user a better experience outside of the browser. It is my opinion that desktop applications should follow the lead of apps on mobile devices such as Android and iPhone, declaring that "there's an app for that", rather than "there's a browser-based throwback to 1970s mainframe CICS screens for that" :-)
Of course, web browsers will continue to play a critical role in internet applications, and are particularly suited in areas for which they were originally created, namely sharing current, hyper-linked, information in various media types. For example, the Help facilities of many installed applications (e.g. Adobe Photoshop and iTunes) are either entirely composed of web pages, or link to web pages for several of their help topics). Conversely, the Charts tab of the iTunes web site invokes the installed version of iTunes and navigates to a given item in the iTunes store when the user clicks on a song in the web page.
One of the great features of the Web, browsers, and search engines, is the ability to find/bookmark web pages and other content by a URL. To leverage this, I've been experimenting with the idea of having a landing/launch page for JavaFX apps that are invoked via Java Web Start or in a WidgetFX dock. This enables these apps to have a page that can be cataloged/ranked by search engines, and gives the user a way to find/bookmark the JavaFX app. While implementing this idea, I followed the lead of bit.ly and identified a short domain name that would be conducive to tweeting JavaFX app links without requiring URL shortening. The domain name that I'm using is jfx.me, and I've developed a couple of example landing/launch pages whose URLs are easy to remember and type:
- jfx.me/speedreaderfx.html (An application that aggregates news and social network sources)
- jfx.me/radiofx.html (Yannick Van Godtsenhoven's excellent RadioFX widget)
Currently these pages are within the context of the JavaFXpert blog, but if there is JavaFX community interest, I'll forward the jfx.me domain to a site dedicated to this purpose. By the way, you'll notice if you visit either of the landing pages above that both Yannick and I intend to offer these apps (at no charge) in the Java Store.
Anyway, I'm very interested in your thoughts surrounding web page and RIA mutualism, so please leave a comment with your ideas.