• ඞmir@lemmy.ml
    link
    fedilink
    arrow-up
    18
    arrow-down
    3
    ·
    20 days ago

    pervasive unchecked nullability

    Addressed nowadays with the question mark and exclamation mark syntax, and programming without nullability is a pain

    Framework management is hell, fat binaries inconvenient and not default

    Nuget?

    Compiler output only marginally better than working with c++

    No one claims it’s faster at runtime than good C++, it’s just a lot easier to write decent code

    • Billegh@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      20 days ago

      Compiler output only marginally better than working with c++

      No one claims it’s faster at runtime than good C++, it’s just a lot easier to write decent code

      I think they’re referring to warning and error content. Compared to things like rust, deciphering error notifications from the c# compiler can sometimes feel like trying to figure out what a child with limited vocabulary is trying to tell you.

      Even with decades of personal experience with it, they can be confusing and non-informative sometimes for me.

      • anus@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        19 days ago

        Yes this is right. C++ in this context is the boogeyman worst possible scenario. C# only being a little better just means it’s not actual garbage

    • Kogasa@programming.dev
      link
      fedilink
      arrow-up
      4
      ·
      19 days ago

      Nullable reference types are (a completely mandatory) bandaid fix in my opinion as a .net dev. You will encounter lots of edge cases where the compiler is unable to determine the nullability of an object, e.g. when using dependency injection to populate a field, or when using other unusual control flows like MediatR. You can suppress the warnings manually at the slight risk of lying to the analyzer. Objects supplied by external library code may or may not be annotated, and they may or may not be annotated correctly. The lack of compile-time null checking is occasionally an issue. But that said, NRT makes nullability a significantly smaller issue in C# than it used to be