Justin du Coeur (jducoeur) wrote,
Justin du Coeur

Failure to suck

I've long observed that Marvel Comics, as a rule, is a fad-driven company. Some Big Idea comes along, and they decide that it's the secret to greatly improving their sales. Sometimes it's multiple "collectible" covers, sometimes it's a particular art style, sometimes it's mega-crossovers. So a few years ago, I was pleased to discover that their latest fad was choosing people who actually knew how to write. After a number of years of basically swearing off Marvel, this was the change that finally drew me back in, as the likes of Bendis and Ellis (not to mention JMS) started to make their comics interesting again.

I was put in mind of that yesterday, while we were watching the latest presentation from Microsoft's PDC last year. This was on Monad, their new administrative environment -- basically, the replacement for the command shell. It was, frankly, jaw-dropping. Based on what I'd seen so far, I was expecting something like a Unix shell but a little better (which would have been a huge leap over the Windows command shell by itself). But instead, Monad turns out to be a fairly principled rethink of the underlying ideas: an environment where programs can publish cooperative commandlets and data, and which makes it remarkably easy for admins to stitch those together, using the same pieces for interactive command line, scripts and GUIs. It's a major leap ahead, adding a lot of very good ideas to the stew.

(A brief summary: Monad is a .NET environment. It's very easy to build "commandlets", which are fully object-oriented filters; these can be either freestanding, or -- I believe -- exposed by running programs. More importantly, though, you can build "providers", which expose hierarchical data as if they were filesystems; the Monad shell then allows you to explore it exactly as if it was a filesystem. There's all sorts of magic under the hood, allowing the system to match up semi-heterogeneous data by name as you feed it through the filters and automatically converting between all the major data types, so writing powerful filters and stitching them together is much easier than it has traditionally been.)

In our brief postmortem, several of us were struck by the fact that Microsoft has been releasing programming tools fast and thick in recent months, and they have shared a common quality of not sucking. Those who have worked in the Windows environment for some years will understand how remarkable that is -- Microsoft has always followed the pack in the past, usually putting out tools that have been half-assed and annoying. But the generation of tools being released now is getting decently state of the art, and the next wave that is currently in alpha and beta seems to be leapfrogging everyone else. I can't say they do everything right (for instance, their "agile programming" tools are the laughingstock of the development community), but they seem to be making a concerted effort to advance the programming field where they can.

And as far as I can tell, it's more or less the same situation as at Marvel. Sometime in recent years, Microsoft started hiring a lot of very smart people to lead their architectural teams -- and what's remarkable is that they seem to be actually *listening* to those people. As a result, the new stuff coming out, especially the more radical and central projects like Monad and LINQ, are eschewing the traditional shovelware hackery in favor of elegant and clever architectures.

Mind, they're still evil monopolists. But they seem to be turning into *competent* evil monopolists. Whether this is a good thing or not is very much a matter of point of view...
Tags: programming

  • Post a new comment


    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded