This is the first in a series of post on what I saw, talked about and experienced on the AjaxWorld conference this year in San José. The conference has just ended and I'm sitting in the hotel room after a nice crabcake burger and a glass of wine and will soon head off to Mountain View in search for a SF bookstore.
My impressions of the conference as a whole and of the state of the industry (which one might hope would have a correlation) is that the world is being split in two. Luckily, most people isn't particularly interested in the bad part :) What I mean by that is that a seizable portion of the talks and booths revolved around products that continue to pile complexity upon complexity on the developers to shield them from the browser.
I'm primarily talking about Oracle and Icefaces here, of course. But also talks on GWT and PHP-generated server-side templates for JS did their best to muddle the waters. Of course, this is not really fair in my part, since everyone is trying their best to solve the problems as best they can. If it so happens that someone has struck upon a substandard architecture and haven't had time to think through all the angles, it's certainly not because of malign intent.
On the whole I was happily surprised to see a lot of companies present whose products and talks were attracting a lot of attention, who were in essence advocating thin server solutions across the border, wholesale. Smartclient from isomorphic has grown a _lot_ since I checked it out a year or so ago.
They have basically built 50% of Dojo all by themselves, for their client side framework, and I couldn't help but thinking: Agnostics what a waste! How much time it must have taken them. And then immediately: Wow, that's really smart, we should have that in Dojo :) What I was most impressed with was their efficient focus in metadata. Nowadays we have JSON-Schema, which was not a luxury they had when they started out, of course. They have a tool which let you import schemas of different formats, though, so JSON-Schema support is probably on their radar.
Why is schemas so important? Well, they have many (all?) components schema-aware, so that if you attach a schema to a Form component, up pops a form with the correct fields, date fields have a datepicker, int fields have validations for integer values and so on. Also, the form gets generated by itself, of course, and can be remaking itself dynamically. Why don't we have such a thing in Dojo? Actually, there's no reason at all, but right now I'm blogging. Also their grids work in the same way, and have a couple of extra features like sort fields which can be enabled for any column (filters).
My only gripe with Smartclient is that the web-based IDE is non-free (but they have a 60-day demo), and also that they have written a whole new toolkit instead of leveraging jQuery, Dojo, Ext or something. Their toolkit is LGPL and all, but still think that it would have been simpler if they hadn't been so monolithic. Now, I _am_ just grumbling. the Smartclient DIE was absolutely wonderful with tons of smart components and a clean separation o f concern between the client being created and the services it consumes. Very good.
UPDATE: As @ckendrik points out in the comments below, when the first versions of Smartclient were created, no toolkits were available (2001), which explains both the long list of features and the reason for a homegrown solution. I'm not at all suggesting that Smartclient is fracturing the framework space. It is actually very uncommon for companies with similar products to actually leverage an existing framework; Appcelerator, TIBCO, et.c. have their own frameworks as well. This is very much alleviated by the fact that many companies are starting to provide bridges to other frameworks; Smartclient have extension for GWT interaction, for example.
Coming up: " jMaki - buried treasure", "WaveMakers upcoming massive cloud gambit", "Lessons learned around Mars" and finally "SSJS - the only way forward".
Your trusted uncle in San José,