"The journey of a thousand miles begins with one step." – Lao Tzu
Today’s Build keynote felt a bit like the final steps of a thousand mile journey for Executive Vice President of the Cloud and Enterprise group Scott Guthrie, if not the larger Microsoft. It’s been a multi-year journey, forging a cross-platform, cross-language and open source culture at Microsoft, and it was by no means a sure bet. Let’s review some of the history:
  • If you can’t beat cancer, join it. Steve Ballmer’s 2001 statement that “Linux is a cancer” is an almost mythic meme 15 years later. But it clearly articulates the corporate attitude of Microsoft toward open source at that time. Old attitudes (and cultures) die hard. That’s why yesterday’s announcement of Bash support in Windows was not just good for cross-platform developers, but symbolic of the now firmly rooted cultural transformation at work in Nadella’s Microsoft. We noted it years ago, but it’s pretty clear that the change is sticking.
  • It should have happened sooner. Microsoft’s journey in the wilderness could have ended in 2010. At that point in time Silverlight was making steady inroads to Mac and Moonlight was moving from Linux toward Android. There were rumblings of more investment in cross-platform capabilities, and then Microsoft’s strategy shifted. Silverlight was de-emphasized in favor of Windows and the Web. Our take on that time was that a brewing power struggle inside Microsoft between the .NET and Windows teams came to a head, and the Windows team won. If the tables had been turned, we might have seen today’s Build keynote a lot sooner.
  • Now the new .NET is in ascendence. In today’s keynote, Scott showed of Microsoft’s newest strategic acquisition and announced that Xamarin would be made freely available to developers. Guthrie also announced that Xamarin code would also be relicensed as open source under the MIT license. As a result, .NET runtimes are now fully open source, and fully cross-platform.
 Other announcements continued to build on this open-source, cross platform theme:
  • More micro-services programming options. Guthrie’s Azure team is adding more entry points for developers looking build micro-services. At the lowest level, developers that want to build infrastructure themselves should look to Virtual Machine Scale sets. Developers using containers like Docker can use the Azure Container Service to deploy container based micro-services on Windows or Linux using Apache Mesos or Docker Swarm. Developers that want to employ higher level abstractions can now choose between Service Fabric’s Actor-based stateful model or the AWS Lambda-like Functions preview. While it was a quick aside, the ability to deploy Service Fabric on other clouds, including AWS is an important proof point of Microsoft’s new cross-platform thinking.
  • Better support for IOT. The Azure IoT Suite adds remote monitoring capabilities and devices SDKs that support Linux, Windows and other real time operating systems (RTOS).  That includes support for maker class devices like the RaspberryPI, Beaglebone, and open protocol support for HTTP, AMQP, and MQTT.
Exit the wilderness. Microsoft is now in a position where it’s giving developers critical services for modern apps across the platforms customers use, supporting the languages and open source frameworks developers use, with licensing terms and billing models that are developer friendly. In doing so, they are sending a volley toward other digital app platform players while making a strong case to developers that they worth investing in again.