> Microsoft's new direction under their new CEO is one surprise after another.
I don't know about that, it all seems fairly logical. Don't forget that Microsoft is primarily a "business business" rather than a software business (ie. optimizing for business longevity above all else).
Microsoft appears to have practically perfected the game of "maintaining vendor lock-in in an otherwise open ecosystem". That game requires "giving in" at times, when it is no longer viable (in the long term) to compete with other options.
A good example of this is the open-sourcing of .NET. I don't believe for a second that this was a change of heart of a developer or even a team - it is far more likely that Microsoft is realizing the increasing shift away from Windows and .NET, and towards more 'open' platforms (whether Python, Node.js, Ruby, Golang, or whatever else).
It is in their best interest to make .NET open-source, as it allows them to maintain their foothold in the application development community - it still has direct integration with the rest of their products (and thus incentivizes picking MS as a vendor), but can now compete on openness.
You can see something similar for Windows 10, and it being given away for free. Both OS X and Linux are increasingly eating away at Windows' marketshare. By offering it for 'free' to existing Windows users (ie. nearly everybody), they can attempt to win users back, as it is now offered at the same price (in the eyes of the consumer).
Throughout the existence of Microsoft, they have consistently pushed the boundary of vendor lock-in and marketshare, trying to keep it as closed as possible but as open as necessary. The more recent decisions from Microsoft are not surprising to me at all - they are simply the result of a rapidly changing computing landscape. Microsoft hasn't changed, their environment has.