The Source for Java Technology Collaboration
User: Password:



David Herron

David Herron's Blog

Freeing the Internet from the Web 'jail'

Posted by robogeek on November 04, 2007 at 12:49 PM | Comments (7)

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.

For example UI's built with the basic HTML components are very limited and you end up with the old-style web applications where to make the page look different requires a GET request and a complete refresh of the page. AJAX makes this nicer and the DHTML/AJAX camp are doing lots of fun things. There are issues with using CSS and Javascript, which is what I mean by the behavior of the browser is limited to the programming languages available. Such as Javascript being not as cross-browser compatible as one might like, leading programmers to tearing out their hair dealing with the inconsistencies, or else trusting the AJAX framework makers to deal with the inconsistencies. I was reading the other day about the plans for ECMAscript 4. If I understood it right, the Mozilla guy said "hey, let's drastically beef up this language" and the Microsoft guy said "hey, let's use a different language instead". Sigh. The browser wars are destined to be with us for awhile, and cross-browser compatibility is a difficult goal to reach.

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.

You might be thinking.. Mozilla? .. building an app that lets applications run outside the browser? What kinda crack is this dude smoking? What I mean is their recent announcement of .. ah .. I forget the app name, but it's derived from WebRunner. Basically the Mozilla architecture has for a long time had a bottom layer which lets you build applications using XUL/XBL/XPCOM/Javascript/etc. Firefox and Thunderbird and other apps are built using that foundation.

As I said, I don't know precisely where this is going.. The details are up to individual app developers.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • The Mozilla application is called Prism

    What I think is that we are on a way to converge the desktop and webtops approaches with MS adding things like Silverlight to capitalize on its desktop investment and Adobe, Google and Mozilla pushing from the web side

    Arnon

    Posted by: arnonrgo on November 04, 2007 at 02:56 PM

  • PS. I also blogged about it a few times - here is the latest (on Prism)

    Posted by: arnonrgo on November 04, 2007 at 02:58 PM

  • David... First of all my name is Pito Salas :D . I've been mistaken for the irish Pete O'Salas. Anyway, for sure no one gets the spelling of my name.

    Anyway: two thoughts. Your concept of internet applications and rich internet applications was also touched upon recently by Seth Godin in this post, which I also wrote about in a post where I say that BlogBridge is a good example of a web aware application. So we are on the same wavelength.

    Second comment: I know this is not your department but the Swing HTML rendering is the cause of many of our worst headaches. If, only if, it was more complete, lest of a memory pig, and faster, our life would be good. So much so that we constantly are evaluating alternatives to using it. So I feel your pain when it comes to BlogBridge's HTML rendering.

    Final comment: I had not heard a lot about JavaFX. In a "tribute" to Sun PR or communications, I followed the links and read what I could find to try to help me understand it: is it an improvement on javascript? Is it more like flash? Ruby? I just didn't see any examples or explanations to help me understand what it was other than a cool new moniker....

    Anyway, thanks for highlighting BlogBridge in your post.

    Posted by: pitosalas on November 04, 2007 at 03:00 PM

  • Pito,

    You mentioned that you "had not heard a lot about JavaFX". There are a couple of resources (besides, of course, Project OpenJFX and PlanetJFX) that I'd like to make you aware of:
    - JavaFX blog at http://learnjavafx.typepad.com
    - JavaFX Script book at http://www.amazon.com/JavaFX-Script-Scripting-Client-side-Applications/dp/1590599454

    Thanks,
    Jim Weaver

    Posted by: jim_weaver on November 05, 2007 at 10:10 AM

  • I'm glad to see that more and more people are seeing AJAX for what it is: a serious stretch of what web browsers can do. At the end of the day, we're better off with Internet-enabled desktop applications, as Richard Gaskin pointed out in his article Beyond the Browser - Rediscovering the Role of the Desktop in a Net-centric World

    Posted by: janschenkel on November 05, 2007 at 11:22 AM

  • Well said! Just in case you've missed them, a few of own blogs have looked at different aspects of the re-birth of the desktop application, first by attempting to define a (humourous) taxonomy, then by looking at a few potential problems (skills and technology.) But broadly speaking I feel the future lies in letting the web get back to serving hypertext, and moving the desktop application into the internet age.

    Posted by: javakiddy on November 06, 2007 at 09:28 AM

  • One thing I remember from pre-web internet is that there were many highly interactive applications, with no deployment issues. Applications like emacs and vi, pine, games like hack, and so on. This was done with a very simple protocol (telnet) in which events (keypresses, generally, but some extras like window resizes) were sent to the server application, and commands (ANSI/VT-100 control codes and displayable characters) were sent to the client application. No web based application comes close to that interactivity.

    I've been working on doing that sort of interactivity, but with graphics events (clicks on controls, keypresses, edits) and graphical commands (open window, add controls, set text or content, etc.). I haven't gotten very far yet, for lack of time - I can connect, open and close windows, add buttons or text labels, and disconnect. But I think this sort of thing would be a positive step towards solving a whole bunch of the interactivity problems that web browser based applications have.

    Posted by: johnbayko on November 06, 2007 at 09:53 PM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds