Thursday, February 16th, 2006

Thoughts on the Ajax Toolkit Spectrum from a Microsoft-ie

Category: Editorial, JavaScript, Toolkit

Harry Pierson of Microsoft has replied to the other Dion’s Ajax spectrum with his own thoughts.

With respect to AJAX toolkits, the question becomes just how easy will these lightweight toolkits compose? Because while Dion describes Google Maps as “a simple JavaScript include”, that’s just the technicalities, it doesn’t begin to deal with the semantics. For example, Dojo has Dictionary object, prototype has a Hash object. Dojo extends the Javascript Array, so does prototype. Both libraries wrap the XmlHttpRequest object. In each of these cases, it appears to me that the library authors have focused on the technicalities, but not thought about the semantics. These implementations are all semantically similar, but incompatible. So I don’t buy that these lightweight toolkits will compose well. What do I do if I’m using prototype but want the rich text editor in Dojo?

The network effect that Dion doesn’t consider is the component ecosystem phenomenon that Microsoft has a ton of experience with. Old school VB, COM/ActiveX and .NET have all had large ecosystems of components and controls evolve that extend the functionality of the baseline development platform. There’s no reason to believe that won’t happen with Atlas. I think it’s wrong to describe Atlas as a monolith or self-contained or enclosing. It’s an extensible baseline platform – i.e. the baseline functionality is set down once at the development platform and the ecosystem can extend it from there. Sure, overlapping extensions happen (how many rich text editor components are there for ASP.NET?) but at least they all have basic compatibility.

What do you think? Are you looking for the Atlas experience, or the Dojo/Prototype experience?

We also see a lot of frameworks building on top of Dojo/Prototype, which can give you the best of both worlds.

Posted by Dion Almaer at 9:06 am

3.7 rating from 21 votes


Comments feed TrackBack URI

I think Pierson has spent too much time with languages such as Java and C#, which are not nearly so dynamic as Javascript. Javascript developers who embrace duck-typing aren’t really going to care that much if they’re talking to a Hash or a Dictionary as long as the public API is the same. In fact, if it isn’t, the developer can always paper it over as convenient: (Dictionary.prototype.someHashMethod = Hash.prototype.someMethod)

Microsoft’s Java widget library gained very little traction back in the day for the same reasons that I don’t expect to see Atlas deployed too far from .NET backends.

Comment by Gavin Doughtie — February 16, 2006

Actually, neither experience sounds good. It is my experience that buying too much into a framework is dangerous and limiting, and runs the risk of developing to fit the framework rather than developing your application.

Ask yourself always, if something better comes along, how long will it take to wrap existing calls and use something else.

IMHO it is better to pick and choose functions from various libraries and roll your own javascript solution. In a way you’ll end up doing this kind of stuff anyway at the last minute to optimize your bandwidth!

For example, I like to snag $() from Prototype, but use some of MochiKit for other stuff, roll my own event triggers, add a bit of this, a bit of that from various howtos and whatnot. As magical as AJAX sounds to some, its still just Javascript, not some kind of Enterprise Architecture!

Think about it… did Google wait around to buy into a framework?

Comment by casey — February 16, 2006

Why would Mr. Pierson expect that diverse toolkits developed by different groups would compose? By definition, things built on top of Atlas will compose well with Atlas, just like things built on top of prototype (ie, scriptaculous) will compose well with prototype. Seems like a silly point.

Diverse toolkits *could* compose if we all agreed on a semantic standard. The starting point for that effort would seem to be in the future, after these frameworks compete for a while and we see what shakes out.

Comment by Bob Lyons — February 16, 2006

From where I stand dojo is just as extensible as Atlas. Both serve as platforms only after you have bought into their semantics. I’m missing how Atlas does this any better… Anyone care to clarify?

Comment by Edward Ho — February 16, 2006

I would like to correct what *sounds* like a misstatement. He asserts that “Dojo extends the Javascript Array” to which I say “bullshit”. We provide a *separate class* that explicitly avoids extension of the root object prototype. That’s the road to hell. Dojo won’t go there.
As for the “comprehensiveness” of Dojo vs. Atlas, I’m not sure his jab deserves a response, although I do invite him to peruse our source tree a bit more.


Comment by Alex Russell — February 16, 2006

they (MS) should work on their crapy browser first, then start commenting on other’s work.

Comment by doru — February 17, 2006

How typical of M$ to be talking about open standards. This company has been trying to kill open standards for as long as I can remember.

Comment by Gerhard Zielinski — February 17, 2006

Leave a comment

You must be logged in to post a comment.