Continuing the series! Feel welcome to dip in and weigh in on a past question.
Let's say I've never used C# (C Sharp) before. Can anyone give the run down of what the language does and why you prefer it? Feel free to touch on drawbacks as well.
Continuing the series! Feel welcome to dip in and weigh in on a past question.
Let's say I've never used C# (C Sharp) before. Can anyone give the run down of what the language does and why you prefer it? Feel free to touch on drawbacks as well.
For further actions, you may consider blocking this person and/or reporting abuse
Latest comments (25)
1.) You have all the great speed and size benefits of a compiled language without having to enjoy the sadism of the C/C++ toolchains and dev experience. :)
2.) It's a fantastic language for a beginner, but also a powerful enough language that you could only ever use C# without being limited.
3.) Best-in-class IDE support. Java might be the only competitor with a tool as good as Visual Studio in combination with C#. "Ctrl + ." isn't a meme, it's a way of life.
4.) Compiled code = multi-target capable. Yes, .Net Core has just picked up in the last few years to make targeting multi-platform a cakewalk, but it's technically all byte code.. Our company has a C# environment for our embedded devices that runs without a full-blown operating system or .Net Framework. This was all possible without the hassle of porting our codebase to Go, Rust or going "native".
The only downside of C# that I have is, for better or worse, multiple inheritance is not supported.
C# optimises for developer productivity when using known patterns and building a somewhat known kind of app. If you're building a web app then modern C# can quickly give you a statically typed, MVC, swagger documented, container ready api in a half days time or less that runs across all major platforms.
What are you going to do once you run out of languages?
AFAIK, C# was the first language that introduced and popularized versatile syntax sugar concepts like async/await, iterators, async iterators (JavaScript calls these generators), as well as Linq and ReactiveX paradigms.
Besides C#, .NET runtime APIs are available also from F# and PowerShell, cross-platform and open-source under MIT License.
C# It's the strongest, and it's got a lot of advantages.
It's an extension of Microsoft's methodology from the '90s.
It is flaws in society aren't great because its already closed, unlike now.
Also Microsoft updates are changing very quickly
Pros:
Cons:
Do you want to build an app? You can build your app using any OS, or just a web browser. Your app can run anywhere that apps, or code runs. You have the option to use best-in-class tooling (even from your web browser) and choose from millions of libraries inlcuding one of the FASTEST web frameworks on the planet. The question isn't why would you choose C#, but why wouldn't you?
I believe C# has led the way and inspired many other languages by showing what worked and didn't work. I'm thinking of attributes, generic types, and especially async/await.
The language is awesome and they are still innovating a lot, although this also means some older features have become irrelevant because new features do the same much better.
I would go further and claim that a language with restrictions does not mean it provides the ability to write good code or best practices.
However there is definitely value in having standards in how things are approached. To me this is less about the language and more about the collaboration. How is code shared, what can be done in code refactors to provide upgrade paths. Does the team work to stay up-to-date or put things on life support.
Some may disagree, but I believe C# is the easiest strongly-typed compiled language to learn if you already know JavaScript. Most of the time it even feels like JavaScript. It lends itself well to a paradigm of imperative code with functional features, chained operators, and plenty of generics. It's also really concise but manages to tell a story most developers can read, even without prior C# experience.
It's fast, has an endless lineup of features, and enjoys extremely high-quality support from Microsoft.
And LINQ is the best functional list extension library on the planet. It makes me happy every time I use it.