C# Is Dying and Microsoft Is Killing It
medium.com
medium.com
Now if you want a kinda-funny fake interview with the creator of C++ that you've probably already read, then give the link a click and scroll down a paragraph. But that's not really what you came here for, was it?
The article mentions Dart as a simple alternative, but funny enough Dart has type inference too and is planning to add pattern matching.
I don't see C# dying. Redmonk looks at both StackOverflow and GitHub projects and the combined popularity of C# remains remarkably constant: https://redmonk.com/rstephens/files/2022/10/redmonk-language...
The languages that are growing, like Kotlin and Rust, have these hipster features too.
I personally don’t like a lot of the “a’ of list b’” nomenclature because I’m bad at algebraic math, but that doesn’t mean that C# is dying. They’re all optional…
As someone working in C# every day, these new features are great, and C# is still a pleasure to write.
Pattern matching + switch expressions + LINQ = more and more of my code is becoming declarative/functional over time.
I have yet to see a realistic technical argument for why more features is somehow bad. If you don't want to use the fancy new stuff you can actually turn the langversion down to whatever you prefer at the project level. Not sure why you'd need to do this unless you were worried about engaging in some accidental convenience or having your filthy nullables more aggressively audited.
The features that the author rants about are extremely useful and drastically cut down unnecessary verbosity such as switch expressions, to advanced LINQ, lots of syntactic sugar like `var` and type deduction (all of which are incidentally entirely optional).
The .NET ecosystem also comes with powerful reflection, and now (not relevant to the C# itself, but) ahead-of-time compilation to native code, a great package and dependency manager in NuGet, and a powerful command-line (`dotnet`). C# also takes valuable features from F#, which I might end up writing stuff in.
What's more to not like? I wish C# and ASP.NET Core displaced Java and Spring Boot. I wish my university had taught data structures and Programming Methodology II in C# instead of Java.
Microsoft's move to open-source the .NET ecosystem has been by far one of the best decisions it has ever taken in recent years.
This article is a waste of the reader's time.
Since C# is open source and has an open process for new features that many people in the community participate in, my assumption is that there are a lot of people who would disagree with this opinion. I personally use many new language features to great advantage today and appreciate what they do for myself and other developers.
I've been programming almost entirely in C#/.NET since its beta in ~2001, and though the language has obviously evolved significantly since then, it still feels like the same core. The language features were never an issue; it's the ephemeral feature frameworks that can be frustrating (e.g. WCF, WPF), and of course, the whole .NET Core/Standard/Framework confusion. However, that is easily tempered by the fact that .NET moved glacially compared to the 'hip' languages, and support is offered for older tech for years/decades.
The last few years have brought the seamless ability to run .NET on Linux, a built in, super-fast web server, support for gRPC, fully open source, and massive performance improvements. It's never been the 'cool kid', and it has its baggage from years of MS being MS, but I'm hard pressed to think of a better choice today for writing a large, reliable, and performant web application.
C#/.NET probably rivals Java in the billions of lines of code out there, written over the last 20 years, driving critical business processes across many sectors. It's not going anywhere anytime soon. There's not even a reasonable contender for migration for all those 1MM+ LoC 'boring' applications out there (unless you flip to Java.)
That said, I would probably pick Java over C#, so maybe I'm biased.