I had a completely different idea for today's blog post (ok, to be honest, I always have a few "almost-ready" blog posts waiting in queue to be published), but today's events have forced me to change the priorities. What has happened today? VSConnect happened.

Microsoft has picked up today's date to make a few ground-shaking announcements (use this tag to follow the communication stream on Twitter) about their custom development platform: you can find the most important points here, but let me rephrase them with some comments:

  1. Open sourcing .NET Core runtime & libraries - yes, it doesn't just mean .NET Foundation, but CLR, JIT, GC, ASP.NET, EF, WebAPI & all the other stuff.
  2. Microsoft has finally embraced GitHub - all the stuff mentioned above is published there, they are not forcing Codeplex mindlessly as they did before
  3. .NET Core Framework will run on Linux & OSX as well (as an official distrib!) - on fully OSS runtime ofc, which will be a product of Microsoft <-> Mono Community cooperation (can you seriously believe it?)
  4. Visual Studio gets its Community Edition - technically equivalent to Pro, available freely for both non-commercial & commercial purpose (of individual dev)

Some additional (not that significant, but still very cool) points:

  1. All MSDN subscribers get Pluralsight access as a bonus.
  2. VSCE support the extensions as well :)
  3. Visual Studio 2013 Update 4 got published today
  4. Visual Studio 2015 Preview has been published
  5. NuGet 3.0 Preview has been published

OK, but what does it really mean?

Everything & nothing.

  1. It seems that Microsoft has finally understood the power of the Community & the potential it brings. It still doesn't say much about the strategy of letting (or not) the Community to have impact on the direction .NET Framework is heading towards, but we have the first step already done - hopefully a step in a right direction.

  2. Siloeing the Windows world seems over - you'll be free to create the applications that will run not only on Windows, but on Linux & OSX as well. Microsoft has quite a few big advantages: AWESOME IDE (yes, I've seen them all, VS is awesome) & quite coherent, working (no-brainer!) platform (even if it's limited in some aspects) that is far less brittle than fragment JVM world - these facts can't be ignored by any big player.

  3. Accessibility (& transparency) of .NET platform will increase - with a full access to the source code & ability to shape it up (by PRs or whatever) .NET Platform can be even more easily integrated with the out-side world & can easily work as a foundation for any future community-driven endeavours. Will the Next-Big-Thing work on .NET? Who knows - now it's more likely than it was yesterday.

  4. Finally, there's no financial threshold to start working with .NET Platform -> there's no entry-level investment that could be a showstopper anymore. That's more important than you may think - obviously even quite small companies were able to afford MSDN & VS, but every company needs to worry about the fresh blood - crowds of programmers waiting to get recruited who already know the tech (not just theory, but practice as well): free version of Visual Studio may be very helpful in propagating it around the world.

Great move, but ...

... isn't it too late?

JVM world has exploded few years ago & it grows up exponentionally like nothing could stop it. New programming languages have appeared (majority of them more seem a step over where C# is atm), new frameworks have gained popularity - does world really need cross-OS .NET? Does it make ANYTHING that's not achievable today possible? I don't think so - it just allows the expansion of current .NET apps ecosystem - makes it a viable options in areas that were forbidden for .NET so far.

What it really means is that Microsoft has a different idea of how it's going to earn money:

  • instead of "bare" Windows licenses => cloud services (-aaS)
  • instead of expensive MSDN / VS licenses => mobile market-share with cross-platform dev tools
  • spread your tools & frameworks as far as possible to make you more agile in adapting the changes in global IT landscape & adapting trends easier (utilizing the potential of The Community)

If you ask me, it looks like a fair deal.