Here at Adobe MAX Europe I had an enjoyable chat with Adobe’s Mark Anders about his time at Microsoft. Anders is well known as one of the inventors of ASP.NET, along with his colleague Scott Guthrie. However, when he joined Microsoft in the mid nineties he worked initially on the project codenamed Blackbird. This was a kind of Windows-specific internet, and was surfaced to some extent as the MSN client in Windows 95. Although the World Wide Web was already beginning to take off, Blackbird’s advocates within Microsoft considered that its superior layout capabilities would ensure its success versus HTTP-based web browsing. It was also a way to keep users hooked on Windows. Anders told me that he never believed in Blackbird and argued that Microsoft should support HTTP instead. According to him, the executives at the time did not want to listen at first, but Blackbird had severe performance problems because of an over-complex architecture which made excessive use of multi-threading. Another colleague came up with the first prototypes of the Trident rendering engine, which we now know as MSHTML, and showed that in principle Blackbird’s layout goals could also be achieved with HTTP. In consequence Blackbird was scrapped before it was released.
What would have happened had Blackbird performed better? The momentum behind the World Wide Web would have ensured the eventual death of Blackbird, but Microsoft would have been further behind in the web server and web browser market. In retrospect, the slowness of Blackbird was the best possible thing for the company, because it enabled an earlier move to HTTP.
According to Anders – and bear in mind that he now works for a competitor – the tendency to over-complicate its software is one of Microsoft’s biggest problems. The projects that work best tend to be those which simplify what already exists, rather than those which make it more complex. Thus, the success of C# and the .NET Framework came about because of its ease of use in comparison to C++ and MFC. Anders recalls the 2000 PDC, when C# and the .NET Framework was introduced to the world, as a great success. By contrast, at the Longhorn PDC in 2003 Microsoft introduced new technology that was not fully thought-through. These were the “three pillars of Longhorn”: Avalon (now Windows Presentation Foundation), Indigo (now Windows Communication Foundation) and WinFS (now scrapped). Although WPF and WCF have been shipped, they are not in any sense pillars of Windows Vista, which is largely native code. The Longhorn Alpha that was given to PDC attendees (I still have my copy somewhere) was worked on for another year, and then much of the code was scrapped in favour of a conservative upgrade from Windows 2003 – the famous reset that became Windows Vista. Like Blackbird, the original Longhorn had performance issues. I put it to Anders that the failure of Longhorn cost Microsoft two years of momentum; he replied that it was even more than that.
When Anders was working on ASP.NET he says there was always an element of disapproval from others at Microsoft who wanted to tie users more closely to Windows. Although ASP.NET runs on Windows, it supports cross-platform browser clients. There are parallels today with what the Silverlight team is doing. Silverlight is the right direction for Microsoft, but not everyone will like the idea of a rich cross-platform client and the Silverlight team may be under that same kind of pressure. Of course Anders would say that, because he now works on Flash, but I suspect there is truth in it. Microsoft does at times lurch back into Windows-only mode, as it is did when it ceased development of Windows Media Player for the Mac. That was an extraordinary decision when you consider the wider context of the multimedia and DRM wars. With Silverlight Microsoft is once again on the cross-platform track, not just for multimedia but for .NET code. It seems to be serious about it, but it will take a lot to convince long-term Microsoft watchers that cross-platform Silverlight will endure. Personally I hope it stays the course; competition is good.