If Microsoft does proceed, it is a sign that they want their tooling to extend to their competitors' mobile platforms, something that has got to be a difficult business decision in light of pushing their own mobile platform.
If Microsoft does proceed, it is a sign that they want their tooling to extend to their competitors' mobile platforms, something that has got to be a difficult business decision in light of pushing their own mobile platform.
I'm not sure it would have been that difficult.
Post-acquisition: instead of developing native with Objective-C and targeting only iOS or Java and targeting Android you can develop with C# and have a "native" experience on iOS/Android. The kicker is now Windows Phone/Windows Store is much more accessible to you [1].
It's lowering the barriers to mobile developers considering Windows.
[1] If you go hard with the code sharing that MvvmCross facilitates [2] [3] you don't have to do that much more to support another platform than developing the native views and binding them to your view models.
[2] Anecdote 1 http://stackoverflow.com/questions/10224376/mvvmcross-experi... "In fact 90% of the code is shared and easily testable."
[3] Anecdote 2 I've used MvvmCross myself and I'd say that I've gotten to 70% code shared across multiple platforms.
Such as?
I presume Qt apps use Qt's built-in UI rendering, with QML for any UI-logic. Slightly different to MVVM in Mono where you recreate native UI's on each platform, but also hopefully means you only need to create the UI once?
Develop in Visual Studio using Xamarin for iOS and Android while writing in C#, now the incremental cost to also developing for WinPhone is much, much lower. And by owning these tools, as well as the WinPhone platform, Microsoft can make that increment almost arbitrarily small.
You are counting the cost delta between writing C# for iOS and Android, something that is not that common, and also writing for Windows Phone. Most teams I know of prefer to write their code using the native toolkits. For them, writing in C# would be an extra cost. Few see writing equivalent code in Objective-C and Java as prohibitive because it's very common to host the bulk of the functionality on servers and only run UI code on the mobile client. UI code has traditionally been non-portable.
For those who are already writing their mobile apps in C# for whatever reason, porting to Windows Phone is already easier than porting from Objective-C or Java.
It uses Mono and is intended for making games however.
Microsoft has tried to pay individual developers to get them to develop for WP, but this is short-sighted and ultimately doesn't address the opportunity cost involved. There are a number of cross-platform mobile tools out there (PhoneGap/Cordova, Telerik Icenium, Xamarin, etc). For a small team, it's damn near impossible to maintain both Android and iOS, let alone Windows Phone.
The fact that Xamarin is compiled to native code and built around Mono makes it a particularly interesting play, since it's probably better suited for games as compared to the HTML 5-based solutions.
I evaluated, and liked, Xamarin a lot. As a .NET developer and part of a very small team, it made a ton of sense for me. The main issue was price - it's very expensive which kind of becomes cost prohibitive for the small team that it is a great fit for.
If Microsoft buys Xamarin and builds it into Visual Studio (or gives it away as part of MSDN/BizSpark), all of a sudden you have a lot of people building mobile apps in C#/.NET - and targeting Windows Phone becomes much, much easier.
Microsoft can't compete straight up with Android or iOS because it doesn't have the same audience that either of those platforms have. But providing tooling that makes our lives easier doing cross platform development is an ingenious trojan horse to getting people to be able to target Windows Phone as well.... or even Windows 8 for that matter since it's just the CLR at the end of the day.
[1] http://tmarman.com/Blog/Post/ba9a711f-dcdb-40b5-bca9-ad6eb5b...
While this isn't much, it tells that not everyone is completely infected with not invented here (NIH) at Microsoft.
Because theyre in 3rd place, theres basically zero cannibalization cost and only the potential upside of "owning the cross platform framework (i.e. the java) of mobile"
As I've said before: I want to live in a world where ms buys xamarin, open sources or provides the software for nearly free. Ms could plausibly win the app wars this way, and by extension mobile.
Of the three/four mobile languages C# is tied with JavaScript for the one I'd most like to spend my weeks working in, and alone in first for the one id most like to mentor a child in.
"code for windows phone, get iOS and android for nearly free" is an extremely compelling proposition.
What makes this not a strategic disaster like OS/2 or android on bberry in my opinion is 1) it is a 3 legged race not a 2 way race and 2) it is a "write in our language, we'll compile to the competitors" not a "we can run our competitors apps"
Do you envision coupling it with other apps or resources? What would be your approach in the introduction stages?
Thanks in advance.
My rationale for that preference is fairly simple: it is, to me, the most expressive. Thus I can focus on teaching concepts over syntax.
I want to live in a world where Mono implements the full .NET Framework and I can run PowerShell scripts on Linux. Somehow I doubt that is part of Microsoft's plan here :-(
Sadly not usable yet. But we welcome contributions ;-)