Wednesday, February 24, 2016

MS Buys Xamarin - Analysis # 248

As you probably heard Microsoft announced that they are acquiring Xamarin. I see there are a ton of these posts asking the fundamental question, what does this mean? For myself I'm thinking through a bunch of issues.

Will the pricing model for licensing change?
I would guess almost certainly. Microsoft generally handles licensing for development tools through Visual Studio editions and MSDN licensing. Already the "free" version of the Xamarin platform is available as part of the VS install. I expect this will now become the full version that is baked into Visual Studio. What level of Visual Studio will be required for Xamarin? I'm actually not sure. However I expect MS will want most developers to be able to use the Xamairn tools so they will likely set the bar pretty low.

What about Xamarin Studio?
If  you love Xamarin Studio, I'm not hopeful, at least in the long run. Microsoft already has Visual Studio and Visual Studio Code. I would expect them to double down on these IDEs and in that world Xamarin Studio largely becomes redundant. In the short term I expect it will be around for a bit.  What this means is that development will done on a PC with a remote build server unless and if Microsoft builds the Xamarin technology into Visual Studio Code to run on OSX. This may or may not happen, it is always possible that if it is part of the roadmap that Xamarin Studio will be kept around until then. But at some point I guess that it will almost certainly be retired.

What about Mono?
Mono is open source, will remain so, and so isn't overly impacted by this. The new MS loves open source anyway.

Xamarin University?
Microsoft does not have a training program or certification program as in depth and extensive as Xamarin University and its associated certification. I'm not sure this is an area where Microsoft will invest in changing how they do things. The Xamarin University program will likely be rolled into Microsoft's current certification scheme.

How about Xamarin's Partner Program?
Microsoft, I hate to say this but Xamarin's partner program has your's beat, hands down. I am not hopeful that Microsoft will change its partner program to meet Xamarin's but I do at least have some small hope that they will examine it closely for things that really work there. That may just be wishful thinking on my part.

What is the future of Xamarin Forms?
I expect it to be pulled in more closely to the UWP structure so it can be used without extensively altering UWP development. For example the XAML may change to meet the UWP structure. Having said that the match will not be exact. Part of the reason why the UWP structure works is because MS is in control of the UI components and sits on top of a unified OS. This is not true for iOS and Android. I expect some changes here, but the concepts won't (and likely can't) be completely abandoned. Jason Smith's work is still relevant.

How about their relationship with Apple?
There will be some degradation in the relationship because MS will be seen as less of a neutral party than Xamarin is.  Having said that, the relationship between Apple and Microsoft has fundamentally changed and improved over the past year or two. This will likely continue.

Can we still expect day one support for API changes?
As I understand how Xamarin wraps the iOS APIs it is largely automated so in cases where there will be no fundamental underlying change in the ability to get day one support for most XCode version and API changes. However, more fundamental changes like moving from 32-to-64 bit or the Apple Watch structure may require a closer relationship. I suspect Microsoft will try and continue to partner with Apple across a wide variety of initiatives and keep improving the relationship. Let's be honest here, Apple and Android have the phone space and Microsoft isn't a viable competitor here. Tablets are a different story but one where the advantages of cooperation for both firms, given the current conditions, outweigh the desire to freeze each other out.

How about product stability?
This is one the huge pluses that I see. Xamarin was a smaller company that was very ambitious in the breadth of their offerings and what they are trying to do. The stability of the products from release to release is, well, not always where it should be. I've stated this before, Xamarin has a lot to learn in really getting a fully stable product to market and they are solving an extremely complex problem. I suspect that the Microsoft control over process and quality assurance will only have a long term positive impact on the product. Having said that, it may take a while to play out.

What about the Android Player?
Microsoft has their own player that sits on top of Hyper-V, Microsoft's virtualization technology. The real advantage of the Xamarin Android Player is that it works with Oracle's Virtualbox and can run on a Mac. With recent improvements in Google's version of the Android player I'm not sure if they will need to keep the increasingly redundant Xamarin Android player. One of them will likely go and it probably won't be the one that runs on Hyper-V.

