When I was a kid, I never understood the idiom "have your cake and eat it too." With the typical literalness of a child, the phrase made absolutely no sense, since if I (a) have cake then you could darn well bet that I (b) was going to eat it.
Of course, the whole point of the idiom is lost on kids: once you eat said cake, it's gone and you don't have it anymore. For a younger version of me, eating the cake just meant it was time to find more cake.
But after reading Miguel de Icaza's blog this morning about a partnership between Novell and Mono startup Xamarin, I think perhaps Attachmate (neé Novell) may have figured out a way to actually have their Mono cake and eat it, too.
When de Icaza quietly departed Attachmate to launch Xamarin in May, something about the company's founding struck me as a little odd. It was that one adjective in the previous sentence: "quietly." With all respect to de Icaza, he's not exactly known for being subdued and genteel when he's ticked off about something, and the fact that he left Attachmate without any ruckus meant one of two things: he was under some sort of non-disclosure agreement or he was still planning on working with his former employer someday.
Today's announcement confirms that someday is now here.
Under the terms of the new partnership, Xamarin gets "a perpetual license to all the intellectual property of Mono, MonoTouch, Mono for Android, Mono for Visual Studio and will continue updating and selling those products," de Icaza wrote. That alone is a pretty good deal for Xamarin, since it formally codifies what would have to happen if the new startup wanted to have a chance to build a business on Attachmate's Mono intellectual property. Even better for Xamarin, the new company will provide support for all existing customers of Mono as well as any existing SUSE Enterprise Linux customers.
With all of this, and the fact that Xamarin will be given stewardship of the open source Mono community, Xamarin has basically been handed the keys to the Mono mansion, becoming the sole caretaker while Attachmate reaps the benefit of what I am sure are a number of licensing deals.
It's a pretty good move on the part of Attachmate, since they get to streamline their SUSE business division down to all Linux, all the time, yet still get a piece of whatever action Xamarin can generate as they support and innovate with Mono.
Mono is a technology with a lot of controversy in the open source community, since it's an open-source implementation of Microsoft's .NET programming language. Opponents of Mono have long (and at times shrilly) decried use of the language within the Linux ecosystem as a potential patent trap for free and open source software (FLOSS) developers. I have been a little wary of Mono myself, since Microsoft's past history and current litigious actions (see: nearly every Android lawsuit to date) have demonstrated the software giant is more than willing to shut down open source whenever the mood strikes them.
That may yet be the case, but this recent reshuffling of Mono within and eventually without Attachmate has me wondering if Microsoft will ever take legal action.
If anything, the fact that Mono was able to stay alive despite the fact that then-Novell partnered with Microsoft in 2006, despite Microsoft's involvement in the Attachmate deal when it bought former Novell intellectual property as part of a consortium of patent buyers, and all of the other chances Microsoft had to flex its business or litigious muscles, makes me believe Mono won't ever be the target of Microsoft's wrath.
Like it or not, Microsoft needs Mono, perhaps more than it will ever admit. Mono is a way to keep the .NET ecosystem alive on the Linux platform, for one thing. Even though it is loath to admit it, Microsoft has to work with Linux, because (thanks to IBM, Oracle, and other corporate backers) Linux has too big of a defensive patent portfolio to sue out of existence.
Robbed of their favorite way to knock off the competition (again, see: nearly every Android lawsuit to date), Microsoft has had to grudgingly admit that they have to keep interoperability going with Linux on every level it can. This weekend my colleague Steven Vaughan-Nichols nicely detailed how and why Microsoft participates at the kernel and virtualization levels.
The same reasons are why Microsoft allows, indeed encourages, Mono development, because it establishes interoperability at the application level.
In June I wrote that if .NET does indeed get shoved into mobile space, Mono would have to inevitably follow, perhaps departing from the traditional Linux application space. With today's Attachmate/Xamarin partnership, it looks like I was a bit off, and that Mono will remain with Linux for some time to come.
My original theorem still remains: depending on what Microsoft announces at their upcoming BUILD conference in September, the path for .NET may inexorably be set towards mobile instead of desktop development. I would presume Mono and its community would have to follow along.
This still means Microsoft will likely keep their hands off Mono and Mono developers. Even with a shift to mobile space, Microsoft needs to keep the .NET ecosystem as vibrant as they can, and that means allowing some diversity in the form of an open source implementation.