Yesterday, Satya Nadella, Microsoft’s CEO, announced that they will release the core of .NET, the Microsoft application development platform, as open-source. In addition, .NET will be ported to run on additional platforms, primarily Mac OS X and Linux.
For Microsoft, the ultimate closed-source and proprietary stack company, this is an earth-shattering move.
Developers have long had a choice of platforms on which to write applications. Java and its variants, Ruby on Rails, Node, Python, PHP, lately Go and Dart, the list goes on and on. Just about every one of those languages has 2 key features:
- It can run on almost any platform: Linux, BSD, Mac OS X, proprietary vendor Unix variants from Sun, HP, IBM, etc., and, yes, even Windows.
- The language is open-source.
Since the language creators are not operating system vendors, they want to encourage as broad adoption as possible, which means making it available, well, everywhere. Further, since those languages are open-source, someone who want to adopt the language but have it run on a different platform can help make it happen. If John releases a new language Flyer on Linux, but Jill really wants to use it on Windows, she can download the source code and tweak it until it works, at which point she re-releases it back to the community.
.Net, on the other hand, was created by Microsoft, source code a closed proprietary secret of Microsoft, and runs only on Windows. I would argue that .Net was released only to keep application developers on Windows. Company has a large farm of Windows servers, and wants to write an application. If only Java is available, and they write the application in Java, then they will continue to run a Java application on Windows servers… until a new CIO or VP of Infrastructure notices that it “runs as well on Linux, and we are due for a hardware refresh, and look how good Linux is, and how much we could save on licensing, and our apps already run on it!” Suddenly, Microsoft loses a very important stream of revenue. On the other hand, if it was written in .Net, then when the hardware refresh comes, they will have to rewrite the entire application to move off of Windows.
In short, .Net is a gateway drug to Windows Server, and an important part of driving operating system license revenues.
So… why in the world would Nadella remove the gateway feature of that important drug? Does he not risk current customers who are locked into .Net suddenly saying, “hey, it works on Linux, so…”?
I think Nadella is consciously taking an enormous risk in reinventing Microsoft, but a necessary one to change the culture of Microsoft.
If You Love Someone, Set Them Free
Microsoft’s main businesses are operating systems (Windows), office/productivity software (Word, Excel, PowerPoint), and server software (Exchange).
While many companies voluntarily purchase productivity software and server software, in the application development space, many feel trapped with Windows. They built applications on .Net, or want to, but would prefer not to run Windows server.
- Licensing is expensive compared to free Linux or low-cost supported Linux.
- Windows is harder and therefore more expensive to manage.
- Windows is weaker in management capabilities and features, and slower to get new ones.
Trapping your customers is a very bad idea. It leads to resentment, and a strong desire to dump the vendor as soon as is practicable. The next time such a customer has the need to significantly invest in application development, they will avoid anything Microsoft-related, just to get back at them.
Setting customers free to run their .Net apps anywhere may lead to an initial exodus of customers off of cash cow Windows, but will also force Microsoft to do one or more of two things:
- Bring its Windows platform up to a competitive level to make it worthwhile for customers to pay for it.
- Create additional .NET development and management tools that customers are willing to pay for.
By removing the .NET “crutch”, Nadella is forcing his product, marketing and development teams to create value that customers actually want to pay for. This is a very risky strategy, but ultimately one that is necessary for Microsoft’s long-term viability in corporations.
Nadella isn’t opening Microsoft’s business; he is changing the culture by throwing his .Net and Windows divisions into the forges of the open marketplace to make them really build customer desire, and this long-term Microsoft value.
In the next article, I will explore the other side of the coin: Microsoft and startups.