Well the fact that it was available solely on Windows for so long was its doom.
Actually I thought of using C# a few months ago, and I was like "Oh wait, does it even work on other platforms than Windows now?". Sure I'm not a C# developer, so I'm not up to date on C# news, but that's an issue if your goal is to drive adoption. Everyone that has heard of C# should know that it's now cross-platform.
Some things still seem to be Windows specific. If I want offline documentation (of the sort one can find at /usr/share/javadoc/java or /usr/share/doc/rust/html by installing the correct packages), every place I look tell me how to enable offline help in Visual Studio (for instance, https://learn.microsoft.com/en-us/teamblog/offline-book-refr...). Someone here told me last time that there's a way to download whole sections of the MSDN documentation as PDF, which helps, but it's not the same thing.
Off-line documentation being kind of a pain sounds like a very minor thing.
Other than that, and other than the obviously Windows-specific GUI and system management libraries, the rest of C#/.NET is pretty much fully multi-platform, maybe except a few obscure things.
“My field” is a 20+ year MS ecosystem developer from C++/MFC, VB6, .Net Compact framework, .Net Framework, .Net Core, etc.
As I said, very few new companies that aren’t “legacy” shops are choosing .Net.
In my current job in cloud consulting at $BigTech, almost all of the .Net projects that come through are older companies compared to newer companies that are using non compiled languages.
These days I write in almost any language they prefer among the popular languages.
“My field” is a 20+ year MS ecosystem developer from
C++/MFC, VB6, .Net Compact framework, .Net Framework,
.Net Core, etc.
Right, and in that field you might be correct (I don't know but I'll take your word for it). It is however not the entire software industry.
As I said, very few new companies that aren’t “legacy” shops are
choosing .Net.
I'm a game developer and the most popular game engine (Unity) uses c#. The newest up and comer (Godot) uses their own scripting language or c# as the most popular options. I've also worked in Enterprise before and c# and java were the popular choices there and as far as I know from friends still are (especially when servicing the government)
You realize you are echoing exactly what I’m saying? Governments are the definition of “legacy” Windows shops. The whole thing I’ve been saying is that new initiatives outside of historical Windows shop are not adopting .Net even though it’s been cross platform and open source since 2016. The new startups and newer companies that avoiding Windows like the plague are also avoiding .Net.
In the US, the companies that pay top dollar - the large tech companies and well funded VC back companies are not adopting tech companies.
If that's what you meant ("c# is unpopular among the best paying tech companies") I can accept that. But what you originally wrote that I disagree with is:
That unfortunately hasn’t helped C# become more popular outside of
Microsoft legacy shops even when it did go cross platform and open source.
Where I work is very much not a microsoft legacy shop (a game dev startup) & we use c#. This is hardly unusual.
When talking about compensation, it might as well be an “enterprise shop”
Just in case you don’t read the link above, that’s not meant to be derisive. It’s just a pure statement of fact.
There are plenty of “startups” that locate in major cities in the US outside of tech hubs, find a bunch of MS developers to write the next CRUD SaaS app and pay enterprise dev wages. I should know, I spent over two decades working for them
I understand what you meant, i just disagree with your phrasing of it. You can simply call it the "best compensated/all the rest" divide. But other than that game development is not at all like Enterprise so I don't find yours a good name for this supposed dichotomy.
I think you would get a lot less pushback by simply using more precise terminology- even though for you it may all be the same, for people working outside of FAANG-esque companies it isn't.
In the US though, compensation for software developers is very bi-modal. You have the “enterprise shops” that start off around $80K and max out in the mid $100s and the “tech companies” that start out in the mid $100s and end up in the $350K+ range.
Most of the 2.7 million developers in the US are on the “enterprise dev” side. If you have a choice, you want to be on the “tech company” side if you care about your compensation.
For context: because of path dependencies and bad career choices, I spent most of my career from 1996 - 2020 on the “enterprise dev” side and only got into $BigTech by pivoting to cloud consulting (enterprise dev + cloud + a shit ton of yaml/HCL PowerPoint slides and diagrams)
Before anyone “well actually”’s me with numbers they are directionally correct on the enterprise dev side in most major cities.
C# and ASP.NET Core feels like the default stack in Western Europe, even among startups. You have to look harder to find companies using Node.js, Rails, Django etc.
The “startups” in the US are even bimodal. You have the ones that set up shop outside of the west coast in big cities that hire “enterprise devs” and you have the well funded ones that try to compete with
big tech salary compensation.