; Date: Sun Nov 04 2007
I've recently been studying our plans for JavaFX -- and at the same time looking at the big picture of where the Internet is going. It's giving me some interesting ideas to ponder.
The immediate idea I'm looking at is a customer scenario perspective on the quality of JavaFX as it's being developed. That's having me look at what sort of web applications are being developed, how RIA's are being used, the broad range of Internet applications on desktop and handset and TV's etc. So, it's unavoidable that I'd end up looking at the big picture, especially as I'm a big picture kinda guy.
Where I've gotten to is an idea that the Internet has been trapped in this prison-like shell we call a 'Web Browser'.
As someone who grew up (Internet wise) in the mid 80's while the Internet was this cozy little village (compared to what it is today) with collegial sharing of everything.. one certainty I built during the early days is that the Internet has a huge array of potential services, and that the Internet has a huge potential in connecting people across all sorts of boundaries.
The Web is a distinct entity which rides on the Internet, and the Web has a relatively limited set of abilities. Those limits come from the behavior of the browser and the programming languages used to build browser capabilities.
But, wait a minute.. consider the web browser as the container for this. I've seen the articles oohing and aaahing over the idea that you should store all your data out on the cloud, that the Internet Service Providers have the backup procedures etc to ensure your data is safe etc, that it's a hassle to keep a computer up-to-date and properly configured... and therefore you should simply live in your web browser and do everything through the web browser.
That is the Web 'jail'. To limit what the Internet can do to what the web browser is capable of doing.
Let me offer a suggested definition... An Internet Application participates in network protocols over the Internet, and utilizes data from one or more Internet protocols, and may additionally use data stored on a local storage. A Rich Internet Application in turn is an Internet Application which has a rich GUI, rich user experience, multimedia, etc etc..
As a Mac user I've had access to a few Apple-supplied Internet applications.. iTunes, iCal, Sherlock, iChat, Audium ...
iTunes is an interesting example. The iTunes Music Store lets you browse a whole slew of stuff, buy stuff, subscribe to podcasts, etc, all without hitting a web browser. There may be HTML components used within iTMS but that's transparent to the user. However at the same time I find some aspects of iTunes clumsy especially the section for browsing podcasts.. there's no way to view 'show notes' for example.
I have a Mini in the living room and use it as the entertainment center. I don't have a TV and instead do couch-potato-like behaviors using Front Row to browse the days podcasts as they get downloaded. It also lets me browse the latest movie trailers. The UI is a little klunky but the overall experience is great in that it's seamlessly querying data over the network but giving me an across the room remote control driven experience of Internet based entertainment.
There's so much more that can be done, and I think this represents a potential flowering of the capabilities of the Internet. Notice I didn't say "the capabilities of the Web" but of the Internet, because it seems to me that the Internet has been held back by the web browser.
The capabilities of a rich desktop GUI toolkit far outstrip what you can do with DHTML. A minor example is the act of editing web content using a content management system or blog application or wiki or the like. Editing in a TextArea using any of the wiki/bbcode/html markup languages is a throwback to the early 1980's when 'vi' and 'troff' were king. I use this (as I'm doing now) because that's what blogging on java.net requires of me. I don't pretend to like it, but I'm putting up with it because blogging on java.net has its advantages... My personal websites are built with Drupal (also using simple textarea's in a browser.. sigh) and recently I have looked at several of the DHTML pseudo-WYSIWYG editors that are integrated with Drupal. See: Improved methods for editing content on a Drupal site. There ends up being two problems endemic to all of them. The main problem to discuss is that the DHTML editors do not understand which operating system they're running on.
All my testing of these pseudo-WYSIWYG editors is in Firefox on a Mac. None of them understood COMMAND-B and the like to turn on bold or invoke other toolbar buttons. In some cases they did detect it and showed me an error dialog telling me that I'm a loser for using a Mac and Mac-specific keyboard shortcuts are not supported. And none of them knew about desktop UI preferences and adjusted their widgets to the native look and feel or native UI behavior.
Which.. ah... that just reminds me of the complaints about Swing L&F behavior across operating systems. Ah.. why isn't as big a stink being made this as the issues of Swing cross OS behavior. Ah well, I suppose it's such a feat of magic to make a web browser do pseudo-WYSIWYG as well as FCKeditor does, that people forget what the real issue is. And I'm digressing.
Another Internet Application I use is Blogbridge to aggregate RSS/Atom news feeds. It's such a cool application and much better than using the web sites that offer similar capabilities. They seem so klunky compared to what Peter Salus and friends have accomplished in BB. My only gripe is sometimes when you click on a link, it takes a looooooong time for the browser to display the page. It seems to only happen with links on digg feeds. I wish that blogbridge had a good HTML component in it so it could directly display the web page rather than show it in the web browser. But then that kinda leads to maybe BB should be running inside the browser...? In BB v6 they added an interesting new ability, to let you set up a 'Smart Feed' which is a search on some service like Technorati, but you don't have to go to your browser to build the search. In the past you could go to those services, enter a search, see the RSS link on the search results page, copy that link into blogbridge, and subscribe that way. Now you say 'Create Smart Feed' and it gives you a list of services and you enter search terms and that's it.
One gaping hole in Blogbridge is podcast support. While it does show you the attachment and you can click on the attachment and play the content, I think they could do a better job of integrating content playback directly into Blogbridge. But.. probably.. they're limited by the limited media support in Java. Hopefully JavaFX will cure this.
It's hard to see what the future is, where all this is going.
I do see that the major Internet platform providers ... Mozilla, Microsoft, Adobe and Sun ... that we all seem to see this. That Rich Internet Applications do not need to be trapped within the web jail.
We are all working on application platforms which offer a way to build rich internet applications which run outside the web browser.
As I said, I don't know precisely where this is going.. The details are up to individual app developers.