• rglullis@communick.newsOP
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    1 year ago

    I don’t get this complaint.

    Python is not adding typing, it’s just improving on its static type checker. Nothing is really changing at runtime. Even if your type annotations are completely wrong, your code will run just fine. It’s up for the developers and the team to know how much they will benefit from adopting it.

    • Zeusbottom
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      I’m not complaining, just reflecting that it is weird to me. The static type checker is almost an admission that type checking is a Good Thing, but Python continues to resist adding runtime checking. Modules like typing and Protocol don’t seem to do anything at runtime, and because of that are deeply weird to me - what kind of include doesn’t have runtime code? I haven’t seen anything quite like it in any other language I’ve coded in. It just seems included for the coders’ IDE to throw warnings, and that’s it.

      Then again, it’s entirely possible I just don’t get around much. I’m not a software guy, I’m hardware, and occasionally I’ll write a tool or website to help with a specific task.

      I suppose the alternative is just as weird or weirder, where there are almost two separate languages, one strongly typed and one not typed at all.

      • pileghoff@programming.dev
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        1 year ago

        How would they add runtime checking without breaking all existing code?

        But I think warning people is a good start, because those checks can be added to your CI pipeline and reject any incoming code that contains warnings. That way you can enforce type checking for a subset of modules and keep backwards compatibility.

        • Sigmatics@lemmy.ca
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          By making it opt-in. But that’s not much different from static typing then, except that it won’t actually work when you screw up typing