Raise an ALE to Google Maps API v2

“Of course!” I said to myself as I saw the demo, “if web apps are becoming like desktop apps then of course we’ll be building web equivalents of all the things that desktop apps needed.” I was on a WebEx with Ross Dargahi, co-founder and VP of Engineering at Zimbra, as he was walking me through the new technology they’re releasing today: ALE: Ajax Linking and Embedding (spec). It’s the Javascript equivalent of Windows OLE, the piece of Windows that let you put a component from one app into another (e.g., a spreadsheet into a document).

ALE is, at its heart, a simple standard whereby components (like the spreadsheet) register callbacks to let the main application know how to marshal (serialize) their data, get an edit interface, get an HTML read-only display, etc. Simple is good, though the cool toys from the Windows world will come with the same costs: DLL hell (imagine if my spreadsheet component uses a different version of a date library than the version my main app uses), speciation over versions of the spec (will ALE 1.0 components work with ALE 2.0 components?), and fragility (as apps are only as stable as their crappest component).

Those are the risks. On the positive side, the ability to build Windows apps from components lead directly to a vibrant third-party market for custom controls. Will this happen with Javascript, where all code is readable? I hope so–I’d like O’Reilly to be able to pay $50 and get The World’s Most Perfect Address Entry Widget (“it knows how many digits your country’s postal codes are! It knows how your country’s phone numbers are formatted! It knows whether you have states, counties, or nothing at all! You’ll never have to pretend you’re from Alabama again!”). We’d undoubtedly want to modify the component for different applications on our site, so the open source nature of Javascript components would be a great plus.

To play with their demo, go to the Zimbra hosted demo and click on the spiral-bound notebook icon on the left. Create a new page, and use the “Insert” toolbar item to add a spreadsheet. I’m still working with Ross to make that easier to get to (and to see whether my Firefox issues are because I’m too bleeding edge, insufficiently bleeding edge, or just that there’s a bug somewhere).

Google Maps was the original mainstream HTML component (as I said in June ’05). Coincidentally, Google just released Version 2 of the Maps API and it includes a (developed in parallel to ALE) system for developers to build and integrate their own controls onto the map. The time must be right to tackle the problems around web components.