Rearranging the Longhorn Pillars

Just got off the phone with John Montgomery and Bill Schultz of Microsoft regarding today’s announcements re. Longhorn. The official word is that they’re announcing 3 things:

  1. Longhorn client will be “broady available” sometime in 2006;
  2. The Avalon (display) and Indigo (communication) subsystems of Longhorn will become available sometime to users of Windows XP and Windows Server 2003, although the user experience (e.g., performance) may not be as good as it would be on equivalent hardware running Longhorn; and
  3. WinFS (file metadata) will only be in beta when Longhorn client ships.

So, in other words, they’re attempting to decouple the various subsystems: the foundation and the user experience (key components of “Longhorn client”); display and communication (“pillars”, but not requiring the foundation); and file system metadata (the mountain that’s thrown back all attempts to scale it and now, apparently, no longer considered an essential part of the OS known as “Longhorn client”).

That Microsoft is able to say “we’re decoupling these Longhorn subsystems,” is good news, as it implies a confidence in the subsystem architectures and their ability to integrate. The downside is that backwards compatibility is a bitch.

The more subsystems, the greater the late-phase integration challenge is, especially when you’re talking about performance-critical subsystems like the display stack. Committing to Avalon on the non-Longhorn device driver model just dictated a couple dozen job positions for the next decade. Similarly, I believe that while network communication has been rumored to be the biggest challenge to WinFS, backwards compatibility is also part of the problem (What’s funny is that Linux can get away with stuff like: “Buy a new hard-drive, format it with this brand new technology, and then copy over all your stuff. It should work most of the time.”)

What does this mean to developers? Well, I wouldn’t bet my company on WinFS ever becoming available. I expect it will ship, but I wouldn’t put my job on the line over it. Second, I asked if the decoupling of the subsystems meant that developers would be able to learn the Longhorn pillars in bite-sized chunks (download Avalon, install it on an XP virtual machine, learn it, download Indigo, learn it, etc). Their response was that they haven’t figured out how they’ll deliver Longhorn pillars on old foundations, but in essence, I got the sense that if you want to learn Longhorn technologies, you should still be looking to the Longhorn beta cycle. Third, backwards compatibility inevitably produces a lot of pressure to change the APIs — even if you’ve invested a lot of energy in learning Indigo and Avalon, I expect you’ll have some (re-)learning come the beta.