• AggressivelyPassive@feddit.de
    link
    fedilink
    arrow-up
    22
    arrow-down
    1
    ·
    10 months ago

    Dynamically typed languages all suffer that fate. There’s a reason Typescript literally has that feature in its name.

    What does help though is type hinting. You “just” have to enforce it and its fallout in your entire codebase.

    • Ephera@lemmy.ml
      link
      fedilink
      arrow-up
      13
      arrow-down
      1
      ·
      10 months ago

      Yeah, we invested a lot of time into type hinting and checking, but mypy would never exit without warnings and errors, because many libraries we were using had no type hints.
      It was also just exhausting/cumbersome, having to write type hints everywhere, as there’s no type inference.

      But yeah, we always joked that someone should create TypeScript for Python – Typhon.

      • abhibeckert@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        10 months ago

        Part of the investment has to be only using libraries that have type hints.

        But yeah - I definitely prefer strongly typed languages. Or at least languages like Swift where you have to jump through a few hoops to have a dynamic type (in Swift there is an “Any” type but you have to write a bunch of code checking what the variable contains before you can actually worth with it). Basically you have to convert it to a static typed variable before it can be touched. Thankfully there’s pretty good syntax for that. Including an arbitrary way to convert almost anything to a string (essential for debugging).