The battle for the dominant Web API

Thought-provoking post from Joel Spolsky on web client APIs. He says that whoever has the best AJAX library will be the next Microsoft.

Spolsky dismisses “the p-code/Java model” (which would include Flash and Silverlight 1.1 as well as Java applets):

Sandboxes are penalty boxes; they’re slow and they suck, which is why Java Applets are dead, dead, dead. To build a sandbox you pretty much doom yourself to running at 1/10th the speed of the underlying platform, and you doom yourself to never supporting any of the cool features that show up on one of the platforms but not the others.

I don’t follow his logic here. First, “sandboxes” may be slow compared to true native code, but they are faster than any browser-hosted Javascript, at least until Tamarin comes along. Second, AJAX apps are generally as much or more hobbled than plug-in applets.

I’m not dismissing the idea of compiling to Javascript though. There are interesting projects that do this already. In addition, Spolsky seems to be thinking along the same lines as Microsoft’s Eric Meijer, who told me about the misleadingly-named “LINQ 2.0”. But I think plug-in based apps will be important as well, both as entire applications and as rich components within AJAX apps.

Personally I hope there will not be a “new Microsoft.” I’d like to see diversity based on web standards.

IBM’s new Lotus Symphony

I’ve had a quick look at the beta of Lotus Symphony, IBM’s new Office suite. It’s built on the Eclipse Rich Client Platform (RCP), which is interesting in itself, and is another salvo in the office document format war.

Why would anyone want to use the new Symphony? I presume it makes some kind of sense in the context of an integrated workflow and collaboration platform based on Notes. Considered purely as an office suite, it does not yet come close to Microsoft Office, or even Open Office.

The FAQ claims some compatibility with “Microsoft Office files” (though there’s a long list of things that might not convert correctly), but studiously avoids any mention of the 2007 Microsoft Office document formats. It should say: compatibility with old Microsoft Office formats. Note that if you install Office 2007, save a document, and try to open it in Symphony, it will not work at all. Nor will Microsoft Office (any version) open Symphony documents, unless you take the trouble to export to a format other than Open Document. What a mess.

When I searched for Lotus Symphony on Google, I was amused to see what came third and fourth in the list:

Scott Guthrie on .NET futures

I’ve posted my interview with Scott Guthrie, from the UK Mix07. It covers topics including LINQ, Silverlight, the work with Novell/Mono on Moonlight (Silverlight for Linux), ASP.NET futures including MVC, and offline web applications.

Guthrie is a General Manager at Microsoft, responsible for most of the development teams working on .NET. He did some excellent presentations at the UK Mix, intermingling live coding and demos with slides, talk, and dealing with ad-hoc questions – not an easy task.

There were several things I found interesting in his answers to my questions. On a technical level, the way Microsoft’s various implementations of the Common Language Runtime share code is intriguing. In particular, I was fascinated to learn that Silverlight and the desktop CLR are built from the same code tree. There is a second code tree for the CLR, but it is for the Compact Framework, not for Silverlight. The implication is that the performance of Silverlight and its compatibility with other .NET code should be pretty good.

How then is Silverlight much smaller than the desktop CLR? The reason is that most of the Framework library is missing. That’s the trade-off.

Another point of interest is the strength of Guthrie’s reaction when I asked about offline web applications, and Microsoft’s platform versus other approaches such as Google Gears and Adobe AIR. When a spokesperson takes the trouble to trash the competition, it is often a sign of concern.