For that matter Xamarin Insights?
Microsoft has their own Insight's product. I expect the Xamarin version to be rolled into the Microsoft one, using the Microsoft back end and pricing schemes.

Test Cloud?
This type of cloud service is right up Microsoft's alley. Perhaps rebranded as part of Azure, I think good things will happen here if you use this product. Also this will likely continue to use more standard testing formats.

Profiler?
This tool is very specific to the mobile platforms and Microsoft will likely (hopefully) complete it.

The upshot of all this? I believe it will be a net positive impact. There are two major benefits I see; first since Microsoft gets its revenue in other ways the licensing scheme will change making the Xamarin platform a bigger player because it will lower the bar to learning the platform. The second has to do with the size of Microsoft and maturity of their development processes, the products will only get stronger and more stable.

I look forward to seeing how this plays out.

7 comments:

  1. First, thanks for the article.

    You mentioned the following, which I think is the real gist:
    "more fundamental changes like moving from 32-to-64 bit or the Apple Watch structure may require a closer relationship."
    "Let's be honest here, Apple and Android have the phone space and Microsoft isn't a viable competitor here"

    I agree with the logical consequence, but it's a worrying one.
    It's worrying to conclude that Xamarin under MS is still going to support Apple's changes (challenging ones) because Microsoft is not a real competitor to Apple in mobile space.
    Are we sure Microsoft is not going to try to really change his presence on the mobile space?

    The reality is Microsoft can pull the plug on different Xamarin products.
    Apple and Xamarin were not competitors by any means, but now Xamarin is Microsoft, and while Apple doesn't feel any threats coming from Microsoft, this doesn't mean it can't change in the future.

    Technology is constantly changing, who knows what kind of device we'll see, who knows how competition will change.

    On the long run for developers, I don't think Xamarin acquisition by Microsoft is a good thing.

    ReplyDelete
    Replies
    1. I won't disagree with you that it is a worry, I've made the same observation. Having said that, I'm not over concerned as things stand today. Microsoft would certainly love for Windows 10 phones to be a viable competitor and in such a case the situation could fundamentally change. Until that happens, Microsoft is going to be most concerned with how they don't get locked out of the iOS and Android platforms. Given the current situation I believe this concern shouldn't be discarded but it should also be tempered with the market realities that would have to occur for it to come to fruition.

      Delete
  2. The main concern is with a new technology which will become popular.

    Imagine a really innovative device or technology is created by some company, it's using cloud heavily but it's not the MS cloud. And imagine this device becoming very popular.
    Which is not a highly unlikely scenario.

    I don't think Xamarin now part of Microsoft will support this new technology.

    ReplyDelete
    Replies
    1. It could be, but I'd be surprised if they did that looking at their current stacks and how the Xamarin platform works.

      For example they are not doing anything to lock out AWS integration into Visual Studio, and that's a pretty direct competitor.

      Also if you look at how the Xamarin Platform works, if there is a native library to get at some service even if Microsoft doesn't wrap it someone in the community could. Microsoft has never had a history of limiting those types of integrations in their development tools. So I suppose it could happen but I can't think of a case where Microsoft has actively done something like that in their developer toolset. I'd argue, they would destroy the viability of the toolset if they did and they would quite frankly know that.

      But hey, that's my opinion and that and $10 is you need to get a cup of coffee at Starbucks.

      Delete
  3. How would they lock out AWS integration into Visual Studio? That would be very strange, since the AWS toolkit is done by Amazon and it's built on top of the free plugin system available in Visual Studio.
    Not sure if that's a good example.

    It's not about limiting or lockout.
    It's about Xamarin still be dedicated on offering great cross platform solution for whatever cool new technology or device is out there: mobile, tablet, health tracking devices, etc.

    With Xamarin now part of Microsoft, whatever comes next in terms of cross platform development support is up to Microsoft.


    ReplyDelete
  4. By the way, thanks for the conversation, for me at least it's nice to share some thoughts.

    ReplyDelete
    Replies
    1. Absolutely, best way for me to figure things out is to talk and see how other people are viewing the event.

      It also makes me re-read my post and see all the typos I made...

      Delete