As part of this commitment I am pleased to announce today that Microsoft has signed an agreement to acquire Xamarin, a leading platform provider for mobile app development.
In conjunction with Visual Studio, Xamarin provides a rich mobile development offering that enables developers to build mobile apps using C# and deliver fully native mobile app experiences to all major devices – including iOS, Android, and Windows. Xamarin’s approach enables developers to take advantage of the productivity and power of .NET to build mobile apps, and to use 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. Xamarin’s unique solution has fueled amazing growth for more than four years.
Not that unexpected, Xamarin has been playing the Microsoft song for quite a while now. Don’t get me wrong, it’s not really a criticism. I think Mono is a good project and even Stallman thinks that a Free C# implementation is a good idea. I wouldn’t use it, but I like that it exists. Hopefully Microsoft keeps cleaning up their act and Xamarin can grow further. Lots of people I know would be interested in that, least of which to be able to run their .Net applications on a Free platform.
I have used Mono a lot. Like anything, it is not perfect. Overall though my experience was very positive.
Did you miss the news about CoreCLR, Roslyn and all that?
Mono has been around way longer than that.
Ok, I imagined your point referred to current meaning of Mono (as it was using present tense), as opposed to the past.
Not a surprise but this does make me a little sad. I really like Xamarin.
That said, there may be reasons to be excited. For one, Microsoft might actually make a community version of the Xamarin tools that Indie people or hobbyists can actually afford. Xamarin certainly never did that. Also, the Xamarin folk appear from the outside to have positively influenced the Microsoft culture and increased their participation in Open Source. This might amplify that further.
I am very curious to see what happens with Mono. There are many contributors to Mono but the Xamarin guys are the real force behind it. Microsoft is on a tear implementing Open Source versions of their own stuff (like .NET Core). Will they just abandon Mono as Not-invented-Here? Or will it become the Open Source foundation for .NET proper with more and more actual .NET code in it?
Interesting times.
For what it is worth, I have built businesses that depended heavily on Mono on Linux. It was much more than a curiosity to me at one point and it worked really well for us. It has only gotten closer to real .NET since then both by maturing itself and incorporating code that gets Open Sourced. It might surprise people how much Microsoft authored code is in Mono (and therefore in Xamarin products) already.
I think (and I may be wrong, there’s a lot of churn in .NET land right now) that Mono remains as an implementation of the “Full” .NET profile, rather than the “Core” profile. So different API surface areas.
I think Mono should stick around though, if anything as another reference implantation of the CLR.
There was an indie license for approximately £30 a month.
That was still per seat.
I was on the BETA for the iOS API, before Xamarin existed. We literally fell off our metaphorical seats when Miguel screwed us all over and announced the original pricing. This was before Indie. I think it was close to $1000 per seat. We all asked for Indie pricing, but it took them 2 or 3 years to get to something.. and then even that was too expensive for a hobby developer. I might create an app a year for myself, maybe release to an app store. Paying $60 a month just so that I can cover both Android and iOS, when I could use Apple and Google’s tools was not really enticing. I don’t care what language I use, C# has no real pull as I’m not re-using internal corporate libraries… where is my incentive? You’ve got to really *love* C# to make that worthwhils, especially when Java syntax is pretty trivial to move to for Android. Seriously, after Apple release Swift, the writing was on the wall for Xamarin.
I’m sorry, but that is not unusual at all for commercial development, and especially cross-platform and compatibility tools. If you think that’s excessive then you mustn’t get out much. As a company it was the only way they were going to be able to maintain themselves.
If it was not working for you as a ‘hobby’ developer then you needed to rethink what you were actually doing.
You’ve answered your own question. Where Ximian, Novell and then Xamarin found a niche was in enterprise Microsoft environments that wanted to run .Net code but where Linux and Unix was still prevalent. They then moved into mobile development for these particular environments. If you look around at other such commercial tools they are certainly not cheap, and for good reason.
No, not really. You have two positions here… Microsoft on the one hand, telling us that C# and .Net was the future of its platform, that we should all be using it and providing free tools that were able to create commercial software – cross platform software. On the other hand you had Xamerin propping up their company by exploiting the licensing of Mono. I know which side I find most distasteful.
I’m a C# developer, but I’m not defined by my language choice. I can program in Object Pascal, Lua, VB, C/C++, Objective C, probably more. I’m not hung up on the language. But when I was beta testing the product, it really excited me. Then the crapped all over our dreams. This was the point I will continue to make when people try to deify Miguel and Nate. It could have been so different. Their trials continued to suck, their pricing continued to gouge, it was really not a good experience.
I don’t get that paragraph at all. The answer is simple – don’t use it.
What’s ironic is that this kind of nonsense is the thing Miguel used to beat Qt and Trolltech with, and then he had to run a software business that could sustain itself………
Edited 2016-02-28 00:34 UTC
I see two possible rationales behind this move:
1. Boost development of new-stype (“universal”, “metro”, or what is a name of the day?) applications for Windows. Windows support willl be added to Xamarian, and generation of Windows apps will be promoted. WIndows Phone users, rejoice! I am not really sure that will magically help Windows, but at least some iOS and Android apps will show up in Windows Store.
2. Influence (or even kill) Mono. Microsoft may be slightly discomfortable with reduced amount of control over .Net due to Mono’s existance: Microsoft can’t just easily drop support for older APIs and interfaces without potentially loosing users to Mono. FWIW it is uncommon for Microsoft to make significant changes in APIs without maintaining compatibility, so this doesn’t look like a plausible cause, unless something weird is brewing within Microsoft.
Anyway, now Microsoft has control over all .Net implementations again, which is bad news for .Net. That said, Mono was always a failure outside mobile space, so for people not developing “apps” this news doesn’t matter much.
Or maybe the third – Mono is a poorman’s DotNet implementation at the moment. They have purposely limited its use to make money. They require every submission to be MIT licensed, but then they (Xamarin/Novell) re-license the core as dual LGPL and “commercial” to artificially limit use and ensure that they can get a fee for any kind of commercial usage. Xamarin they charges a very high fee for using their libraries on Android, iOS and if you embed the runtime Mac OS X.
What this now does for the DotNet community is make it possible that the 100% free and, to be honest, far more robust Core that Microsoft provides can now be integrated in to the platforms that Xamarin supports, and Microsoft can effectively charge for MSDN and individual use of the IDE, but make the technology “free” for use by developers. That seems pretty good to me.
Exactly. But maybe that will now change.
It’s the service provided to both. Why not openly ceding control of language and IDE evolution to the community? But it’s not in their cerebellum [Someone says it’s not their ADN]. Every movement in that direction -at least at the beginning- would have to be full attention learned.
Good luck with that. Mono is a big project, difficult to maintain as it is. Maintaining a fork and integrating updates from upstream would be a nightmare.
Forking works for small projects and for big money. Neither applies to .Net.
The part of Mono that causes the runtime to be licensed via LGPL 2.0 is really the only part that needs replacing. And AFAIK that is possible using production ready code from Microsoft.
This is not unusual at all for commercial development tools, nor are their fees. What I find terribly ironic is that this was always the stick used to beat Qt by many of the Mono people but it is the only way they have found to be able to maintain Mono.
But it was LGPL. So many projects put in an clause allowing static linking. But no, this wasn’t possible for Mono. Without that clause, they forced everyone to go the commercial route. It was a dick move. It wasn’t like we had an option – they simply “had” us.
But that was just the start.Then they started to try to push in to the Mac OS X market. This is what stopped me ever wanting to use any of their tools or paying them a dime. Because they saw dollar signs and they decided we needed to pay for Mac development as well.
So back in the day, in Monodevelop for the longest time, the developer had the option to either link against the installed Framework, or to embed the runtime in the bundle. No one had ever tried to claim doing such was against the licensing for Mono. Well, Xamarin decided to change the licensing model. Firstly, Monodevelop vanished. Try to find a download now for Mac, you probably will have to look long and hard. They rebranded it as Xamarin Studio and added a whole load of extra things we didn’t especially need for pure Mac dev. Around that time they also decided to support the Mac App store. From that release of Xamarin Studio/Mono onwards I was reliably informed by a representative that we needed to buy a Mac development license to develop Mac code. Even code that used MonoMac. I.e., not using anything that wasn’t in the public domain and free otherwise. I questioned this, and the guy told me repeatedly that this was the case. I questioned his opinion, he was adamant his interpretation was Xamarin’s company line. I finally got him to admit that this only applied to embedding the runtime… but as this was the only reliable way to ensure your app had the right version of Mono installed, it was pretty much the only real option I would use to package my apps. That was it for me really. That I could no longer create an app bundle with an embedded runtime (simplifying distribution) turned me off the product completely. It was an absolute joke.
Bear in mind, I’ve been using Mono for years otherwise. I used it under Nokia’s NTOS on an N800 for example, to develop a twitter client. I had the same client running on Mac, Windows and N800. Same code all using the GTK bindings. It was awesome. It makes me want to weep as to how they then milked the platform. No one asked them to make it a commercial venture – that was their choice. But they made it impossible to compete, so essentially artificially prevented competition. Their native frameworks were enough, making the runtime impossible to use on any platform that require embedding was a complete dick move and totally unnecessary, given the fact their libraries on top of the framework made the framework useful.
Reading the announcement, and actually using the latest VS, this is purely about mobile development. The latest VS comes with a Xamarin trial for Android development (Maybe iOS, too, but you can’t build iOS apps on Windows)
With Windows Phone being a failure in the market, Microsoft has no presence in mobile app development, which is a shame, because their tools rock.
Hopefully they’ll make Xamarin for Android for free with your VS license (So, free for small teams of 5 or fewer, part of the paid license for larger teams). I’d be surprised if they didn’t.
You’re kidding? Microsoft has changed umpteen parts of .Net and its libraries that are incompatible over many years. It just depends on what the MSDN people feel like on any given day of the week. The days of Raymond Chen and compatibility at Microsoft are long gone.
Which ones? I can take code from 1.1 and compile it in 4.0 with no changes. If you mean that the technologies have moved on, then I’d agree. But 1.1 Winforms code without partial classes etc, will compile on 4.0 with zero changes. You can even still reference 1.1 assemblies in a 4.0 app if you really want to, you just need both frameworks installed.
We’ve had ding-dongs on here for years that Icaza and *some* of the Mono people were simply Microsoft apologists. Getting bought out by Microsoft was probably their end-game all along.
Yes, and Linux isn’t even mentioned in their announcement.
Why would they? It’s clear that the primary driver of this purchase is to bolster their cross-platform mobile development efforts – and Android is mentioned.
I am not saying that they should. I just think it is the natural conclusion. But look at how the Mono project started:
(ZDNet. 2001-10-29)
Ximian and Xamarin have very different goals. Xamarin was more about native bindings to APIs on different platforms. (Mac, iOS, and Android).
Mono could be swapped out from under the Xamarin stack tomorrow for CoreCLR and people would be none the wiser.
I just wanted to comment on the journey of de Icaza and his fellows from trying to progress the Linux desktop to working for Microsoft, and completely neglecting Linux.
Just in the spirit of the comment I replied to, as many people in the Linux community back then wondered where this will lead.
It’s been fifteen years, and several companies, sure.
http://tirania.org/blog/archive/2013/Mar-05.html
That is the reasoning, Linux on the desktop has been a mess for years.
Edited 2016-02-25 16:56 UTC
I remember that posting very well. I think it has been posted here in the comments before.
I think the whole development is interesting.
It might have been a change of heart, that the Linux desktop became a mess, … anything. It might also be the natural flow that could’ve been predicted when he started with his love for .Net.
It is just interesting how everything turned out after all.
I liked the part where DeIcaza completely ignored the fact that he was an integral part of the failure of the Linux desktop…
I agree 100% with Miguel. I am a huge Mono fan. I run Linux on all my servers. This comment is being typed on a Mac.
Strongly disagree with that of course. Especially now as desktop apps themselves are dead and dying away. I’m kind of forced into using windows at work, and I’ll admit its not the dumpster fire it was in the 90’s.
Its just easier (for me) to fix huge problems in linux than anything else.
He didn’t do much to help the situation then, did he?
The original rationale for Mono was better Linux development.
That’s hilarious! I know Miguel meant that, but given that no default gnome programs are in mono…
From always known the Icaza ‘afair’. Hopeful open source mind investment not being that high.
So true… I remember a Miguel’s conference here in Buenos Aires like 15 years ago and It was 100% sponsored by Microsoft (It was a little bit shocking for us as members of the Linux User Group… back then Microsoft was 100% evil and totally anti-linux).
In the open source community, a lot of people suspected that Miguel was some kind of Microsoft employee or allied… this acquisition confirms that somehow.
In fact, I think Miguel was a key player in the fight against the adoption of Java as the main language of GNOME Desktop apps. Mono/C# was some kind of troyan horse to split the community up and stop Java adoption.
Sounds vaguely conspiratorial, but, it hasn’t worked out too badly for Microsoft. Mono came in, divided people and muddied the waters and it stopped any eyes being cast on Java for Gnome development. It also diverted attention away from Qt and KDE as well.
Is this English#?
Not Even SimplifiedEnglish#, Tyler
Always enjoy your strong and lovely lines.
but it needed a reinvented MS to fulfill.
Kudos to him, hope the deal is on favorable terms and he’ll have a real impact and bring a lot of fresh blood and OSS spirit to the company.