Friday, March 28, 2008

Saving Ourselves From the Unweb

[This article is based on a talk by Alex Russell, the co-founder of Dojo (and Director of R&D at Sitepen), that he gave at the Visual Ajax User Group, with added editorializing and pontification by Chris Keene, CEO of WaveMaker. You can safely assume that anything insightful and true came from Alex's talk and anything smarmy and argumentative is part of Chris' "value add"]

The original use case for the web - researchers working with static documents - doesn't bear much resemblance to the multi-media, consumer-oriented web we have today. The HTML web browser infrastructure that got us this far won't get us the rest of the way.

The web has always been about the worst platform for any particular task (unless your task is to display a poorly formatted doctoral thesis). Ubiquity, searchability and combinability have always made up for the web's many weaknesses.

We are reaching a fork in the road, however, where the web's traditional strengths may be dramatically eroded by a "hollowing out" of the HTML semantics. There are basically two responses to this challenge of evolving the web. They are:
  1. Evolve HTML = Better Semantics, Smarter Clients. Evolve the existing web by pushing browser vendors to add semantic HTML capabilities that support next generation web apps. This allows for the web to remain a collaborative community that preserves the advantages which the web has traditionally enjoyed even sa it transitions to handle new tasks.
  2. Hollow out HTML = the "Un-web". Abandon HTML and replace it with a powerful but proprietary alternative like Adobe Flex or Microsoft Silverlight. Let's call this the Un-web, as it carves out walled gardens which will curtail the web's traditional openness.
The web needs to evolve to support building the Rich Internet Applications that people want to use. At the same time, web tools need to evolve to be able to handle the increasing complexity of building these apps.

Example of Semantic HTML - The Dojo Grid

Web development and customer expectations have far outstripped the table management capabilities of HTML. Why do we expect so little from HTML? Is it too much to ask for capabilities like locked columns and subcolumn formatting? Is the only solution to improve the grid to break HTML by going to a proprietary solution like Silverlight?

A great example of how to evolve the web through semantic HTML is the Dojo grid, which was contributed to the Dojo project by WaveMaker engineers Scott Miles and Steve Orvell.

Here is a screenshot of a Dojo Grid:

With Dojo 1.1, we can use HTML that has additional semantics "layered on" to create a grid like this. Note that it looks a lot like normal HTML beefed up with extra attributes to encode the semantics that allow us to "say what we mean":

JSID=" csvStore" URL=" names.csv" >

<TABLE DOJOTYPE=" dojox.grid.Grid"
STORE=" csvStore" QUERY=" { Title: '*' }" CLIENTSORT=" true"
STYLE=" width: 800px; height: 300px;" >
<TH WIDTH=" 300px" FIELD=" lastName" > Last</TH>
<TH FIELD=" firstName" > First</TH>

The Dojo grid also showcases a core strength of Dojo - it's disciplined architectural approach. The Dojo architecture focuses on extending HTML semantics in an layered way that still give us room for HTML to evolve to meet usage like this half-way in the future (e.g., with the HTML 5 tag). Note that we use a non-semantic tag (a span) to denote something that exposes a fundamentally new capability (data stores), but extend existing HTML semantics for grid configuration.

The result is a very clean layering of Dojo semantics on top of vanilla HTML and css. For example, even with Javascript turned off in the browser, you can still tell what the Dojo grid is supposed to be doing. We can even supply the data via an HTML table in order to get full downward-compatibility.

Replacing HTML with Javascript is enticing but dangerous. Dojo uses Javascript to extend HTML semantically rather than throwing it away. Adding semantics to HTML gives HTML the carrying capacity to support next generation of web design.

Hollowing Out HTML - The Un-Web

While parts of the web evolve, there are also web constraints that don't change, such as the latency of communication and the static application deployment environment (aka browser + plugins). There are huge restrictions in not being able to send down an execution binary along with each web app, but huge deployment efficiencies as well.

One way to overcome the limitations of HTML is to replace HTML with proprietary web technologies like Flex and Silverlight. These technologies pose the risk is that the searchable, collaborative HTML web that we know and love gets hollowed out from the inside. This effectively carves out areas of the web that are not searchable or combinable with anything that has gone before.

