It’s a GNU beginning for Microsoft. They just released a significant part of the .NET Framework on Github under a permissive open source license.
This move breaks with years of tradition for Microsoft, which has previously taken a hostile stance on the issue of open source software. Former CEO Steve Balmer once described Linux and the GPL as a ‘cancer’ that ‘attaches itself… to everything it touches’.
What Is The .NET Framework & What Is Going On?
Microsoft launched the .NET Framework 12 years ago, and it has since become a vital component of the Windows operating system. It includes a framework for building applications for Microsoft Windows (known as the Common Language Interface), as well as a virtual machine (called the Common Language Runtime) for software to run on.
Redmond has also announced that in months to come, the .NET Core Runtime will be available for OS X and Linux, which will simplify the process of writing cross-platform software.
It came as a surprise to many that Microsoft uploaded the source code to .NET Core on Github; a popular collaborative code-sharing website. Microsoft owns CodePlex, a rival to Github in the code sharing sphere, although it is nowhere near as successful.
Despite the (shameless) pun at the start of this article, Microsoft has not released the .NET Framework under the GNU license. Rather, they have opted for the MIT license, used by Node.js, JQuery and Ruby on Rails.
Curious as to what this move means for Microsoft, software developers and you? Read on for more information.
Microsoft Is Changing
Like it or not, Microsoft is not the same company it was 10 years ago.
Back then, Linux was not yet ready for the mass-market, with Ubuntu still a far-away glint in Mark Shuttleworth’s eye. Apple was undergoing its Lazarine rebirth, and had only just started to experience growth after years of stagnation and decline. Microsoft was undeniably king. And they were arrogant.
Things started to change. They were challenged in spheres they once dominated, from smartphones, to web browsers, to productivity software.
The market was changing, and Microsoft had to change as a result. So they did.
At the end of Steve Ballmer’s tenure, Microsoft was already one of the top 20 contributors to the Linux kernel. Azure – their flagship virtualization platform – had long allowed users to create Linux Virtual Private Servers (VPS’s). They were even working with Xamarin on a Windows-based software suite that would allow developers to build apps for Android and iOS.
This change for the better accelerated further when Steve Ballmer was nudged out after the disastrous failure of Windows 8 and Microsoft Surface tablet, and Microsoft’s failure to keep up with the steady rise of iOS and Android. New CEO Satya Nadella was brought in, and Redmond continued its metamorphosis.
Microsoft has continued its engagement with the open-source community. It has released cross-platform mobile apps such as Xim; a photo sharing app for iOS and Android. They even gave away their Office suite to users of Android, iOS and Windows Phone. And yes, they have also open-sourced huge chunks of their technology portfolio. Microsoft is a changed company. But what does this mean for you?
It’s safe to say .NET isn’t the sexiest software package in the world. Yet, if you’re a Windows user, it’s one you’re utterly dependent upon.
Software developers use it because it’s consistent. They can build apps targeting the .NET Framework with any supported language, and the results will be the same. The Common Language Runtime (CLR) is also exceptionally fast, and rivals the Java Virtual Machine in sheer speed.
And now, OS X and Linux users can take advantage of this.
Before I continue, it’s worth stating that there is an open-source alternative to .NET called Mono. The development tools for Mono are available on a variety of platforms, including OS X, Linux and Windows, while Applications built with Mono can run on a larger variety of platforms, including Android, Nintendo Wii, Playstation 3 and the Xbox 360.
However, Mono has always suffered from a lack of completeness, especially in comparison to the ‘real thing’.
Not any more. Soon, OS X and Linux users will enjoy the same .NET features as Windows users.
But what does that mean in real-world terms? Well, expect simultaneous cross-platform releases, and more commercial software and games. Linux and OS X will continue to march towards being gaming platforms, despite having traditionally struggled in these areas.
Porting Windows applications to OS X and Linux is about to get significantly simpler. Although – as Engadget saliently pointed out – some applications will still need significant modifications to run.
The release omits parts needed for the user-facing side of things, including the Windows Presentation Foundation that handles interface and document features, so many .NET apps and services will either need major changes or won’t run at all. Also, there are plenty of Windows apps that depend on other frameworks.
Microsoft is also hoping to recapture the attention of developers. In particular, web developers, many of whom have chosen to learn Python, PHP or Ruby on Rails, rather than Microsoft’s proprietary and restrictive technology stack.
With the open source release of .NET and ASP.NET vNext, Microsoft is hoping to restore some credibility in the web development world.
A Step In The Right Direction
Microsoft also announced the release of Visual Studio Community 2013. This is effectively the same as Visual Studio Professional, but with one vital difference. Instead of costing hundreds (or, in some cases, thousands) of dollars, it’s free.
Microsoft is changing, and their willingness to engage the developer community is proof of that. But what do you think? I’d love to hear about it. Drop me a comment below, and we’ll chat.