C# designer Torgersen: Why the programming language is still so popular and
techrepublic.com
techrepublic.com
I've been asking various questions about Roslyn or generally programming languages / compilers and they were always willing to help
Is it popular? Or merely heavily used?
As far as I can tell the team that I used to work with use C# merely because that is the language promoted by Microsoft and Microsoft is the principal supplier of IT infrastructure to the company. I don't think anyone ever said "Let's use C# because I like it." They usually said something like: "Ugh, got to get away from VB6, what can we use that won't need explaining to the technically illiterate bosses?"
Language is / seems to be really consistent and pretty easy to work with while moving and adopting newer approaches quite fast. Its "environment" supports shitton of things out of the box.
As far as I see after "rewrite" (or reborn) they cleaned up a lot of mess and updated things to the more modular standards, so you're not locked with IIS and so on.
All of that while caring about performance
Google:
>".NET" "performance improvements" site:microsoft.com
Then let me be the first :) I have advocated for C# at previous workplaces because of this, and I use C# + .NET Core for some side projects - on linux and mac, not even with any windows involved.
But really, VB.NET was the use case for your last paragraph. It's syntax is far closer to VB6 and it has a bunch of tricks in the language to make it easier for VB6/VBA devs to transition.
In my (personal) observations, you would see a lot of VB.NET stuff before LINQ was a thing. As that took off, a lot of shops (including one I worked at) saw that writing such was far less verbose in C# than VB.NET (Really, once you get into anonymous functions is where VB's verboseness becomes a huge liability and really makes readability a problem.)
tl;dr - Since VS 2008 C# has been growing steadily in popularity due to the number of features it has genuinely focused on making it easy to develop 'midrange' (i.e. not python/ruby slow, but not go/rust fast necessarily) code