Save The Web - One Browser At A Time

It is up to the Ajax and open source communities to "liberate" the HTML web from the Unweb. For example, "liberating" the Dojo grid is an on-going community effort involving large amounts of goodwill, time and cash.

Rapid evolution of the HTML browser can get us to the future, but only if we get a lot more demanding of the web browser manufacturers. What we can't afford is another 6 year drought like what we got when Netscape abandoned the browser wars and Microsoft IE had the world all to itself.

The key to the web's future is real competition between the browser vendors that will force them to evolve the browser quickly. These features include:
  • Auto update capabilities
  • 3-d rendering
  • Support for new semantics in HTML
  • In short, give us native ability within the browser to do what we otherwise have to do in Javascript libraries
What we know is that we have never gotten good browser enhancements and tools from the market leader. So now you know what you need to do to save the web - download and use the underdog web browser and give it all the love you can ;-)

Thursday, March 13, 2008

Visual Ajax Webinar with Alex Russell - March 20 at 12PST

The first Visual Ajax User Group webinar will be next Thursday, March 20 at 12 PST. The speaker will be Alex Russell, co-author of the Dojo toolkit. He will be talking about "The Zen of Web 2.0 - How to Make Web App Development Effortless."

To sign up, send an email to

The meeting will be at the offices of WaveMaker Software, 301 Howard Street, 22nd Floor, but space is limited and we are nearing capacity. There is plenty of room on the webinar though :-)

We also wanted to solicit input on future meetings. The next two meetings have been scheduled as follows:

  • April 17 - Scott Miles, Dojo Grid Creator- Tooling the Ajax Grid
  • May 15 - Stefan Andreasen, CTO, Kapow - Visualizing the Mashup
We do not yet have speakers for the remaining meetings for the year. Here are some of the people we think it would be interesting to have speak:
  • Jack Slocum, CEO, Ext
  • Daya Baran, WebGuild
  • John Brennan, Adobe
  • Kevin Hakman, Tibco General Interface
  • Paul Colton, Aptana
  • Adam Sah, Google Gadgets

Who do you think we should invite? Please leave your suggestions in the comments.

Wednesday, March 5, 2008

Ajax Studio for Mac - iWebMvc

Ajaxian has an interesting article on a visual Ajax IDE for the mac that creates apps that run on Dojo, Spring, Hibernate. Joe Walker's blog also talks about the objectives of the project, which include:
  • Is based on Java
    Although supporting Grooy / JRuby is a plus
  • Helps me to kick start a project
    But simplifying the process by giving me the best (and this can be tricky) set of frameworks for each task
  • Integrates both server and client sides
    And it's lightweight, robust and extensible. Read enterprise quality.
  • Supports all the common tasks a web app has to handle
    I include here: User Management, CRUD operations, i18n support (both framework & data), AJAX and astounding visuals
It looks like the momentum for a Dojo/Spring/Hibernate stack continues to build!

Monday, March 3, 2008

More hot AIR

Tim Anderson's blog has a good, "fair and balanced" ;-) entry entitled Adobe AIR 10 reasons to love it, 10 reasons to hate it.

To summarize, he lists
  • Reasons to Love AIR: strong visuals, cross platform, fast
  • Reasons to Hate AIR: limited extensibility, limited database access, security
Ron Schmelzer, a Zapthink analyst, also wrote about AIR security holes in Infoworld, with more security folks weighing in here. There is also a fairly curmudgeonly rant from I'm Mike on the proprietary nature of the Flash platform, which, BTW, can't be wished away by open sourcing the tool while keeping the underlying platform locked up.

By the way, this is not to say that Flash/Flex is bad per se, or that it is any worse than other proprietary platforms like Microsoft Silverlight. In fact there are many good reasons for Ajax developers to use Flex when needed to add graphic/audiovisual capabilities not yet present in Ajax toolkits like Dojo (O'Reilly has a good article about Dojo and Adobe).

It is more to get a sense of urgency in the Ajax community that we gotta lotta work to do around robust look/feel, as well as some blocking and tackling work to do around the FUD that platforms like Flex/AIR have the database, security and data handling capabilities needed to work inside the corporate firewall.