Friday, November 14, 2014

Microsoft is setting .NET free and it's going to be awesome!

As most of you know, I'm a huge fan of the C# programming language.  C# is a language that retains everything that's good about C++ and Java but modernizes
things and makes actually doing things much simpler.  Unfortunately, while C# can be used on multiple platforms via the Mono project, it's not officially supported by Microsoft on any platform other than Windows.  Not only that but, in terms of features, Mono tends to lag a bit behind the "official" C# implementation because the Mono project is basically reverse engineering what Microsoft is doing and coming up with their own implementation of things.

That all changed yesterday.

Yesterday, at its annual Connect conference, Microsoft announced that it was moving forward with its plans to nearly fully open source the entirety of the .NET framework and work to enable it to run (in parity with the Windows version) on other platforms including Linux, Unix, and Mac. In addition, the company included a patent promise that says it explicitly agrees not to sue anyone using, changing, or marketing, the code. The patent promise is a huge step in promoting the adoption of .NET in the open source world since many people have been afraid to use it for fear of being sued by Microsoft. Thus, while we've had the ability to write software in .NET for years on other platforms, the promise that the technology offers has never been fully realized in the open source world because of the general distrust most people have of all things Microsoft.

Personally, I'm estatic about this move. When I was a Windows developer, my language of choice was C# and I truly came to miss it when I went full-time to Linux. With this move by Microsoft, I, and many developers like me, will once again have access to their favorite languges on whatever platform we decide to work on. This isn't just a win for developers though, it's a win for Microsoft who will, I hope, see .NET and C# simply take over the world. For the first time in over a decade, C# is a serious competitor to Java. It's always been a better language but Java has always beaten it in cross-platform. Now, the game is afoot, and Microsoft seems ready to become the tiger of development again and take on Java everywhere. I think we're about to see a bloodbath with developers, users, and Microsoft coming out the clear winners.

One of the things I'm particularly excited about is that open sourcing .NET could resolve some long standing security fears developers have had around the technology. Take the cryptography API, for example. Sure, you can easily do encryption using .NET but how secure is it? Might there be back doors that we don't know about? Open sourcing the code will close the door once and for all on those questions and could go a long way in restoring developer trust in Microsoft technology. It's certainly a bold move and I think it shows that the company is serious about competing across the spectrum.

Lastly, it should be pointed out that we won't see many of the benefits of yesterdays moves for a while. Microsoft is a big company and .NET is a huge technology with a lot of moving parts. It's going to take a few months to get everything planned out and deployed. But the company has already made moves by putting the source to the C# compiler and a lot of other parts of the .NET framework in a Github repository for anyone who wants it. That's right, you can go and download one of Microsoft's crown jewels right now and change the code or compile your own version.

Honestly, I like the new Microsoft. I think they're making all the right moves and have finally realized that the world doesn't have to revolve around Windows for them to survive, thrive. and kick ass, as a company. Now, we just need to talk about getting Visual Studio on Mac and Linux.  Too soon?


No comments: