• JustAnotherRando@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    4 months ago

    It very much depends on what you’re trying to do. C# is pretty great for developing APIs, especially in an enterprise environment involving a lot of business logic. I don’t have much of an opinion on Django as I haven’t spent enough time looking into it, but I have looked at enough Node.js code to know I don’t prefer it for most of the projects I’ve been involved in.
    My Python experience is largely based in working with things like Raspberry Pis, and relatively simple jobs where Python made the job pretty easy. I don’t know enough experience with larger Python projects to have a feel for what good architecture in a complex application looks like.
    With C#, I can go into a large application using good practices and quickly navigate the code and be productive.

    • mozz@mbin.grits.dev
      link
      fedilink
      arrow-up
      1
      arrow-down
      1
      ·
      4 months ago

      APIs

      enterprise environment

      business logic

      Must be why all those tech focused companies, Google and Facebook, Netflix, Amazon, IDK, whatever list you want to put together, rely so heavily on C# for all their core enterprise API functionality. (I actually found a list. I’m not saying that it’s automatically that something being popular means it’s good, but I think if C# had inherent advantages over other more modern solutions then it would be somewhat more heavily represented in top-tier production software systems.)

      As far as I can tell, C# doesn’t really have any real advantages over other more modern environments aside from a certain cachet of “enterprise” in some sectors which is often convincing to non-technical people, which I assume is what you’re trying to invoke here. I think it’s missing some strong advantages in those environments that something like Go would provide.

      I have looked at enough Node.js code to know I don’t prefer it for most of the projects I’ve been involved in

      100% agree, I actually actively don’t like Node for a few different reasons. I mentioned C# not having many advantages in my opinion; Node has some active disadvantages.

      With C#, I can go into a large application using good practices and quickly navigate the code and be productive.

      I mean I think mostly what you’re saying here is that you’re familiar with it, and it’s suitable for large systems. Which, sure, I get that and it makes sense, but it’s also not the only production language that someone can get familiar with, and at this point I think it’s missing some important features as compared with some of its peers (easy concurrency handling, good portability, and massive availability of libraries being some I could pick out).

      Like I say I’m not trying to tell you you’re wrong for using it if you’re happy with how it solves your problems and the codebases you can create in it. I’m just saying that may have less to do with its technical features as compared with other languages and more to do with some other factors instead.

      • Kogasa@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        4 months ago

        C# isn’t really the go-to for high scale distributed systems. But it’s extremely easy for a small team of developers to set up a really solid service really quickly. I don’t have experience with Go so I can’t really compare, but I find ASP.NET Core very pleasant to work with, and I also appreciate the suitability of C# and .NET libraries for both backend and frontend work.