• JackbyDev
    link
    fedilink
    English
    arrow-up
    33
    arrow-down
    1
    ·
    7 天前

    I am strongly strongly statically typed pilled and I will not apologize.

    • expr
      link
      fedilink
      arrow-up
      5
      ·
      6 天前

      100%. Though I can’t imagine the meme is actually saying that things being stringly typed is a good thing.

      • JackbyDev
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 天前

        I don’t think it is, and I’m not saying they don’t have their place, I’m just a bit of a hater of dynamic types, like in a fun way, I don’t think they’re the bane of existence or anything. I just really love static typing.

      • adminofoz@lemmy.cafe
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 天前

        Portability, abstraction and inheritance are fundamental concepts, not buzzwords. Strongly typed languages can and does have all of these things.

      • JackbyDev
        link
        fedilink
        English
        arrow-up
        5
        ·
        6 天前

        Every compile error I work through is a runtime error I don’t have to troubleshoot by surprise. 🙏

  • BenLeMan@lemmy.world
    link
    fedilink
    arrow-up
    23
    ·
    edit-2
    6 天前

    God, that reminds me of the debate on XML that I had with a developer about fifteen years ago.

    Both our companies were working for a client who needed to publish product catalogues in several languages twice a year.

    They had implemented a sort of Content Management System which they used with a plugin to feed data into Quark Xpress files as well as their website, IIRC. Cross-media publishing, essentially, and they had their own little set of format instructions to make words appear in bold, different colors, etc.

    Since my company was tasked with translating the text into various languages, I suggested they come up with a way to store their data as XML. The standard tools in the translation industry can be easily customized to work with that, and XML would be a good way to future-proof their software. After a lot of delaying, grumbling, and ho-hum, they agreed to implement this plan.

    Lo and behold, when the first meeting on the new XML format came around they showed it to me for the first time and… everything was in CDATA sections. Entire paragraphs of text with proprietary formatting instructions. 😐

    When I tried to explain, very politely, and very patiently, that this was not going to work, the lead dev started insulting me. I swear to God, I’ve never been this close to punching someone in the face at a business meeting. 🤬

    Thankfully, the client understood the issue and we eventually got an XML-based data exchange going. It is probably still in use today.

    • Whelks_chance@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      4 天前

      This is why I ask for the schema at the same time as asking for (even example) data at the start of a project. Don’t tell me you have the data, give me proof there’s a standardized structure, or the length of the project just tripled.

  • I Cast Fist
    link
    fedilink
    arrow-up
    9
    ·
    6 天前

    Me, trying to learn flat assembler: “What is even an object?”

    • expr
      link
      fedilink
      arrow-up
      7
      ·
      6 天前

      Me, as a professional Haskeller: “What is even an object?”

  • fibojoly@sh.itjust.works
    link
    fedilink
    arrow-up
    7
    ·
    6 天前

    Haha! Reminds me when I arrived in a team whose API accepted JSON and all the booleans were “True” or “False” (meaningful case, obv.) That was fun.

        • Ephera@lemmy.ml
          link
          fedilink
          English
          arrow-up
          10
          ·
          7 天前

          Groovy will automatically convert integers into objects, as it sees fit. And one such case is when you assign null to an integer.

          There’s some more languages, which try to treat primitive types like objects, to make them more consistently usable. As I understand, nullability is a big part of the reason why it can’t be solved with syntactic sugar, so presumably this would be possible in all those languages.
          If I’m not mistaken, Ruby is another one of those languages.

          • JackbyDev
            link
            fedilink
            English
            arrow-up
            3
            ·
            7 天前

            Groovy is pretty wild. It’s like, honey, you need me to make this a BigInteger for you? I got you honey, don’t even worry about it.

            • Ephera@lemmy.ml
              link
              fedilink
              English
              arrow-up
              3
              ·
              7 天前

              Yeah, I kind of respect the stance, because it knows what it wants to be, but I also wrap number types into a separate data type to document that maybe you shouldn’t multiply a port number by the wheel count and pass that into the temperature parameter, because I want more fine-grained typing, not one-size-fits-all.

              • JackbyDev
                link
                fedilink
                English
                arrow-up
                2
                ·
                6 天前

                I love the idea of “tiny types” like that and wish they were built into more languages.

  • Cruel
    link
    fedilink
    arrow-up
    67
    arrow-down
    1
    ·
    7 天前

    I took great pains last week to convert a big python project to make it typed. (shoutout to MonkeyType)

    It’s so much nicer to develop now…

    • jjjalljs@ttrpg.network
      link
      fedilink
      arrow-up
      18
      ·
      7 天前

      Oh that’s a neat library. Type annotations in python are really nice, and you don’t have to add tooling like when you switch from JS to TS.

      • Cruel
        link
        fedilink
        arrow-up
        8
        arrow-down
        1
        ·
        7 天前

        Yeah, I stopped developing in JS for good ~1.5 years ago. After using TS, it seems crazy to go back.

    • unalivejoy@lemmy.zip
      link
      fedilink
      arrow-up
      33
      ·
      7 天前

      Me: Puts a boolean into sqlite

      Me: Asks for that boolean

      SQLite: “Here’s that int you asked for”

    • JackbyDev
      link
      fedilink
      English
      arrow-up
      5
      ·
      7 天前

      They finally added strict tables which avoids most (all?) of those shenanigans.

        • JackbyDev
          link
          fedilink
          English
          arrow-up
          3
          ·
          7 天前

          I don’t really mind them either, it’s just exciting that there is finally a way to make it actually act type safe.

      • AllNewTypeFace@leminal.space
        link
        fedilink
        arrow-up
        10
        ·
        7 天前

        Also, Tcl (a cute little scripting language from the 90s, best known for giving the world the Tk UI toolkit; it was somewhat Lispy, only under the hood, worked like sh, where everything was a string).

        • brian
          link
          fedilink
          arrow-up
          7
          ·
          7 天前

          more directly, sqlite was originally for tcl which is why they share the semantics.

          also I’d argue that sqlite is a bigger contribution than tk, but I suppose in a more roundabout way

        • Does GNU make count? It’s crazy what you can do with the macro expressions, basically a Functional language using only string types. There’s even a math “library” that will do arithmetic with numbers in strings.

    • saltesc@lemmy.world
      link
      fedilink
      arrow-up
      9
      arrow-down
      3
      ·
      7 天前

      God, I’m so over SQL.

      It’s great, but it is so old and shows it. Feels like 99% of my SQL queries are just cheese.

      Works though, and quick.

      • mesa@piefed.social
        link
        fedilink
        English
        arrow-up
        22
        ·
        7 天前

        SQL is the only bedrock in my entire career. Its the one thing that has stayed relevant.

        SQL is great but when you start having issues processing what is actually going on, its fine to pull out what you need and throw another language on top (python, C#, etc…etc…). Getting it to work slow is one step in making it fast again.

        • saltesc@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          7 天前

          Yeah, this is what I end up doing. SQL does all the heavy lifting, and python or M usually doing the rest. Though M can be soooo slow.

        • Valmond@lemmy.world
          link
          fedilink
          arrow-up
          4
          ·
          7 天前

          Yeah it’s curious that it hasn’t really undergone some major changes or had some major challengers (except NoSQL I guess).

          • panda_abyss@lemmy.ca
            link
            fedilink
            arrow-up
            9
            ·
            7 天前

            It has though

            Window functions were an addition, but more recently struct, json, and array fields with native support. Pipe syntax is getting multiple implementations.

            Match recognize is a whole new standard abstraction of window functions.

            Union by name is being added (fuck union by position).

            • Valmond@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              7 天前

              Isn’t this more like evolution or even just optimisation? I mean it doesn’t seem like a fundamental shift (can be wrong, just checked it out quickly).

          • brian
            link
            fedilink
            arrow-up
            4
            ·
            7 天前

            sql as the language executed by the db hasn’t changed notably, but I do think there’s been significant developments in ORMs. for a lot of developmers sql is now just an intermediate target

          • mesa@piefed.social
            link
            fedilink
            English
            arrow-up
            15
            ·
            7 天前

            Its been a while but yeah NoSQL was the closest.

            I remember a good 4-5 years where developers all around me were using couchdb, mongodb, and a host of others. mostly json in <-> json out kind of systems. And VERY hard to maintain after the initial TODO. I remember so much debugging and finding out old records didnt have a way to deal with changes in the “tables” or equivalents. It was maddening.

            Dont get me wrong, it did create some really awesome specialty tools but you cant really get around ACID compliance when dealing with databases.

            I think SQL has some awesome properties that keep it going:

            1. Most major distributions are rock solid stable.
            2. Its optimized and fast for data.
            3. Its understandable to many types of industries. Software development is only the start.
            4. Its integrated with everything already. So ODBCs can just plug and play most of the time.
            5. Its the devil we know. ACID, transactions, etc… are all things we know about and are proven to work very well. Definitly when you need to MAKE SURE a thing made its way into the system.
            • Valmond@lemmy.world
              link
              fedilink
              arrow-up
              5
              ·
              7 天前

              Yeah 100% with you, had this mongo database where the first entry was like a description, the nr 2 and on the actual data. I mean if there were a description… Sometes 2 descriptions…

              Why oh why.

              And for sure SQL is kind of the cement of DB today, don’t get me wrong, I like that what I learned yesterday actually still works, I’m just pondering the fact that it is so.

              Maybe SQL isn’t the hip language so people doesn’t try to reinvent it all the time 😁