Stop the Press, LJ Index and more.
ULB in Upcoming Issue

Don't miss our annual Ultimate Linux Box article forthcoming in the November issue. This year's LJ ULB gets an upgrade from single to multiple processors by including AMD's new Athlon MP processor. See www.amd.com/products/cpg/server/athlon/partners/partners.html for a few places where you can get yours.

Stop the Presses: Recasting .NET

On July 9, 2001, Ximian did the unprecedented: they embraced and extended the Microsoft “innovation” called .NET. Titled the Mono Project, they called it “a community initiative to develop an open source, Linux-based version of the Microsoft .NET development platform”. In a number of interviews, Ximian CTO Miguel de Icaza was remarkably flattering to .NET. To The Register he said, “.NET solves a number of problems we've been trying to solve in GNOME. Instead of wasting our time trying to create a new standard, we're embracing .NET and extending it for our own purposes.” To Linux Journal he said, “We saw in .NET a mechanism that would allow programmers to become more efficient. You have garbage collection. You have thread-based libraries. You can use any programming language—and none of the class libraries have dependencies on Windows. There is a lot of device and platform independence.”

On Slashdot and Linux Today the responses ranged from “Way to go” to “Dare we ask it? Has de Icaza been seduced by the dark side?”

In fact, the effort has a lot more scope in ambition than in actual size. While .NET is a vast development framework, de Icaza tells us:

We're mostly looking at just what Microsoft calls the Framework SDK. This basically consists of three pieces. The first is a virtual machine—they call it a virtual execution system—which is basically a runtime. So far we have implemented one-third of our C# compiler; we've started work on a runtime engine, a just-in-time compiler for Linux; and we've also started work on class libraries to run our compiler inside of Linux. It's not a complete project yet and won't be for another six months. Then we hope to have by the end of the year something that can run the compiler—a system which is self-hosting, so we can compile the compiler itself on Linux. It's a huge project. That's why it has to be an open-source project. We can't do all the work alone.

Craig Burton, an analyst with Burtonian.com (who joined in during the same Linux Journal interview) says, “It won't be easy, especially since Microsoft won't even be done with the .NET framework before the end of the year. Microsoft hasn't even explained .NET to itself. A lot could change before the end of the year.”

De Icaza responds, “Microsoft right now has .NET at a point it calls 'API stable'. We're working from (what they) submitted to the European Commission.” Instead his main concern, shared with many who remarked on the announcement in public forums, is with licensing. De Icaza thinks Microsoft's public concerns about the GPL are a smokescreen for its perception of Linux as a direct competitor for its service business. Regardless of Microsoft's motives, any attempts to embrace and extend .NET are likely to be a source of legal concern to the company.

Meanwhile the idea in the medium-long run, de Icaza said, is to let developers create .NET applications and run them on any Mono-supported platform, including Linux, UNIX, and of course, Windows. That's the goal he and Ximian will be working toward with the Mono Project.

On Slashdot “polar bear” writes:

It's a long shot. But if IBM, Sun, HP and the rest got behind a true open standard Web services framework, Microsoft wouldn't be able to deny its competitors an equal playing field—which is exactly what it wants to do with .NET—they want to deploy pieces of .NET to other OSes to lure people in to using it, but the choice bits will only work with Windows. An open .NET would allow everyone to have an equal footing. Sure, Microsoft could still play ball, but they'd lose some of their bully power.

In the days that followed the announcement, however, another potential strategy emerged, suggested first by Burton—who employed exactly the same strategy when he was fighting Microsoft, successfully, at Novell in the 1980s—then picked up by others. That strategy is “redirection”. By contrast, Burton calls Ximian's strategy “cloning”. He writes, “The cloning method simply means that you rewrite all of the code that Microsoft has developed and run it on a different platform.” Redirection, he continues, is a way to “redirect” or “hijack” the Microsoft-generated object data flow to servers that are not controlled by Microsoft. The same strategy could apply to data streams of all kinds, including instant messaging (IM). XML streams of AOL and Microsoft Messenger client code could be redirected into Jabber's IM server, for example.

In the long run, Burton believes, “.NET (all of it) and HailStorm are going to be redirected technologies. If I were Ximian—or any other open-source vendor for that matter—I would be busy building redirection-based code, not clone-based code.”

And thanks to the nature of open source, the bazaar will decide.

—Doc Searls