Recent moves by Microsoft came together in my head this morning as an interesting chain of events that seem to point towards a large event in my mind: PowerShell on Linux, possibly Open Sourced.
Firstly, let’s outline some facts, and then I’ll join some dots together using what I hope is a chain of logic.
- Microsoft made .NET open source at the end of 2014. Note this is server .NET, not the client side.
- Microsoft announce a cut-down version of Windows Server called Nano Server, aimed at the cloud, in April 2015.
- Microsoft recently acquired Xamarin, which enabled cross-platform app development, which brings Miguel de Icaza into the Microsoft fold.
- Microsoft just announced SQLServer on Linux.
- PowerShell needs .NET core to function.
- I’m told that PowerShell is used a lot for managing Microsoft Azure.
- Developers of cloud-native applications have been choosing Linux over Windows, particularly for container-based development.
- The Microsoft Build conference is just a few weeks away.
@jpwarren PoSH is so much part of managing Azure things now. I can’t imagine it being off the table.
— Karen Lopez (@datachick) March 7, 2016
Let’s join some dots.
Microsoft has long been a fan of developers, because developers are a vital part of the Microsoft ecosystem. An operating systems is pretty pointless all by itself; it’s the applications that run on that operating system that people actually use. If the applications people want most run on your platform, then you get to sell the platform.
You can’t write all the most popular applications, but if you provide the tools for developers to do so–particularly enterprise developers–then you get people to buy into your platform. And buy is the most important word in that sentence.
Apple has done very, very well by making it easy for app developers to get paid if they write apps for their platform, which means they can sell people a lot of phones. Microsoft traditionally did much the same thing, only instead of selling phones, it sold Windows and Office.
However, Microsoft’s old approach of “embrace, extend, extinguish” stopped working in the cloud era based on a fairly fundamental part of their platform: the GUI.
GUIs simply don’t scale, or not by themselves. A graphical interface is excellent for many things, but administering thousands of nodes in a scale-out, ephemeral, cloud-native application isn’t one of them. Not until you’ve glued all the underlying parts together in an automated way. That requires programming, or scripting.