Back in the day, Microsoft viewed open source and Linux as a threat and did its best to retaliate with FUD and patent threats. So it must have been galling to its executives as, over the past 20 years, the bulk of the Internet came to rely on Apache Web servers; while Microsoft now leads in hostnames (according to Netcraft), Apache remains ahead in terms of hosted active sites.
And then a funny thing happened: Whether in the name of pragmatism or simply marketing, Microsoft began a very public transition from a company of open-source haters (at least in top management) to one that’s embraced some aspects of open-source computing. Last month, the company blogged that .NET Core will become open-source, adding to its previously open-sourced ASP.NET MVC, Web API, and Web Pages (Razor).
Wait, What Is .NET Core?
It’s a new subset of the .NET framework without WPF or Winforms, with added ASP.NET for Mac OS X and Linux. It uses .NET Native, a new compiler technology that compiles .NET code directly to highly optimized machine code, which sounds a lot like the way Xamarin’s C# compilers generate code for iOS. Microsoft claims that some Windows Store apps will start up to 60 percent faster and use 15-20 percent less memory when compiled with .NET Native.
If you want to experience .NET Core, you will have to wait for Visual Studio 2015, or download the preview version.
Wait, Why Would Microsoft Move Into Mac OS X and Linux?
Microsoft needs to push back against Linux’s hold on Web development. Traditionally, Linux hosting has been far cheaper than Windows hosting, ensuring its popularity. Plus, the scripting language PHP has proven a major open source success story, and runs great on Linux—it’s less popular on Windows with Apache Web server because of thread safety issues. (Once Microsoft enabled its IIS Web server to run PHP, it opened up Windows to running PHP open-source packages such as WordPress and Drupal, but that can’t be exactly what Microsoft wanted.) Microsoft’s ASP.NET MVC technology, based on C#/VB.NET, is technically superior to PHP, and the rising popularity of Microsoft Web servers a likely consequence of that.
C# isn’t exactly new to Linux and Mac, thanks to the Mono Project, which is the open-source equivalent of .NET. But Mono has never been that popular with the Linux community, due to considerable distrust concerning the use of Mono applications on Linux. Open-source advocates have feared for years that Microsoft would use the Mono Project to somehow damage Linux via patent claims. At least for the moment, those fears have proven groundless; Microsoft has been working with Miguel de Icaza of Mono/Xamarin on the cross platform implementation of .NET Core.
Is Microsoft… Really Committed to Open Source?
Despite these baby steps into the realm of open source, Microsoft remains fiercely protective of its proprietary-software franchises, most notably Office and Windows; for the time being, at least, its open-source efforts are directed primarily at Web development and mobile devices. In theory, an open-source version of Office or Windows would devastate the company’s bottom line, as it would lead enterprises to create their own versions.
There’s no doubt that, at least in some respects, Microsoft wants to make a big show of being more open and supportive of interoperability. The company’s even gotten involved with the .NET Foundation, an independent organization designed to assist developers with the growing collection of open-source technologies for .NET. But there’s only so far Microsoft will go into the realm of open source—whereas once upon a time, the company tried to wreck the movement, now it faces the very real danger of its whole revenue model being undermined by free software.
- The 5 Best Ways to Contribute to Open Source Projects
- Getting Started With Linux Certifications
- Microsoft CEO Pledges More Company Diversity