Enterprise Unix Roundup Mono, Pragmatism 1.0
|Main||In Other News||Security Roundup||Tips of the Trade|
Though largely a ceremonial affair, the "1.0" release of anything always involves at least a little ballyhoo. The Mono Project hit the magical 1.0 Wednesday, making good on a three-year promise to bring Microsoft's .NET framework to Linux and Unix.
We remember our first .NET presentation. It was held in the form of a colloquium at a nearby technical school, and the Microsoft representative on hand spent less than 30 seconds on the podium before ducking out of the way to let the speaker, an Actual IT Nerd from an Actual Local Organization, pump .NET and scoff at Java, which had once been the love of his life.
It was a good presentation that induced only a little brow-furrowing when the speaker passed through the vale of tears that is a discussion about security on a Microsoft platform: His native honesty got the best of him. Even so, by the time he was done, we were fairly impressed, albeit troubled.
On the surface, .Net seemed like a good thing, and we've since seen some interesting applications come out of it that feel more polished and solid underfoot than some Java desktop applications. The trouble with it is the usual Microsoft trouble, which is the company's willingness to establish new "standards" that always end up being less, er, standardized in implementation than they seem on paper. We were also troubled by the somewhat smug and smooth way Microsoft representatives assured people that .NET would be available on any platform where someone cared to implement it, thanks to the slippery space .NET occupies in the world of open standards.
Although built on top of open standards, .NET itself isn't a "standard." It's a way of making a bunch of standards work together. Moreover, as Microsoft implements it, there are Windows-specific libraries that Redmond is reasonably certain most developers in Windows-centric shops will write against. In other words, "here's your multiple form computing paradigm ... works great with Windows ... your mileage may vary."
The other thing in the back of our head as we sat through the presentation was the Mono project, which wasn't even a year old at the time. The promise of Mono is .NET for everyone else: A framework for developing .NET applications and services that allows Unix, Linux, and Macintosh developers to play along.
Mono is the brainchild of Ximian's Miguel de Icaza, who has shown a willingness to play along with Microsoft in a manner that's been wildly discomfiting to his confreres in the Linux developer community (not to mention the even less pragmatic Linux enthusiast base). De Icaza, for example, drove the early development of Ximian's Evolution, which is almost instantly recognizable as a lean variant on Outlook, then turned around and added Exchange server connectivity to it. The former was considered a little gauche but tolerated because Evolution is better than most GUI mail clients and calendars available on Linux. The latter was widely considered unforgivable because it conceded Microsoft's dominance in a key area.
Because his Helix Code co-founder once actually interned at Microsoft, conspiracy theories about de Icaza's motives have flown thick and fast, all ending with him standing alone in his office with a briefcase stuffed full of Microsoft cash.
Having spoken with de Icaza and his co-founder a few times, we're convinced he's much more of a pragmatist than a mercenary. Faced with Microsoft's capacity to announce an initiative like .NET and fully expect the computing world to get in line, he chose to take the company up on its promises of openness and challenge the bland assumption that "the Linux people" were far too busy resisting to bother implementing a technology many developers found compelling. His outlook all along, implicit in the Mono project, has seemed to be "You can either remain marginalized with the comfort of your revolutionary rhetoric, or you can pull your nose away from the glass and help make a push to validate Linux as a development platform in the modern enterprise."
Will Mono do that? We've seen early results of the effort, and they're impressive in their cross-platform functionality (they run on both Linux and Windows) and their underlying polish. Developers seem happy with it, too.
That doesn't mean Mono is "done." We mentioned some Windows-only dependencies Microsoft seemed to be banking on Linux and Unix developers turning their noses up at. The one that comes to mind immediately is Windows.Forms. That's expected to land with Mono 2.0, and it will further tighten the ability Linux and Unix developers have to write cross-platform apps in the language of their choice (Mono supports more than .NET's C#).
Mono's not going to destroy Microsoft. In many ways, Mono validates Microsoft's initiative with simple sweat equity: Three years of development have been aimed at cooperating with .NET instead of railing against it. The revolutionaries aren't happy, but the pragmatists now have a tool they can use, and a foot in the door for Linux and Unix in operations where Windows has been dominant.