New .NET is around a corner. Tomorrow (2016.06.27) we'll put our hands on freshly baked .NET Core 1.0 & ASP.NET Core 1.0. What can (should) we expect of this new version? How will tomorrow (& days after) differ from what we already know?
Microsoft is honestly open about all the technical changes (well, what can you expect - it's all OSS now), so I'll skip them - you can easily catch up using tons of on-line tutorials & blog posts if you're interested in the new tooling, deployment methods, even benchmarks. I'd rather focus on what does it really mean for the .NET Community & .NET Ecosystem in general. Of course it's pure speculation, but there are some statements I'm wiling to risk even today ...
So, buckle you seatbelt, it's gonna be big.
Nothing will change.
Nothing at all.
I mean - the direction is good, approach is correct, execution ain't flawless (mess with RC versions ...), but sufficiently ok. But ... it seems that no-one needs .NET Core anymore. Well, maybe Microsoft itself, but no-one else.
Existing .NET developers could benefit of moving to *nix world (due to better DevOps tooling, etc.), but based on my experience very few would go for such a big (effort-wise) change; those who will try, will have to face the immaturity of .NET Core out of Windows (which has already been confirmed & documented by several trustworthy sources ...). Seasoned .NETers will keep observing, but most likely they'll postpone moving to .NET Core until it really solidifies (1 year, possibly longer).
New developers who are not yet committed to Windows as a platform still have barely any reason to go for .NET Core as their primary choice. Why? Because Microsoft has made a tremendous effort to eliminate the CONS, but they didn't work on new / improved PROS (especially differentiating ones) - as a result, last two years were spent not on bringing new capabilities, but on re-creating the basic ones that were already in original .NET (& this work is not done by far yet). So, why would anyone pick .NET Core over Java, Ruby, Node or even new contenders like Rust or Go?
The momentum is gone, current situation doesn't favour .NET Core anymore. Post-8 Java is recovering quickly from a period of torpor and stagnation, niche for system language, some of the "hipster" functional languages have achieved maturity necessary for the common use (even in Enterprise) - neither C# nor even F# are not that compelling perspective when compared to other language options nowadays.
Microsoft doesn't have an unique platform that would require .NET (& drive its popularity). Well, I mean - platform that has any meaning or value. Windows Mobile is dead, so is UWP. So far .NET Core is very conservative (& limited) in terms of supported types of apps (console & web ones only).
Does it mean there's no hope for .NET Core & all Microsoft efforts are in vain?
Not necessarily. .NET doesn't have a fully fledged, mature OSS Community (when compared to the rivals), but finally all the conditions to develop such a community will be met:
- reduced dependencies
- liberal licensing
- open source
- support for various platforms
- lightweight (& free) tooling
As we all know, nature abhors a vacuum - there will for sure be some developers who'd like to use this opportunity to play a leading role in ambitious, new projects (or at least ports of known solutions to .NET).
Will any of these turn out to be successful enough to drive the success of whole platform? It's not predictable, but it also can not be ruled out. But this way or another, it's a matter of organic growth (that takes a lot of time ...), not something that can be bought or rushed by any corporation.
Pic: © jan_S - Fotolia.com