My first BackDraft column for this magazine (back when it was named asp.netPRO), titled "Peace Between Platforms," documented the efforts of Miguel de Icaza to create a cross-platform .NET implementation named Mono based on the Common Language Specification (CLS) that Microsoft had recently published as a standard. Miguel was gracious enough to answer my interview questions via email, and I was impressed by his vision, clarity of thought and leadership. He was also very convincing. I was a die-hard Microsoft platform advocate and he practically had me ready to jump in and help out (despite my complete and utter lack of Linux/UNIX programming skills). Of course, I was distracted by the next shiny object that came along, so I never got very deep.

Miguel wasn't distracted, though. He assembled a fantastically talented team, and the project was eventually adopted by Novell, who hired many of the Mono team members as part of its acquisition of de Icaza's company, Ximian. Over the years, the Mono project has been able to keep within about 18 months of Microsoft's .NET progress; a staggering achievement given the size difference of the teams involved. Of course, the platforms didn't remain completely on the same path. Some features didn't make sense to port to cross-platform, while Mono went in some other directions where it made sense to do so. The .NET core remained fairly true to its roots, though.

Although Novell was a well-funded patron of the Mono project, its goals as an infrastructure company really didn't fall in line with where Mono wanted to head as a platform. Most of the Mono project remained open source, but to begin paying for itself, the Mono team at Novell began monetizing its foray into mobile. This is actually a quite natural path in the open source space where companies make money by providing added value on top of an open source platform or technology. The Mono team at Novell released a tool named MonoTouch to build applications on Apple's iOS platform. MonoTouch enabled .NET developers to more easily make applications that could be distributed through Apple's App Store.

My mobile marketing company was just preparing to build multiple native-platform versions of a mobile application to support our customers, and MonoTouch fit the bill perfectly. After all, we are Microsoft developers to the core, but we couldn't afford to ignore the large market of iOS device users, either. Nobody can. Our plan was to hit the platforms in the order of app download popularity (e.g., iOS, Android, Windows Phone). BlackBerry was kind of an afterthought, if we had time. It took us just over a month to build and release the iOS version of our app using MonoTouch, and we were just about to begin using the beta version of MonoDroid to build the Android version when we hit a big roadblock: Novell was acquired by Attachmate, who subsequently showed the entire Mono team the exit doors.

Nobody on the Mono team lost much sleep over their job loss, as it took very little time for them to re-congeal into a new entity named Xamarin. By the time you read this column, Xamarin should be comfortably funded by several different sources, including none other than Miguel de Icaza himself. Since the Mono implementation of the .NET Framework was open source, that development can continue on in a business-as-usual manner. However, since MonoTouch and MonoDroid were not open source and were used to generate revenue for Novell, that code is now the intellectual property of Attachmate.

I highly doubt that Attachmate will do anything useful with MonoTouch or MonoDroid, given their "downsizing" of the Mono development team. Attachmate may decide to do the honorable thing and release the code to the open source community. The Xamarin team can't afford to wait for that day, though, so for now they are starting again from scratch building a new mobile toolset on top of the open source MonoDevelop development environment. Naturally, it's not really from scratch, as the team is still together. It's kind of like asking Mark Twain to rewrite Huckleberry Finn from memory. It won't be exactly the same, but it'll be pretty darn close. My guess is that it'll be even better, since they will have the opportunity to apply lessons learned to build aspects of the system that it would not have made sense to refactor in the original MonoTouch and MonoDroid tools.

If anyone from Attachmate is reading this, please support the open source community and release the MonoTouch and MonoDroid source code to Xamarin. It will be worth many karma points and will help the Xamarin team avoid repeating mundane programming tasks that delay it from getting back to where it was before.

I know for a fact that folks from Microsoft are reading this. If you haven't already done so, get out your checkbook and be very nice to the good folks at Xamarin. Undoubtedly, you want developers writing great apps for Windows Phone, but iOS and Android comprise too big of an opportunity for most businesses to pass up. Doesn't it make sense to keep the brightest developers writing .NET code across all platforms? Of course you agree, or you wouldn't have released the CLS as a standard so many years ago.


Jonathan Goodyear is president of ASPSOFT, Microsoft regional director for Florida, an ASP.NET MVP, and a contributing editor for DevProConnections.