Microsoft has divided opinion in the open-source world for years with its love/mostly hate relationship with open source. While the company has seemingly warmed up to open source in the past two years, its continued patent club has hung over projects like Linux. On Monday Microsoft sheathed the club for the open-source Mono project, but arguably needs to go much further to justify celebrations.
Mono was open source, in other words, but only usable for a select class of developer.
It therefore surprised some when Canonical, the company behind the Ubuntu Linux distribution and an ardent opponent of software patents, decided to include Mono in its standard distribution. The company publicly defended its decision and, in my opinion, was right to do so. It's simply a matter of pragmatism, as John Mark Walker points out because "if we ditched all free software for possible patent violations, we'd have nothing left."
Now Microsoft has ostensibly made everything easier for Ubuntu and the rest of the Mono-using world, by pledging not to assert its patents against Mono developers, distributors, and users (i.e., those that implement C# and CLI, ECMA specifications 334 and 335, as Mono does).
While Mon's chief developer Miguel de Icaza celebrated Microsoft's decision ("I am overflowing with joy right now"), Dana Blankenhorn asks if Microsoft's Mono moment will end up fracturing the open-source movement (or, at least, the Free Software Foundation and Ubuntu). Meanwhile, Sean Michael Kerner queries whether Mono will benefit from Microsoft's promise not to be Microsoft and threaten the world with patent-infringement suits.
Ultimately, however, the real question is, "Who cares?" As IBM's Bob Sutor, vice president of Linux and Open Source, suggests, Mono is small change compared to Linux:
With Microsoft making promises about Mono, they should pledge that they will not assert their necessary patents against the Linux kernel.
Bingo. Mono is small change. Linux is big money. If Microsoft can overcome its allergic reaction to Linux, we might actually be making progress.
Microsoft's Mono decision is an example of Microsoft discovering it needn't squash the small child it has already invited to play in its sandbox. Extending its "Community Promise" to Linux would demonstrate that the company is committed to joining the 21st Century and competing on the basis of its technical merits against Linux, rather than its patent portfolio.
The U.S. patent system being as messy as it is, it's certain that Linux violates Microsoft patents...just as it's certain Microsoft violates Linux-related patents held by IBM and other Linux proponents. It's time to call a cease-fire and get back to delivering value, not intellectual property promises and threats, to customers.
Update 9:17 a.m. PDT: I inadvertently conflated Microsoft's Community Promise to extending to Mono, rather than the ECMA standards 334 and 335.
Carlo Daffara, an open-source consultant, rightly notes that Microsoft's patent promise is not directly on Mono, but rather on these ECMA standards, which leaves "most of Mono...encumbered as before (WinForms, ADO.NET, ...)."
Mono founder Miguel de Icaza recognizes this and plans to deal with it:
Astute readers will point out that Mono contains much more than the ECMA standards, and they will be correct. In the next few months we will be working towards splitting the jumbo Mono source code that includes ECMA + A lot more into two separate source code distributions. One will be ECMA, the other will contain our implementation of ASP.NET, ADO.NET, Winforms and others.
It's a useful distinction, but doesn't detract from the original premise (if anything, it amplifies it): Microsoft has taken baby steps toward competing with open-source projects like Mono and Linux on technical merit, but it needs to do far more. Granting its "Promise" to Linux would be a big step in the right direction.
Follow me on Twitter @mjasay.