The Coming .NET Renaissance
There’s been ample grumbling about various changes in the .NET ecosystem of late, but I’m more excited about .NET than ever.
First, the decoupling of .NET from Windows. Mono started this work in earnest 15 years ago, and .NET Core + UWP is the next step. Turning .NET into a universal and lightweight runtime introduces many possibilities that haven’t been feasible for many before. Particularly in areas like HA systems, IOT, embedded computing, and mobile. And maybe even inside the browser with WebAssembly.
This is going to create new jobs, new types of applications that weren’t possible in .NET before, and broaden the .NET OSS ecosystem into new directions and areas.
Second, the newfound focus on CLR performance has been a long time coming. It’s not just Microsoft doing this either; read Matt Warren’s blog if you want an amazing third-party example. The improvements coming from this area will help make .NET more competitive against other platforms, but more importantly it will help increase the value we get from our iron. Everyone from small startups to global finance companies cares about this.
Third, moving .NET’s tooling to a cross-platform model. Visual Studio Code, Visual Studio for Mac, the dotnet
CLI, and others will broaden the reach of who can access .NET. Additional, being able to use all of the above without having to pay for a license drastically increases the size of the .NET tent. It’s not just for users with an MSDN subscription any longer.
Fourth, the .NET user base is embracing the OSS ecosystem as a whole and changing the way production .NET applications are built and operated.
A leading indicator of this today: there are many more OSS .NET projects for distributed systems today than there were five years ago. I remember if I needed a Cassandra driver, a HyperLogLog implementation, or even a socket library I had to write it myself. None of that is necessary today. There are professionally maintained libraries for all of the above. And again: it’s not just Microsoft delivering these solutions. Many third party companies (including mine, Petabridge) are in the business of building OSS tools that are professionally maintained accessible to .NET developers, a big change.
Fifth, in general the direction on .NET development is pushing users further down into the details of the stack. I can’t understate how big of a departure this is from things like Lightswitch and RAD / drag-n-drop programming, .NET’s mainstay of yesteryear.
Seeing MVP’s write about things like object pooling in C#, tapping into the compiler runtime (Roslyn,) GC profiling, and such… Is a breath of fresh air. It will help elevate the discourse and level of awareness of average developers; some more than others.
The days of .NET meetups merely being poorly executed Windows Azure and MVC infomercials are numbered. The lowest common denominator will always be there, but the median is moving up. This reflects a big culture change on Microsoft’s part - a recognition that .NET devs can handle the “big kid” stuff.
This will serve to make .NET a much more interesting place to work for the intellectually curious; not everyone has to be some sort of low-level programming wiz to benefit. However, there will be many more of those types of people in the .NET community than there have been in the past and everyone will learn from those types and produce better software in the end.
Sixth, Microsoft’s platform work being done out in the open, which is taken for granted lately. .NET users can weigh in on things as low-level as C# language features proposals, Kestrel, ASP, the CLI tools, etc… All of this being available under an OSI license can make for some interesting possibilities that haven’t been fully explored. This also helps reinforce the ideas of pushing .NET developers to learn more about what’s in the stack.
This has had a big benefit in the F# community with lots of non-Microsoft developers contributing to their compiler and other tools. All of those activities are great in making the compiler better, but the true product of that work is building better programmers.
I’m confident that the OSSing of these tools by Microsoft result in an elevation of the discourse in the C# community as well.
There will be a period of disruption but the product will be a renaissance in .NET. We have a lot to look forward to.