All products featured on WIRED are independently selected by our editors. However, we may receive compensation from retailers and/or from purchases of products through these links.
A group of open-source developers will announce Monday a project intended to steal some of the thunder of Microsoft's much-hyped ".Net Initiative," according to executives at Ximian, the open-source company that plans to spearhead the project.
The project, said Miguel de Icaza, Ximian's chief technical officer, will attempt to create a Linux version of the .Net Framework -- Microsoft's set of software tools that will form the core of its future software initiatives.
The plan -- called Mono -- is billed as a call to arms to open-source developers who want to "head Microsoft off at the pass," as one developer put it. And if Mono is successful, the consequences for Microsoft could be dire: Conceivably, an open version of .Net would allow programs written exclusively for the Windows operating system to run seamlessly on Linux or other operating systems.
"In five years, if everything runs on .Net, you could take every executable and run it on Linux," de Icaza said. Conversely, software written for Mono could run on Windows -- and obviously, such cross-platform openness could hamper Microsoft's power in both its operating system and application business.
Up until now, de Icaza's main business was Gnome, an open-source Linux user interface, or a "Linux desktop." But de Icaza said he has always thought of Gnome as something more than just a user interface: "We thought of it as a platform. We've spent a lot of time developing it as an infrastructure," so open-source programmers could write programs specifically for Gnome.
But when he started looking at Microsoft's .Net Framework a few months ago, de Icaza said he "realized it was a very nice development platform. We saw that it was pretty much what we were doing with Gnome."
De Icaza is careful to note, though, that Microsoft's ".Net initiative" is a messy bit of marketing lingo that includes more than just the "development frameworks" he's trying to incorporate into Linux. Microsoft's initiative includes Passport and Hailstorm, which are "Web services" that have been very controversial in the open community.
"That's not at all what I'm talking about," de Icaza said.
He's only talking about the .Net Framework, which Microsoft calls a "development infrastructure." It is based on a set of open standards -- Microsoft has submitted these to ECMA, a technical standards body -- which are theoretically not tied to any specific operating system.
Currently, most software is written to run on a specific operating system -- Adobe writes a version of Photoshop for Windows and a separate version for the Macintosh, for example. As the program runs, it makes specific requests of the OS -- like "bring up a dialog box," or "draw a scroll bar" -- whose protocols vary for different operating systems.
Microsoft's .Net framework is intended to run as a "separate layer" between the operating system and an application. Instead of making a request like "draw a scroll bar" from the OS, a .Net programmer would ask the .Net Framework application to do it. This program acts as a "translator" -- it converts the request into a form that the operating system can understand.
Theoretically, the presence of this translator allows .Net programs to be cross-platform. Programmers can write their applications in a variety of languages for only one system -- the .Net system -- and it could run on the Mac or Windows or Linux OS.
Of course, that's just the theory. There is no indication that Microsoft will itself write .Net translators for operating systems other than Windows -- indeed, based on the company's behavior in the past, it seems a long shot that the firm really wants a programming environment that would make it easier for developers to easily sell their Windows applications to people who use other operating systems.
Five years ago, for example, when Sun Microsystems released Java, a cross-platform language that works on the same "middle layer" principle as .Net, Microsoft tried to push its own version of Java that wasn't fully cross-platform.
Though Microsoft said that its version of Java was compatible with others, and that developing Java apps on its tools would result in programs that could run on any system, developers soon found that the company's Java was something of a watered-down version.
The U.S. Court of Appeals agreed last week that Microsoft deceived programmers with its cross-platform Java talk.
"Developers who relied upon Microsoft's public commitment to cooperate with Sun and who used Microsoft's tools to develop what Microsoft led them to believe were cross-platform applications, ended up producing applications that would run only on the Windows operating system," the court said.
Bruce Perens, an open-source pioneer who now works as an adviser to Hewlett Packard on its Linux systems, believes that Microsoft could do with .Net what it did with Java -- make it cross-platform in name, but make it technically and legally difficult to write cross-platform programs for it.
He suspects that part of the reason Microsoft submitted .Net specs to ECMA was because it "wanted an out from antitrust issues."
"But if we come out with enough open-source stuff that uses this platform now, we can potentially enforce the compatibility," he added.
Microsoft declined to comment on Ximian's announcement, but John Montgomery, Microsoft's lead product manager for the .Net Framework, agreed to e-mail Wired News answers to general questions on its plans for .Net development.
"Microsoft expects wide uptake by many different groups of developers, from commercial to academic to open-source hobbyists," he wrote. "In a world of XML Web services, interop is very important; we believe that by standardizing on (.Net's Common Language Interface) as a basis, the industry can move ahead productively. Microsoft clearly supports the submission and adoption of public Internet standards, and at the same time plans to compete vigorously on the implementation of these standards."
He also pointed to an announcement the company made last week concerning its deal with Corel to produce a "shared source" version of the .Net standards for the FreeBSD Unix platform.
"Part of the reason for doing our project with Corel is to prove that Unix-based implementations are both feasible and desirable," Montgomery said.
But Perens and other open-source advocates noted that "shared source" is not nearly as open as "open source." He said that "while the Microsoft version doesn't allow you to run on Linux at all, our version is legal to run on any OS anywhere. What's interesting about this story is, here Microsoft has made .Net the crown jewel of its shared-source project -- and two weeks after their announcement the open-source system comes out. So why do you need shared source?"
Of course, Mono is not out yet -- this is just the announcement of a project. And Ximian's de Icaza said that the most difficult aspect of the project is its size. "That's why we're launching it as an open project," he said. "This is too big for Ximian to do by itself."
But will the open-source community take well to working on a project that is inspired by Microsoft's vision?
That, say open sourcers close to Mono development, is the million-dollar question.
"That's to be seen," said Raph Levien, a Gnome developer. "It may be that the .Net stuff is so awesome, it's so cool, that a year from now we will see many .Net applications. On the other end of the spectrum everybody could turn up their noses from anybody who's connected to this. Personally, I think there'll be a middle of the road. People will take the good stuff (from .Net) and leave all the rest."
De Icaza, too, said that there might initially be some hesitation on the part of independent developers to join his project, but that's because "when you say .Net to people, often they get confused about what you're talking about. We're not interested in Passport or SQL. We're interested in upgrading the development platform."