"Embrace and extend" - Microsoft's long-standing strategy for overtaking & destroying the ahead-of-the-game competition. Provide high-quality tools cheap, seduce developers off the canonical platform and onto MS's highly compatible equivalents, then slowly fork the standard, leaving customers with the choice of abandoning their deeply-vested stake in MS toolsets etc or going all-in with MS.
AFAIK we ended up with C# because MS created a very nice Java IDE, started to fork it, developers vested in that IDE got mad at Sun Microsystems (developers & owners of Java standard), Sun sued MS, MS was told to cut it out, MS mutated Java into C#.
Let's hope this doesn't turn into MS trying to rip iOS developers/users away from Apple as done many times before.
As a former Netscapee, I'm probably first in line to call foul on Microsoft's Embrace-Extend-Extinguish strategy (See how much damage Active Directory did to Universal LDAP support - ever try and run Outlook/Windows domain on anything but a Microsoft Directory Server?) - but that's an old war. And it's over. The beginning started in 2007 with the release of the iPhone (some such as Benedict Evans might suggest the transition to Web Apps was the beginning, but IE tried to corner that market by injecting Active-X everywhere) and Android. Microsoft failed to release a high-quality mobile solution quickly enough, and the transition to mobile effectively ended the Microsoft Hegemony. The War was officially over with the departure of Balmer, and official declaration of defeat occurred when Nadella wrote off the vast majority of the Nokia acquisition.
In order to compete, Microsoft now has to play on, and support, platforms which it does not, and never will, control.
It's taking a while for me to adjust (16 years?), but I have to say - I really like this new Microsoft, and I'm looking forward to the great things that they are going to do now that they are no longer the Monopolistic behemoth that they were for so many years.
The war is over? As a former Netscapee you might remember the relevance of Microsoft in terms of Web Browsers before IE4.
That's where Microsoft is now with their mobile OS, and it's nearly exactly the same playbook: developer mindshare and one-way compatibility to make their lousy offer become less lousy.
Given that some XAML-in-UIKit stuff is discussed somewhere else here, they may already work on extending beyond iOS, probably hoping to keep Apple busy with eternal catch-up (since they're said to have cross licensing agreements, patent wars are likely out of the question here).
The key difference is, Microsoft was able to leverage their monopoly in one industry (Desktop) to destroy the competition in another (Browsers, though yes, that phoenix did rise from the ashes)
The war is over because Microsoft no longer has a monopoly they can leverage to do this again.
Microsoft is not, and will not be a force in the mobile phone world for the foreseeable future.
Re: "probably hoping to keep Apple busy with eternal catch-up"
You've got the causation going the wrong direction - Apple doesn't have to catch up to Microsoft any more, it's Microsoft that has to play catch up with Apple.
> The war is over because Microsoft no longer has a monopoly they can leverage to do this again.
They're still a force on the desktop and the Universal App model of Windows 10 will help translating that elsewhere.
> Microsoft is not, and will not be a force in the mobile phone world for the foreseeable future.
WinPhone sales catch up with iOS in some European countries. They have attractive offers at the low end to rival Android in less wealthy regions. I wouldn't discount them yet.
> You've got the causation going the wrong direction - Apple doesn't have to catch up to Microsoft any more, it's Microsoft that has to play catch up with Apple.
For now. Just like they had to with HTML on IE4 and Java for a while. At some point, they built a "better HTML than HTML" (XMLHttpRequest still survives) and a "better Java than Java" (at least they saw it that way, and it was enough of a threat that Sun took the legal route, which both Apple and Google can't easily take in this case).
They need the apps, so they provide enough support to make it work. I suppose that through a mixture of superior tools (MSVC), marketing aid ($$$) and Embrace&Extend (P/Invoke, XAML-in-UIKit) they will try to make those apps work better on Windows than on other platforms, no matter if they're written in C#, Java or ObjC/Swift.
Sound familiar to me. Microsoft is the most dangerous when they're hungry, and they certainly are.
The desktop is increasingly becoming less relevant. It won't go away, but mobile platforms are where the revenue and activity is.
Re: "WinPhone sales catch up with IOS" - That battle is over. It's not even up for debate. There was a reason why Nadella has terminated the Windows "Services and Devices Business." and fired most of the Windows Phone engineers - and that's because Microsoft has been thoroughly and completed defeated by Android and iPhone.
There are going to be lots of places where Windows Phone will still be used, and, in fact, even be a popular choice. But there are also places in the world where Blackberry Phones are still used. But in all the key (and profit generating markets) - Android and Apple have carried the day handily.
By the way - I'm not saying the Microsoft isn't dangerous - they are wicked smart, have tons of cash, and have demonstrated that they are willing to make a significant adjustment to strategy "Devices and Services" to "Mobile first, Cloud First" and fire their CEO to do so.
What I am saying is that Microsoft is no longer in a position to "Embrace, Extend, Extinguish." as Microsoft no longer has the market power to extend important standards and have others adopt those extensions as people are increasingly less likely to be using one of their products, and, more importantly, are increasingly no longer required to use one of their products to get their job done.
To bring this conversation back to the beginning Microsoft has released a translation/recompilation layer that will let people who have written applications for iOS, quickly recompile them and release them for Windows, without having to write much, if any, new code. The objective is to have people write apps for Windows 10 and iOS using this mechanism, because currently, effectively 0% of people are writing first class apps for windows phone (there are, as always, small exceptions, but windows phone basically gets the dregs).
The problem with this strategy, is that now Microsoft is playing on Apples platform - and this further reduces the incentive for people to write native Windows phone Apps. Effectively, this is Microsoft giving up and saying, "If you won't write apps for our platform, as least we can emulate other ones and run those apps."
edit: also I think embrance,extend,extinguish wont work anymore in the dev space because Microsoft no longer have the monopoly on dev desktops and probably never will again - far from it infact.
Its more like they're trying to re-capture dev interest because very few decent websites are built/run on windows (other than StackExchange) and not much app development is happening on windows, etc etc.
The litigation was settled in 2001 (according to that page) but occurred before then. MS shipped their Java implementation since at least 1997, which included P/Invoke and COM interop – things that encouraged integration with native (platform-specific) win32 libraries and look pretty much the same in C#.
Both Apple and MS have been doing that for a while. MS got me when they came out with MS Word, which opened formats from just about every other word processor - Wordperfect being the main one. Apple got me when they introduced Bootcamp and I was able to run both OSs on one machine. Slowly but surely it got to be a pain to keep booting back and forth and I switched to OSX.
I'd imagine it's a similar story for a lot of us out there, just different apps, libraries, dev tools, etc, luring us back and forth between the various operating systems. I wonder if I could be lured back to the MS side?!
AFAIK we ended up with C# because MS created a very nice Java IDE, started to fork it, developers vested in that IDE got mad at Sun Microsystems (developers & owners of Java standard), Sun sued MS, MS was told to cut it out, MS mutated Java into C#.
Let's hope this doesn't turn into MS trying to rip iOS developers/users away from Apple as done many times before.