• @JustAnotherRando
    link
    37 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
      link
      fedilink
      2
      edit-2
      7 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.

      • @JustAnotherRando
        link
        27 months ago

        So I don’t think it’s the only solution, or that anyone that doesn’t care for C# is wrong or anything like that, but it is a suitable language for large segments of development and is both a good career and, in my opinion, rather pleasant to work with. Looking at the languages listed in that list you shared, I see a lot of C, C++, and Java, which I have no interest in working in again unless i have a good reason for it. The other languages there are fine but I never had a big interest in Go (Google’s language) - it seems fine, but in my area I don’t think there’s much of a community around it.
        The .NET community is pretty active where I live which is a plus, there are lots of jobs in the language and lots of professionals that are proficient in it. I’m going to try to avoid sharing too specific of information, but I’ve used C# in industries from healthcare, to automotive, to HR, to fitness. There are absolutely no shortage of companies using the technology - according to Statista, it’s the 8th most popular language, and they are including SQL and bash in that listing. I’m not sure I believe that data, but it was the first result I clicked in a very quick Google search.
        I agree that popular != good, but if we are going to use “what companies are doing,” there are clearly plenty of people that have found it to be the right choice for their projects.
        I will say that if your last exposure to .NET was like 5-10 years ago, it’s worth taking a look at what it offers now - not necessarily to use it yourself but to at least understand that it does bring a lot to the table. I tend to see a lot of people that make references to C# as it related to .NET Framework (e.g. “you have to use Windows”) that haven’t been the case since .NET Core came out in 2016. I will absolutely agree that it’s not always the right choice and there are aspects to the .NET world (Microsoft has the most obnoxious versioning - .NET Framework up to 4.x -> .NET Core up to 3.1 -> .NET 5 up to 8). And I fully get not wanting to work on it because it’s Microsoft because everyone has their brands that want as little to do with as possible, but it is a good object oriented language.

        • mozz
          link
          fedilink
          27 months ago

          Yeah, I get that. I just poked around at it and it’s free of a lot of the taint that I was thinking of; it seems fine. It was a long time ago when I last used it, so maybe it’s changed since then, or I may have been getting some C++ things mixed up with it, and C++ is awful I think we can all agree.

          But yeah, in whatever case I wasn’t trying to say it’s not good for building a career on.

      • Kogasa
        link
        fedilink
        27 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.