BETA
This is a BETA experience. You may opt-out by clicking here

More From Forbes

Edit Story

Microsoft Is Now 'Open By Default', Says Xamarin Founder Miguel de Icaza

Following
This article is more than 7 years old.

What’s it like to produce an open source product designed to extend Microsoft’s .NET software framework outside of Windows onto other platforms, only to one day find out that Microsoft had embraced open source and wanted to buy your firm and its programming project? Mexico born programmer Miguel de Icaza appears to be quite happy about the way things have gone.

After starting the Xamarin, Mono and GNOME projects to specifically create cross-platform interoperability, de Icaza can now list himself as a card carrying Redmond employee after his firm was acquired by Microsoft in February of 2016.

As reported previously on Forbes, software developers can write what would be a Windows application, using Microsoft’s .NET programing framework and languages… and then use Xamarin technology to reuse that code across multiple platforms – meaning, in effect and actuality that they can turn the Windows application into a ‘native’ application for iPhones, iPads and Android devices.

In line with many of its other major strategic moves towards so-called ‘open extensibility’, Microsoft has made the Xamarin Software Development Kit (SDK) open source and now bundles it as a free ‘tool’ within Microsoft Visual Studio's Integrated Development Environment (IDE), which in itself is a whole toolkit of [coding] tools for creating software.

The longest job application, ever

“I started an open source company which worked to create what eventually became a closed project with Xamarin… only to then be acquired and taken open source by a traditionally closed source company,” said de Icaza. Joking at last year’s Microsoft Build conference, de Icaza described the experience as, “The longest job application process I have ever been through!”

Speaking to de Icaza in person, he explained that his team started the Xamarin project to bring .NET to different platforms, but it was a very different Microsoft in those days.

Microsoft is now open by default

“There was no story at Microsoft for other platforms back in the day. But the world is full of heterogeneous connections now and I think Scott Guthrie [now Microsoft’s lead on Azure cloud platform] helped drive a lot of the openness. Microsoft is now open by default and you actually have to make a case on a team/peer review level if you feel something needs to be closed,” said de Icaza.

Of course Microsoft bought Xamarin to help bolster its mobile business (a key aspect and strength of Xamarin) as well as Microsoft’s ‘Universal Windows Platform’ (UWP) technology ideals, where one application delivers the same users experience across different devices. But with Xamarin, it’s not just across different devices; it’s also across different platforms.

Detailing the whole ‘welcome to the family’ process of getting into Microsoft, de Icaza says that it has been a one-brick-at-a-time process because the teams realized they could not do everything at once.

App development now ‘front end’, cloud at rear

“When you look at how our software developers are building mobile applications, the apps themselves (and the tasks required to build them) have moved to being more front end, rather than back end,” explained de Icaza. “At the back end we find infrastructure layers that look after areas like storage protocols and so on. Every mobile app now has some kind of identity system and developers used to have to build that part on their own (to deal with permissions in terms of different code objects and so on)… and all that had to be reinvented over and over in each case. Today these things are handled by the Azure cloud platform and its cognitive services.”

If you think about the mobile applications that reside on our phones, not everyone is going to have the same version of an app at any one time. If you have multiple versions of your app ‘out in the wild’ on people’s smartphones and mobile devices, you can not always get all users to all update all of their apps at any one time.

But applications and their Application Programming Interfaces (APIs) are augmented and updated all the time, so incompatibilities could result. For this reason, the more functions we can put at the back end on the cloud layer the better if we want to achieve the open extensibility dream that is.

We essentially split .NET in two

Outside of Microsoft and before the acquisition, de Icaza’s projects saw the creation of the Xamarin and the Mono project in environments that can be descried as Microsoft .NET compatible to allow software developers to run .NET applications in cross-platform scenarios. So how did they do that?

“We essentially split .NET in two,” explains de Icaza. “We took the pieces that were ‘platform neutral’ (stuff that connects with servers etc.) and we added add-ons for iOS and other platforms.”

By extracting the ‘common factor’ elements (the ones that would work on any platform) out of .NET’s core functionality, the Mono team were able to then provide the platform-specific augmentations needed to work on other device platforms. Small wonder that the new ‘open Microsoft’ sought to acquire the firm.

Life inside Microsoft (so far) appears to be sweet for de Icaza and team. It took his business four years to reach its first 1-million developers (associated and/or signed up to the project) -- in the last six months Xamarin has added a further half a million.

“We did reach a lot of different developer demographics as a startup -- and we were a well funded startup at that. But startups always come with a certain degree of risk, so there were many enterprise developer types that we could never reach. Post acquisition, that challenge just went away,” said de Icaza.

Microsoft, usually quite friendly, honest

Microsoft actually has a longstanding partnership with Xamarin and had (prior to the acquisition) jointly built Xamarin integration into Visual Studio, Microsoft Azure, Office 365 and the Enterprise Mobility Suite. In addition, de Icaza says that every time his team would contact the .NET guys and girls to discuss the extensions they were making (even back in proprietary Microsoft days), that the team at Redmond were always good to work with.

“Xamarin is being adopted internally at Microsoft,” said de Icaza. “So we are now discussing how we can add more APIs and more capabilities as Microsoft is now passionate about accessibility to our forms and tools. By that I do mean accessibility in terms of access to software code and accessibility in terms impairment accessibilities for developers and end users alike. This latter being something that is very hard to focus on as a startup.”

How does Microsoft feel so far? Well, we beneath the corporate gloss it’s hard to tell. We do know that prior to climbing the tree with Xamarin and its Mono developer team (both brand names are references to monkeys), Microsoft did not have a mobile testing solution for third party software. Microsoft was also attracted by Xamarin’s cross-platform application analytics functionalities.

Speaking to explain what else Xamarin gets from the Microsoft Azure cloud back end, de Icaza points to areas including identity, document management and storage, cognitive services from Microsoft (so-called Scientist-as-a-Service) as well as Azure mobile services which include mechanical services to allow applications to still work offline when disconnected from web and mobile networks.

Looking back, some things sound silly

“We had a natural ceiling and that is now gone,” said de Icaza. “If you look at some of the judgements we made when computing was so much more static than it is today, they almost sound a little silly. Can you imagine how restrictive it can be if a new feature or function is developed but that that function should only exist inside the language (or other computing environment) where it was created?”

It is surely interesting to hear about the real problems being (reportedly, in this case at least) solved for programmers when they get access to the complete Azure stack i.e. too many times we simply hear Microsoft giving us the dumbed down big picture 'cloud enablement' message.

Ultimately, de Icaza’s vision – and Microsoft’s – is one of developers having an easier time extending the theoretically infinite power of the cloud computing model to extend software to any popular platform – iOS, Android and Windows. What is more perhaps, Microsoft and the Microsoft Xamarin team is inviting the open community to participate.

So what we see here at the top level is real back end cloud mechanics helping front end software application development that is designed for cross-platform interoperability and open extensibility.

Surely that’s not too much to ask is it? Well, it used to be didn’t it?

 

Follow me on Twitter or LinkedIn