What I wanted to say is, many of us remember Windows 2000 as this watershed moment—I know I do—but the more I look at the contemporary developer docs, the more it appears to me that innovation in core OS services at Microsoft had largely already stopped at that time.

Quite a few things that were promoted as Windows 2000 features to developers ended up being deprecated into oblivion (transactions started implicitly due to entries in the Windows Registry, why did anyone think this a good idea?..), abstracted away (thankfully nobody remembers that Windows Installer has a half-baked SQL underlying it), forgotten on the curb of advancing technology (you can still use asynchronous monikers to define custom protocols for IE, but why would you), or just slowly turning into yet another stratum in enterprise software archaeology (WMI/CIM).

So if it was a watershed moment, it seems like it was more for Microsoft marketing than for general-purpose Microsoft APIs: Windows 2000 was the first NT promoted to consumers, as well as the first NT to run acceptably on respectively contemporary consumer hardware, and the contrast with 9x was indeed stark. But if we are speaking about when Microsoft innovated in its OSes, it really does seem like the period between maybe 1998 and 2005 was a lull, and that contrast that so shocked us then had little to do with the Windows 2000 release specifically and could just as well have happened for NT 4, if only RAM had been cheaper back in 1996. (Recall that Windows 95, née 93, was supposed and even announced to be the last release built on the Win16—or “Windows”—foundation.)

That’s not to say that Microsoft was idle. USB, PCI PnP, ACPI (and before it APM—remember APM?) are all bound to have taken serious kernel-level work, let alone the great Vista video driver rewrite. DirectX for X≠3D basically died, but that last part got really really important. HyperV I hear is competent and people do actually run it.

On the application side, Java was going to be the next big thing on Windows before it was shot in the head, .NET was of course unveiled shortly after Windows 2000, then Vista came along with transactional NTFS and the transactional registry and transactions everywhere were going to be the future (and you can see how that followed from the DCOM/MTS/COM+ work even if it wasn’t marketed that way). And there was WCF and WPF and XAML and XPS’s attempt to displace PDF and replicate Display PostScript and then COM was reborn as Metro/WinRT. And you see how a lot of that last paragraph is a mix of the unhinged (WCF) and the genuinely cool that ended up going nowhere either way? Much like the new Windows 2000 stuff I listed above was a grand vision of the future that fizzled out, there are like a half-dozen grand visions of the future here that were all at various stages at fizzling out at the same time.

Again, none of this is lazy, much of it is even novel. Yet somehow none of it ended up truly significant. Transactional NTFS could have been as large a shift as ZFS—but it wasn’t. Vista’s libraries could finally have brought BeOS’s filesystem-as-a-database to the mainstream—but it didn’t. And now ads in the Start menu are entering their second decade. Part of it is probably the slow death of the desktop in general. I can’t help thinking it’s not all of it, though. In retrospect, Windows 2000’s largely unused new features feel like the start of a trend.