Microsoft just open sourced the .NET framework

I’m having a hard time trying to understand how Microsoft open sourcing .NET is going to help them, at least financially. I get that developers want to have the option of running on Linux, and that by doing this, they win the development community. Microsoft has a horrible history of not always choosing right over profitable.

With the status quo prior to this last week, the use of .NET on non-Windows machines meant you were a year or so behind the curve by using Mono. At least depending on what you wanted to implement – some of the asynchronous parts of the MVC framework is still out of reach, and both WPF and WCF were left entirely unimplemented.

I recently said in passing to a coworker that if we migrated everything away from .NET to another language we would be saving probably a couple (or more) million dollars a year. That cost coming from licensing Windows, Visual Studio, MSDN subscriptions, and our EA contract. This doesn’t include all the process savings we would get given that everything would be done with a single workflow. Currently, everything hits a fork in the road for technology and process used once Windows enters the equation.

I’ve unfortunately garnered the title and notoriety within the company as the “.NET killer” ever since pointing out these costs of continued investment in the platform. I personally like the Microsoft development ecosystem. For me and our developers, it just works, and has the least number of development issues compared to our teams using Java and a modified fork of Perl.

Yes, I said modified fork of Perl – let’s not get stuck here and just move on. I’m as embarrassed as anyone in this day in age having to admit that exists in our stack. Anyways…

When you compare the cost of licensing RedHat Enterprise Linux, and only a minimal six figure support contract (multiple free IDEs are available, and developer count based subscriptions are non-existant) – it at least begs the question. Hell, even if you sprung for JetBrain’s IntelliJ IDEA for every developer, it’s still pennies on the dollar in comparison. The fully furnished Ultimate version of Visual Studio with MSDN access is $13,299 with Premium coming in behind it at $6,199 (price list), whereas IntelliJ IDEA is only $499.

Obviously there is more than fair share of work that would take years to redevelop onto another platform, but let’s assume that the newly open sourced .NET Core and the Mono projects merged enough in both directions. The resulting development effort on .NET should in theory come with equally implemented features for the Linux, Windows, and MacOS operating systems, so that it becomes multi-platform transferable.

With that plausible future established, then what would the long term story for the Windows Server platform? If I have the ability to utilize .NET on top of RHEL, which is a fraction of a cost as Windows, then the hundreds and hundreds of Windows Server licenses we have to deal with today would vanish from our infrastructure outside of Microsoft SQL Server instances. if enough customers did this, then Microsoft is going to take it in the nose on financials.

I’ve read a couple of articles that say that the company expects to offset the loss in revenue on Windows Server from this move with an uptick in it’s Azure cloud computing service and premiums from their suite of development tools like Visual Studio, but that’s a huge bet that I personally don’t think is going to pay off in the 2-5 year time frame. This is a move that they are betting on over the next decade, which is a pretty bold decision.

I can’t imagine how that decision went down/up the corporate communication channels. I did however immediately envision a large number of chairs finding themselves suddenly airborne, hurling weightlessly towards other stationary objects like walls, other pieces of furniture, and/or flat screen televisions somewhere within a Hunts Point, WA home though.

The move to release a Visual Studio Community Edition makes the most sense and really wasn’t much of a surprise since the decision had been in the works for a couple of years internally. The biggst push for this change was because the paid versions were built upon slightly different platform than the express version was. For a lot of things that were built, duplicate effort had to be made.

The best things that would be realized here is gaining efficiency in the team, as well as opening up opportunities for their partners like JetBrains which decided not to tackle the Express edition for ReSharper given the unknown market for the free Express version.

Anyways, I have two days worth of Connect() videos to go through to see if anyone went into details on these decisions. These are just my thoughts for now, but feel free to clue me in if you know more.