It is a move that many in the software development realm saw coming, but whose importance outside that realm isn’t instantly obvious.
But yesterday, Microsoft announced its pending acquisition of San Francisco-based Xamarin, a company that helps developers use Microsoft’s programming language to create mobile applications.
The company was founded by a group of open source developers who have already been well supported by Microsoft, and whose premier product is an adaptation of Microsoft’s .NET Framework for other operating system platforms, including Mac OS and iOS as well as Android.
It’s not that Xamarin and Microsoft weren’t working closely together anyway. But an outright acquisition could put .NET technologies in a stronger competitive position against PHP, Java, and the rising star of back-office automation, Node.js.
'Fully Native Experiences'
“Xamarin’s approach enables developers to take advantage of the productivity and power of .NET to build mobile apps,” Microsoft Executive Vice President Scott Guthrie wrote yesterday, “and to use (Microsoft’s programming language) C# to write to the full set of native APIs and mobile capabilities provided by each device platform. This enables developers to easily share common app code across their iOS, Android and Windows apps while still delivering fully native experiences for each of the platforms.”
The executive summary for this move reads as follows: A .NET application written for iOS or Android, on a Mac, and hosted on Linux servers, may have not just the blessing but the backing of Microsoft.
“Speculation of this acquisition have been going on for years,” said IDC Program Director for Software Development Research Al Hilwa, in a note to CMSWire, “but the current market climate, and Microsoft’s ever more intense pivot under Nadella towards multi-platform support and open source, are key drivers as to why now.”
The .NET Landscape, All of a Sudden
Many of the world’s leading CMS platforms are written in PHP, including Drupal, Joomla and Mambo, and may thus be open source themselves. In data centers and in hybrid clouds, workloads are becoming containerized for easier deployment (especially using Docker), and PHP is very easily containerized.
So major classes of business applications — including CMS — written for PHP, are very easily portable. That can be an advantage for organizations deploying applications in orchestrated, hybrid clouds.
Meanwhile, feature competitive CMS platforms such as Umbraco, which long ago opted for the ASP.NET platform, have fought hard against its many constraints. Windows Server is not (yet) containerized, so hosting an ASP.NET application in the cloud means spinning up first-generation, Windows-based virtual machines — which are not nearly as easy to scale up with traffic demands.
It was all the way back in December 2014 that developers began in earnest to build an Umbraco CMS that runs on a Mac, first trying and failing to utilize the Xamarin developers’ Mono framework.
Only last month have ASP.NET version 5, and the .NET Execution Environment (DNX) upon which it depends, become supported by a test plug-in for the Xamarin Studio development environment.
On the client side of the landscape, the viability of the “Universal” app framework for Windows 10 bodes about as well for Microsoft as anyone with under 5 percent of the vote in the South Carolina primary.
Microsoft needs a software platform for the devices that people actually use today — and those aren’t Windows phones. It created .NET, but Xamarin has done more to make inroads for .NET on other devices that Microsoft ever has.
In fact, some years ago, Microsoft actively campaigned against it.
Mono’s Long, Hard Slog
Of the many hallmarks for the quality of products bearing the Microsoft logo, cross-platform portability has rarely been one of them. Xamarin is comprised of developers who eventually got Microsoft’s blessing (though not right away) for building an open source runtime that could run applications written in Microsoft’s C#, F#, Visual Basic, and other languages, but on Linux and Mac OS platforms.
Whatever cross-platform ability .NET has ever had, was created by Nat Friedman (currently Xamarin CEO), Miguel de Icaza (currently Xamarin CTO), and a wealth of talent who believed they could succeed when some vocal members of both the open source world and the Windows world were literally willing them to fail.
Indeed, six years ago when de Icaza stated Microsoft wasn’t doing itself any favors by continuing to impose restrictive licensing policies and threats of patent infringement on its .NET technologies, rumors that he had actually stated something more condemnatory, followed by revelations that he had not done so, sparked a new and even wilder wave of conspiracy theories about whether someone was manipulating the news at the time.
As de Icaza clarified in March 2010, his original statement included, “Microsoft has shot the .NET ecosystem in the foot because of the constant threat of patent infringement that they have cast on the ecosystem.” He went on to cite then-CEO Steve Ballmer as the source of those threats.
This cloud of conspiracy arose during the time of Microsoft’s and Novell’s controversial patent cross-covenant deal. Novell had been an early financial backer of Mono, the precursor of Xamarin.
For a few years, the lingering cloud was enough to drive many developers away from .NET altogether, to the detriment of the Mono project certainly, but especially of Microsoft. To its credit, the company recognized this; and in many ways, the slow reversal of its threatening stance towards the very idea of cross-platform development, began with its acceptance of Mono, and later Xamarin, as a force in its own right.
As the cloud of false conspiracy lifted, the Mono platform came out of seemingly nowhere to become the foundation for the wildly successful Unity gaming engine. Today, Unity is believed to be the platform of choice for about half of commercial game developers, having kicked Adobe Flash to the curb.
Xamarin has made inroads with entire classes of server applications and functionality that Microsoft, for all its marketing muscle, has not been able to crack.
Acceptance at Last?
So for those who already believe Xamarin could still produce a competitive framework for other classes of applications (the ones that don’t swing maces or lightsabers), is the news of Microsoft’s acquisition of the firm actually good?
“Xamarin has built a surprisingly strong business around the.NET ecosystem of developers, giving them the opportunity to build mobile apps on iOS and Android,” stated IDC’s Hilwa. “Most of the Xamarin developer ecosystem continue to support and develop Windows apps and systems, often with the Microsoft-driven C# programming language, so this is generally a net positive move for them.”
I asked IDC’s Hilwa whether more developers will treat .NET as a legitimate, cross-platform, and somewhat-open-source contender now against Java, PHP, and Node.js on the back end, and iOS and Android on the front end. Specifically, does .NET gain or lose legitimacy?
“I think Microsoft is in a much better position now to drive open source development, especially around its technologies, then it was a couple of years ago,” he responded.
“From a credibility perspective, it is a night and day difference now that Microsoft has open-sourced so many of its core developer technologies like Roslyn [its open-source compiler], .NET Core, VS Code, Chakra, etc. There may always be people who would see conspiracy in everything, but the reality is that open source today is mainstream, and often table stakes for technologies that rely on developer adoption to reach business success.”