It was a big week for Microsoft, thanks to all the announcements at the BUILD conference. Some of Microsoft's most interesting announcements, though, weren't about its own platform--they were about Apple's and Google's.
I'm not sure I've ever seen better examples of how Satya Nadella and Steve Ballmer are different than two announcements made this week. First is the release of the new Visual Studio Code editor on Mac (and Linux and, of course, Windows). It's not the first time Microsoft has made developer tools capable of running the Mac, but it's still a surprising development.
Casey and I both also appreciate that Visual Studio Code supports Markdown, with an in-window preview. It seems unlikely that even the most fevered dream of John Gruber, creator of Markdown and author of Daring Fireball, contained the idea that Markdown would be natively supported by a Microsoft-generated code editor. Just about every document I write starts in Markdown, and it's a cool touch on the part of Visual Studio Code. Microsoft's Editing Evolved page is a good overview of some of the cool new editing features in Visual Studio Code.
The other big news was, of course, that Objective-C developers can use their code to build Windows 10 apps. Objective-C is, of course, the language most Mac and iOS apps are written in. (Microsoft is making the same offer to Android/Java developers, by the way.)
Microsoft seems to think that by wooing iOS and Android developers to its platform, it won't just be ensuring that phones and tablets running Windows are the third platform target for developers rather than being ignored altogether. Instead, Microsoft is hoping that by greasing the skids for developers, they will begin to explore Microsoft's platforms and, ultimately, embrace them.
I'm skeptical about whether iOS and Android developers will embrace Windows in huge numbers, but if you're Microsoft, why wouldn't you try? And by making Visual Studio Code run on the Mac, you're bringing your development tools to the platform that's required for iOS development.
Now, whether developers will find the bridge Microsoft is building inviting enough to cross is the big question. And it'll come down to the details: How easy is it, really, to adapt an iOS or Android app to Windows? (The company says it's created replacement APIs that mirror those found on the other platforms.) Microsoft gave an example on stage of the Candy Crush Saga games, which were ported to Windows using this approach. But how much extra work will it be?
And will the apps that result feel like real Windows apps, or will they be unholy hybrids that are refugees from an entirely different platform? This isn't quite write-once-run-anywhere, but the history of the computer industry is littered with tools that tried to make it easier for software to cross platforms, and most of it was not successful for developers, or users, or both.
What I like about this move from Microsoft's perspective is that it's a good combination of pragmatism and confidence. It's pragmatic because the fact is, iOS and Android are popular platforms for mobile development and Windows just isn't... and while it takes some swallowing of one's pride to admit that and build development tools to try and lure developers to your platform, it's got to be done. But that pragmatism is coupled with confidence that some of Microsoft's other key features--Cortana, HoloLens holograms, Live Tiles, and the like--will excite developers once they take a closer look.
I don't know if it's going to work, but if creating Mac development tools and building bridges from iOS development tools to Windows doesn't do it, nothing will.