5
validus
5y

What are the pros and cons of c#?

Comments
  • 8
    Cons: C#
    Pros: -
  • 3
    @kolaente damn no love I see 👀
  • 8
    @kolaente
    Did you mean,

    Pros: Not java,
    Cons: C#,

    ?
  • 1
    Why so much hate 😂😂
  • 3
    Ahhh thanks for clarifying
  • 3
    Pro: It's not python
    Cons: It's C#
  • 1
  • 3
    Damn, I'm getting a feeling this was a bad question to ask 😂😂😂
  • 3
    Pro: you can impress your non tech friends into thinking you're a hacker.
    Cons: be prepared to deliver on "Woah, can you hack facebook?"
  • 0
    My teacher forcing me to learn c#, and i thought to myself what do the dev rant peeps think about it, the answer is clear now 😂😂
  • 2
    Pro: you can train your touch typing skills
    Con: the typed result doesn't make much sense.
  • 5
    pros
    - good ide
    - works on microsoft products only (why you would want that i haven't a clue)
    - its pretty similar to java

    con
    - if you write a client app with this, it only works on windows
    - if you write a server, consider it hacked, because it has to run on windows server os
  • 0
    Pros: has nice language feature
    Cons: so easily reversible a 5 yo can do if (that is if you're smart enough to avoid CLR)
  • 10
    C# is a rapidly evolving language that you can(or will) be able to use as a web scripting (blazor), high-level site backend(asp.net core) with first class support (linq) for relational (efcore) and document (ravendb) databases, as well as allowing you to escape the managed envelope to work on micro-optimisation (unsafe/pointers) where needed, build once, run anywhere (.net core), compile once, run anywhere, natively (coreRT). You can write windows desktop apps in WPF and WinForms (netcore3). It has a huge and powerful standard library, it's cross-platform, open source and backed by Microsoft.

    People who tell you it's a windows only language for bankers haven't looked at it in the last 4 years, is my guess.

    Edit: oh and let's not forget all the game engines scriptable in C#: godot, unity, frostbite, etc.
  • 1
    Best comment yet thank you
  • 1
    No problem- I'd also add that the tooling is simply the best in the business. Visual Studio is an absolutely incredible IDE, and for linux devs or people who prefer something lighter VS code is also an option.

    .NET has had a tainted image for a long time because it was a proprietary windows-only language with a compiler written in c++, Microsoft hadn't committed properly to making it a really worthwhile product for people that weren't Big Business. That's all changed in recent years with a massive push to open-source and rewrite the core of the language, all in C# and on github. There's certainly worse languages to start with, so I think you'll probably have a good time with it!
  • 1
    I have to disagree with visual studio being the worse IDE, it's definitely not the best but definitely not the bottom.
  • 1
    @validus it's 40 gigabytes in size!
  • 0
    Well if we are talking about memory I agree it's a little too much.
  • 1
    I agree VS can be bloated but I wouldn't say it doesn't do what it does well. Any other IDE's autocomplete feels lacking compared to it, the memory and cpu profiling is excellent and well-integrated, build configs are easy to setup, and tests are easy to follow and run too. Not to forget resharper and all the excellent plugins available online.
  • 0
    Haha I haven't even been alive 20 years yet- so I'll take your word for it on the One True Way. Maybe I'll convert someday once I find VS lacking as well!
  • 2
    @calmyourtities Simply: No. To all your windows only arguments...

    @OP With all bloating, cross platform etc arguments checkout .NET Core
  • 4
    @validus

    C# and .NET Core are some of the nicest backed dev experiences to have. And C# is a *reasonably* fast language with decent cross platform compatibility thanks to .NET Core, you don't need Visual Studio exclusively to develop it anymore, and it has a ton of quality of life features built into it like LINQ and more functional programming-esque stuff.

    There's also the advantage that it synergizes really, really well with other .NET languages, F# in particular which allows you to use awesome functional programming stuff to decrease your headaches and drop down to C# whenever required with seamless interop between the two because they share the same .NET backend. Seriously, F# is a massive boon, check it out.

    Also, big company support, stable technology, and pretty huge adoption in the industry are further pros at a practical level.

    It's also decently open source now.

    It's also very similar to Java, so by learning one you sort of learn the other too.
  • 1
    @FrodoSwaggins C# is definitely slow and bloated compared to say C, but compared to Python/Ruby/etc? It depends on what OP is learning C# for, it's perfectly possible to have a reasonably fast .NET Core codebase with clean code (especially if you use F#, not gonna lie, I love that language). Windows vs Linux conflicts don't arise because .NET Core is cross platform, if you use something outside it it's a big red flag. I'm also fairly sure that you work with humongous complex codebases, not everyone has to do that.

    Kinda agree about Visual Studio though, it's a mess in general, and so is nuget, though last time I tried 2017 (yesterday) it was surprisingly pleasant. Dunno about your build stuff, I've been using it to work with a fairly hefty C++ project (render engine experiments with Blender's codebase) and it manages quite well.
  • 2
    @FrodoSwaggins .NET standard library is over the top yes, but (so far) I've found Core to be reasonably well designed.

    If OP had asked a few years ago I would've also recommended against C# for anything but Windows dev or legacy work, but I at least feel it's different now.

    Of course, quality of life features like LINQ usually do have way crappier performance than doing stuff the long way but that's not the point of stuff like LINQ. I could be wrong here but I use it to quickly build stuff, verify that stuff works correctly, then profile and replace bottlenecks as time permits (time being a pretty critical factor here). It gives me flexibility and I value that. C# has a ton of extra features that are questionable yes, but you can always choose to not use them, there are lots of ways to write good C# without all the fluff.

    Just like some C++ design docs forbid templates in general for whatever reason (safety critical code etc)
  • 4
    @validus Wow I really don't know what is up with all the c# haters here, but let me clarify some things as I have been a c# Dev so some number of years now.

    Desktop pros -works with Windows works with Linux.

    Desktop Cons -somewhat more complicated to debug on Linux.

    Mobile pros- you can develop apps for both Android, iOS,Windows phone.

    Mobile cons : you will not have access to entirely all of the native features of Android and iOS (yet)

    Over all pros: more libraries are becoming available for c# everyday some companies like Tesla and McLaren require you to do all of your code for them in C# as this is their language of choice. C# handles garbage collection for you unlike C++

    Over all cons not as fast or efficient as some other languages but still does a pretty good job.

    I personally have made quite a few profitable ventures using c# I would recommend it as a language to know. It's very similar in structure to some other languages. So not that difficult to learn.
  • 1
    @Trinitrotoluene thank you. I‘m going crazy when i read this uneducated hate comments. C# is well documented, free and easy to read. No weird getter and setter perversions and no unmaintainable header files with a own template language. You can even split classes into multiple files and write queries inline c# with linq.
  • 0
    pro: use anything else
    con: anything born from microsoft is a plague to the world
  • 0
    Cons: You need to C#. 😂😂
Add Comment