Every industry is full of technical hills that people plant their flag on. What is yours?

  • PeriodicallyPedantic@lemmy.ca
    link
    fedilink
    arrow-up
    20
    ·
    17 hours ago

    Dynamic typing sucks.

    Type corrosion is fine, structural typing is fine, but the compiler should be able to tell if types are compatible at compile time.

    • Nibodhika@lemmy.world
      link
      fedilink
      arrow-up
      11
      ·
      15 hours ago

      This is one of those things like a trick picture where you can’t see it until you do, and then you can’t unsee it.

      I started with C/C++ so typing was static, and I never thought about it too much. Then when I started with Python I loved the dynamic typing, until it started to cause problems and typing hints weren’t a thing back then. Now it’s one of my largest annoyances with Python.

      A similar one is None type, seems like a great idea, until it’s not, Rust solution is much, much better. Similar for error handling, although I feel less strongly about this one.

      • hawgietonight@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        4 hours ago

        I usually take these holiday weeks off to learn a new language or framework, and started to take a peek into Python, I had it on the back burner way too long. Got to the dynamic variable types and my heart sunk… I couldn’t continue.

        Maybe I should take a third attempt at Rust.

        • Nibodhika@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          1 hour ago

          Honestly modern python is not that bad because of the typing hints and checks you can run on them nowadays. Also it’s worth noting that python has very strong types, so it’s not illy willy magical types, and while it is possible to use it like that it’s normally not encouraged (unlike other languages).

          That being said, if you haven’t learnt Rust I strongly encourage you to read the book and go through the rustling exercises. Honestly while still a new and relatively nieche language, it fixes so many of the issues that exist in other languages that I think it will slowly take over everything. Sure. It’s slower to write, but you avoid so much hassle on maintenance afterwards.

          • Gagootron@feddit.org
            link
            fedilink
            arrow-up
            1
            ·
            33 minutes ago

            i hadn’t heard of the rustlings before. looks neat, might be what i need to finally learn rust properly

    • RouxBru@lemmy.world
      link
      fedilink
      arrow-up
      5
      ·
      15 hours ago

      Coming from a background where all the datatypes are fixed and static (C, PLCs) it took me so very long to get used to python’s willy nilly variables where everything just kinda goes, until it doesn’t. Then it breaks, but would’ve been fine if we just damn knew what these variables where

      Now my brain just goes “it’s all just strings”

        • Nibodhika@lemmy.world
          link
          fedilink
          arrow-up
          1
          arrow-down
          1
          ·
          3 hours ago

          No it’s not, they’re completely different concepts. In C/C++ lingo Dynamic typing is having every variable be a void * whereas type coercion is implementing conversion functions for your types to allow casting between types, e.g. having a temperature class that can be casted to a double (or from it).

          This is a function with dynamic typing and no type coercion in C/C++:

          int foo(void* param) {
            Temperature* t = (Temperature*) param;
             return t->intValue() + 10;
          }
          

          This is the same function with type coercion and no dynamic typing in C/C++:

          int foo(Temperature& t) {
            return t + 10;
          }
          
          • JackbyDev@programming.dev
            link
            fedilink
            English
            arrow-up
            1
            ·
            2 hours ago

            I’m making a Star Wars joke based on a typo. I know what type coercion is. The joke is that dynamic typing is corroded and disgusting to me. The Star Wars reference being Anakin saying from his perspective the Jedi were evil.

        • petersr@lemmy.world
          link
          fedilink
          arrow-up
          2
          arrow-down
          1
          ·
          15 hours ago

          Type coercion = Allow types to be converted to other types automatically to perform some operations like comparison.

          Type corrosion = some non-standard condescending term to say that dynamic typing has no proper rigid types?