• onlinepersona@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    8
    ·
    edit-2
    2 months ago

    auto isn’t dynamic typing it’s just type inference.

    I’m aware, but one of the big arguments I’ve heard about dynamic typing is “I don’t know which type it has when I read the code”. Well, auto looks just like var in that regard.

    Lambdas are just a way of defining methods in place. It has nothing to do with callbacks.

    Callback definition from wikipedia:

    In computer programming, a callback is a function that is stored as data (a reference) and designed to be called by another function – often back to the original abstraction layer.

    This is exactly what lambdas are often used for in C++.

    Anti Commercial-AI license

    • GetOffMyLan@programming.dev
      link
      fedilink
      arrow-up
      4
      arrow-down
      1
      ·
      2 months ago

      The problem with dynamic typing is you can’t always figure out what the type is even with investigation as it can be lots of things based on what is passed or returned. It also allows incorrect values to be passed.

      People will indeed make that readability argument but if the type is not obvious and important to understanding the code then it likely shouldn’t be used there.

        • GetOffMyLan@programming.dev
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          2 months ago

          I wouldn’t call bad readability a loaded gun really. Your dev tools will hopefully make it pretty easy to learn the type. It should be a minor inconvenience at best.

          • lysdexic@programming.dev
            link
            fedilink
            English
            arrow-up
            4
            ·
            2 months ago

            I wouldn’t call bad readability a loaded gun really.

            Bad readability is a problem cause by the developer, not the language. Anyone can crank out unreadable symbol soup in any language, if that’s what they want/can deliver.

            Blaming the programming language for the programmer’s incompetence is very telling, so telling there’s even a saying: A bad workman always blames his tools.

    • lysdexic@programming.dev
      link
      fedilink
      English
      arrow-up
      8
      ·
      edit-2
      2 months ago

      Well, auto looks just like var in that regard.

      It really isn’t. Neither in C# nor in Java. They are just syntactic sugar to avoid redundant type specifications. I mean things like Foo foo = new Foo();. Who gets confused with that?

      Why do you think IDEs are able to tell which type a variable is?

      Even C# takes a step further and allows developer to omit the constructor with their target-typed new expressions. No one is whining about dynamic types just because the language let’s you instantiate an object with Foo foo = new();.