Microsoft To Acquire Xamarin (phoronix.com)
New submitter androlinuz writes: 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.
What? No. Xamarin allows you to develop .Net apps for iOS and Android using Mono (Android) or a rickety cross-compilation toolchain (iOS). These days you use something very similar to the Windows Mobile API (including XAML) to target iOS, Android and WinMo/Metro. It's pretty nifty; I work on a Xamarin-based app and about 95% of the code is shared while the app looks and feels 100% native on all platforms.
I can see Xamarin as something Microsoft would want - now they supply one of the most popular APIs for cross-platform app development.
USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
It was overdue. Oddly, I think it was Xamarin that delayed this acquisition. I think MS would have been happy to pick them up two years ago. For all the flack Miguel de Icaza gets, he is a big open source supporter, and I bet he was concerned with how that would work being at MS and all. But, when .Net core happened, the writing was on the wall, and now they can just get .Net core to be what it needs to be.
Make no mistake, this is a play to displace some existing players and to encourage adoption of hosting on Azure and using Azure services. It's a good story for a lot of companies. You can use one set of skills (C#/.Net) to address development from end to end and you get pretty streamlined hosting (via Azure). Compared to having to assemble all the pieces from front to back, plenty of companies will take the ecosystem lock in.
I've been doing it as well.
To be fair, I come from a really long history of bringing multi-million line projects to up to 80 different platforms (everything from Symbian to Mac to Qnx to Nintendo Wii) and from the beginning of the project focused 100% on portability to begin with... I chose C# because C is for OS Kernels (write those too) and C# is for apps. They're the two universal languages in the sense that they are the two languages who can access APIs on any platform.
I found that with good planning, I have been able to make a program which runs on Windows Store, Windows Desktop, Mac OS X, iPad and Android using all native UI components as well as pixel perfect print support with less effort than I ever put into with Qt or my own homegrown. As a result, I can't really imagine ever writing in anything else again. I let me focus on learning platform APIs and not screwing around with things like SWIG or crazy assed Android C++ adapters.
Oh... let's not forget that by managing my data structures intelligently (my document format is almost as complex as Microsoft Word's), I was able to outperform manually management memory schemas every time and by hooking the garbage collector I was able to implement a memory defragmentor which I've done in C++ in the past and required so much template hell that the code became unmaintainable. By defragging the memory through the GC, I was able to take advantage of language level relocation and as a result, the code is readable and manageable... oh... and quite a bit more performance efficient since it generally runs as a FSM during idle cycles.
C# allowed me through a single language to quickly implement about half a million lines of code and focus more on productivity and less on dicking around with things like SWIFT compiler errors and warnings which look like "Something is wrong an caused a parser error within a 100 lines of line 241 that makes this line think it's a chicken.. please call again later when you comment out 90% of your file and restructure you code to manually find the actual error".
C# compiler errors suck too, but at least the Visual Studio GUI makes it pretty easy to drill down to root cause.
I'll say this much, they started as a development tool company, they always nailed the development tool thing and now with LLVM support offering C standard compliance directly within Visual Studio, I think Microsoft has really nailed it.
Now if they throw enough money at compiling for Mac and iPhone without a Mac that would be awesome. Programming in XCode is so painfully slow it's unbareable. If you made the mistake of buying a Mac Pro and are wondering why it's so damn slow, install Windows 10 on it and use Visual Studio instead and run OS X in a virtual machine to compile against. It's a HUGE improvement.
Last thing to fix I think is getting remote app support for iPhone simulator. Then make it so if I press F5, I get just that Window. I'm using iRapp at the moment which isn't awful, but it's a bit intrusive.