I've had people using Windows 7 for about three months now, and everything about it so far seems to confirm my first impression that it's a lot better than Vista: effectively reprising the consolidation and debugging Windows 98 offered over 95.
Once you get past the sheer shock of using a Microsoft OS that doesn't fail daily, however, you start to fret about the things that aren't there: as a Mac/Solaris user, for example, I find the absence of multi-screen capabilities and the relative inflexibility of working panes and icons extremely frustrating. Still it is usable; and that's a long step forward - at least until you get to development work.
Then the frustrations set in: Visual Studio is very slick, but very limited. Specifically, it's great if your application is going to use a super-computer desktop as a graphics terminal but pretty much counter-productive if you want to sidestep client-server and produce genuinely integrated multi-host applications.
So why? Well, mainly because Microsoft's inability to transcend its own 90s focus on helping its sales force make money selling client-server into businesses has left the whole .net thing Microsoft promised to integrate into Longhorn and its successors implemented, along with the promised PICK-like file system and security conscious display frameworks, only in marketing documentation.
Organizational disfunction aside, I think the key technical reason for this has been that getting those things done within the underlying memory and process management paradigm Windows NT+ inherited from VMS has proven, if not actually impossible, at least too hard for Microsoft to make a commercial success of.
So now it wants to sell cloud computing and applications rentals but doesn't have the OS foundation on which the development of these products has to rest - and that's going to force Microsoft into a build or buy decision.
They've been trying to build a network based, vaguely Unix like, OS for PowerPC for about six years now -with no success to speak of, so my guess is that the build exponents will eventually lose the argument - leaving Microsoft with three mutually exclusive choices:
- get there through a licensing deal with Apple;
- do it by adopting and extending OpenBSD; or,
- do it by adopting and extending Linux.
Each approach has pluses and minuses: the Apple approach would cost the most upfront, but drop a leading competitor out of Microsoft's desktop markets; the OpenBSD approach combines low cost with a high quality code base and a well deserved reputation for security; and the Linux approach capitalizes on the breadth and capabilities of its community while threatening IBM.
You'd think Microsoft could do the Apple deal at the drop of a phone call to Mr. Jobs - who clearly wants to be out of the traditional PC business anyway - but my guess is that the emotional barriers to rational behavior on this will prevent that phone call.
If it comes to shootout between the OpenBSD and Linux options I suspect Microsoft's techies will line up favoring OpenBSD as offering the stronger foundation for all the neat stuff they dream of doing, while all the marketing types will favor Linux - and in that company marketing trumps technology every time.
So the bottom line for Linux on Windows may be simple: Windows7 is probably Microsoft's best OS yet and will therefore slow the move the Linux in the short term, but the limitations built into Microsoft's development stack show it to be a dead end that will leave Microsoft marketing magnificent visions of its unfolding future while quietly figuring out how and when to abandon that code base for something else - and because that something could very logically be Linux it might be time for the Linux community to start paying a lot more attention to legacy interoperability with Windows.