I would say it depends on your objective.<p>If you are looking for something that will maximize your capability as a professional developer, absolutely yes. If you are looking for something to dabble in just for fun, I'd say its a much less important thing to worry about.<p>For me, the magic of C#/.NET (when used appropriately) is that the language can fall away and allow you to think almost directly in business terms. Features like LINQ are a major part of this experience. When I am working with a complex business domain, I really don't like the idea of playing code golf with my tools. Making the customer happy is far more rewarding to me than anything I could do on my computer.<p>Also, being able to minimize your vendor footprint to just "Microsoft" helps out a ton at due diligence time if you are selling software to other businesses.
Yes. Without a doubt. More so, if dynamically typed languages are the only ones you know.<p>I've been avoiding them as they were Windows only early days, and Entity Framework Core was too immature at the beginning after the open source wave.<p>Some points, from my PoV of developing business/CRUD type applications;<p>- .NET framework is well engineered solutions to most of the standard requirements in software development. I've spent countless hours looking for solutions in Python for common things like structured logging, validation, websockets, datetime utilities, cryptography, cli, unit conversions etc. when working with Python.<p>- There are a lot of features for reducing boilerplate. Getting better with every release.<p>- Static typing doesn't get in your way. Just the opposite. Eagerly waiting for discriminated unions.<p>- LINQ, especially when combined with EF Core, is godsend.
Yes. C# is an excellent language, and it has frequent updates that make it more concise and flexible (as well as improving the type system).<p>The ecosystem is mature and there tends to be a C# version of every SDK.<p>It's very refreshing to use a modern language without spending much (or any!) time searching through hundreds of libraries and trying to pick the not-dead ones.<p>I currently have a large, mature C# code base that has about 12 dependencies. I have a Node code base in the same domain that has 78, and I spent hours selecting many of them.
It's all about what you're interested in. If that's gaming or app development, C# is a fine language.<p>Just don't be a "language guy", my love for C# has kinda boxed me into a lot of enterprise software roles, particularly in desktop legacy and Cloud ERP. If that's what you want, more power to you.<p>People here love to rip on Java for a myriad of reasons, the ecosystem, boring enterprise roles. Well, Microsoft Java isn't too far out of that realm, don't let LINQ and fancy lambdas seduce you into thinking otherwise.<p>When you look at ugly old enterprise legacy code, it doesn't really matter what C-like language it's written in.<p>I know this wasn't asked, but last to say is, companies value employers who have a really good understanding of their products internal details and infrastructure. That's something you can't learn in a book or at school. They absolutely do not care about skills in these languages beyond expected competence. It certainly doesn't hurt, but there are a million other C# programmers who know advanced programming language features.
Yes because if there is one thing about it is it's easy to pickup and be productive. So you're investing a little time for a lot of gain.<p>An advantage is it's not opinionated on how you should write your code. Which means there isn't the one true way of doing things you need to learn either. It's not like lisp, or rust with it's borrow checker, or C with it's pit traps for the noob. Or C++ where more people understand quantum mechanics than know all it's features.<p>Most of the things you might want to do there are documents and examples how. And unlike other languages those are usually solid. Microsoft have built a vast and curated library for many many things like import and manipulate an excel file.
Yes. C# is the best OO programming language with good support for functional and procedural programming paradigms. For business applications, it is the best programming language that can be used in both frontend/GUI (MAUI) and backend.