• Blue_Morpho@lemmy.world
    link
    fedilink
    arrow-up
    96
    ·
    11 个月前

    And as stated both have their merits and their faults.

    Yes! Just because a compiler could guess the type doesn’t mean it should. Elon didn’t understand the meme at all.

    • AVincentInSpace@pawb.social
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      11 个月前

      why would you not want it to? what circumstance, other than an integer not given an explicit type, could it guess wrong?

        • floofloof@lemmy.ca
          link
          fedilink
          English
          arrow-up
          10
          arrow-down
          4
          ·
          11 个月前

          I almost upvoted but for that last sentence. Code block scopes are most intuitive, and JavaScript has become a better language since it gained them.

          • Blue_Morpho@lemmy.world
            link
            fedilink
            arrow-up
            3
            arrow-down
            2
            ·
            edit-2
            11 个月前

            Yeah I use it too. But when I have to read somebody’s code or my own from a while ago, I prefer everything labeled at the top. That way I can read the top, jump anywhere, and know what is going on without looking at any other lines.

            It’s a preference that can be argued like dynamic typing.

            • floofloof@lemmy.ca
              link
              fedilink
              English
              arrow-up
              3
              arrow-down
              1
              ·
              edit-2
              11 个月前

              I guess you could make a rule of declaring your variables at the top of their scope, be it a class, a function or a code block. That would give clarity without needlessly expanding any scopes.

        • AVincentInSpace@pawb.social
          link
          fedilink
          English
          arrow-up
          5
          ·
          11 个月前

          I’m not talking about dynamic vs static though. I’m talking about static typing with or without compiler type inference a la Rust or C++'s auto

          (note that Java making generic parameters optional does not count since that is, in fact, dynamic typing)

        • Lime66@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          10 个月前

          I also prefer static typing but I like it when it is implemented like kotlin where type inference is still great, I think dart also works like that

      • RepulsiveDog4415@feddit.de
        link
        fedilink
        arrow-up
        4
        ·
        11 个月前

        Well, if there is nof fixed (explicit or implicit) type it’s imposible for the compiler to optimise your code. Also imho programming with typed languages is way easier because your IDE can recognize function argumentd before you compile/run. I tried python and found it baffling how anyone can get any work done with it :D

        • AVincentInSpace@pawb.social
          link
          fedilink
          English
          arrow-up
          2
          ·
          11 个月前

          I used Python almost exclusively before I learned Rust and inevitably became a full time Rust bro, and the answer is “slowly and with a lot of crashes” :P

          anyway, as I said in another comment, I’m not talking about static vs dynamic typing, I’m talking about static typing with vs without a compiler that can do type inference. C++'s auto will default to floats if you don’t tell it the type of a number which is pretty brain dead, and there are scenarios where it’s helpful to write out a type that could be inferred for readability/guaranteed correctness’s sake, but apart from that I can’t think why having most of your types be implicit would be bad