Home » Featured, Headline, Web Development

Beware of Software Alliances

28 March 2009 No Comment
Beware of Software Alliances

You’ve got to be careful with alliances. When two companies work on the same thing then try to make those things work together, hilarity ensues. Last time I wrote about WSRP ["WSRP is Soo dead"]. WSRP in my opinion is a dead man walking. This time the topic is “Open Ajax”. [LINK].

The Open Ajax Alliance has been in existence since late 2005/early 2006. In that time I am not sure what they’ve done other than publish the OpenAjax Hub.

The charter is “The OpenAjax Alliance is an organization of vendors, open-source initiatives and Web developers dedicated to the successful adoption of open and interoperable Ajax-based Web technologies. The alliance’s prime objective is to accelerate customer success with Ajax by improving the customer’s ability to mix and match solutions from Ajax technology providers and helping to drive the future of the Ajax ecosystem.”

I can see how back in 2005 the view might have been “hey, there’s a lot of buzz about Ajax, why not form an alliance so we can make things go smooth”. Truth is I don’t think any of these vendors were too concerned with interoperability, at that time they all wanted to one-up each other and get their latest/greatest ajax platform out the door.

As history now shows, there haven’t been a whole heck of a lot of interoperability problems (not due to the openAjax alliance). Since the underlying data of Ajax is XML or JSON, it’s fairly hard to make things not interoperable. Let’s define interoperability in this context;

  1. if you combine two or more javascript libraries (in fact the OpenAjax alliance goes even more specific and says “Ajax” libraries) will they each function.
  2. Can two or more libraries exchange data.
  3. Can two or more libraries trigger or subscribe to the same events.

I’ve probably missed a few things but those are the basics. Unless the library goes completely overboard it’s likely to be fairly safe.

That said, are the so many issues in the field that it warrants formation of an alliance across companies? Hardly.

One reason that interoperability of Ajax frameworks has not been an issue is that folks typically don’t use more than one. The ones they DO mix and match are typically very lightweight and tend not to step on one another’s toes. E.g. Prototype.JS and JQuery* can quite happily co-exist.

So why bother with this Alliance? I don’t know.

These groups make me nervous. They’re typically “name dropped” in meetings when you’re actually trying to get something done. “We can use OpenHub, it’s industry standard”. This is like a grenade going off. The magic combination of “Open”, “Industry” and “Standard” is like the Queen of Diamonds to the Manchurian Candidate. The room perks up and folks align their points of view with the speaker.

OpenAjax Hub amounts to less than 200 lines of JS code, including comments. I challenge anyone to find the download link on OpenAjax.org. Did we need an alliance in existence for 4 years to nail that?

Alliances such as OpenAjax are an example of design by committee that that by their very nature stymie innovation. Think about it, you’ve got 1 or 2 representatives in the alliance from 8 or 9 companies that are otherwise competing with one another. They meet once a week for an hour long con-call. Every new feature or requirement is proposed, reviewed, submitted for feedback over a very long period before being implemented. Hardly agile development.

So what’s my point? I think the ideas put forth by OpenAjax are valid, noble ideas. Interoperability between Ajax frameworks, great idea. But how many times has this issue come up in the real world? If it IS truly a problem I’d argue we don’t need an alliance to fix it. If anything I think the alliance makes it happen slower. With all that said, if I DID face the problem of using two different Ajax frameworks on the same page, I’d probably look to the OpenAjax Hub to fix it. Hey, no one ever got fired for hiring IBM.

So beware of “alliances” (unless you’re on CBS Survivor**).

* JQuery supports OpenAjax Hub through an extension.
** Be doubly wary of alliances.

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.