• jjjalljs@ttrpg.network
      link
      fedilink
      arrow-up
      8
      ·
      8 hours ago

      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@programming.dev
        link
        fedilink
        arrow-up
        4
        ·
        5 hours ago

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

        • Ephera@lemmy.ml
          link
          fedilink
          English
          arrow-up
          5
          ·
          6 hours ago

          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@programming.dev
            link
            fedilink
            English
            arrow-up
            1
            ·
            45 minutes ago

            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.

      • panda_abyss@lemmy.ca
        link
        fedilink
        arrow-up
        1
        ·
        28 minutes ago

        I never really minded the shenanigans, after reading the docs once it all mostly made sense

        • JackbyDev@programming.dev
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 minutes ago

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

    • unalivejoy@lemmy.zip
      link
      fedilink
      arrow-up
      19
      ·
      7 hours ago

      Me: Puts a boolean into sqlite

      Me: Asks for that boolean

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

      • AllNewTypeFace@leminal.space
        link
        fedilink
        arrow-up
        8
        ·
        9 hours ago

        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).

        • ChrysanthemumIndica@discuss.tchncs.de
          link
          fedilink
          arrow-up
          1
          ·
          1 hour ago

          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.

        • brian@programming.dev
          link
          fedilink
          arrow-up
          4
          ·
          4 hours ago

          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

    • saltesc@lemmy.world
      link
      fedilink
      arrow-up
      9
      arrow-down
      3
      ·
      10 hours ago

      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
        19
        ·
        10 hours ago

        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
          ·
          2 hours ago

          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
          ·
          9 hours ago

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

          • brian@programming.dev
            link
            fedilink
            arrow-up
            2
            ·
            4 hours ago

            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
            14
            ·
            9 hours ago

            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
              ·
              9 hours ago

              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 😁

          • panda_abyss@lemmy.ca
            link
            fedilink
            arrow-up
            8
            ·
            9 hours ago

            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
              ·
              9 hours ago

              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).

    • magic_lobster_party@fedia.io
      link
      fedilink
      arrow-up
      19
      ·
      10 hours ago

      I opened a TCL script once. It’s use of uplevel scared me. I’ve never dared to return since.

      For those who don’t know: uplevel is a command that goes up one level of the stack frame, and then executes code there. A function can therefore execute code in its callers stack frame.

      • lime!@feddit.nu
        link
        fedilink
        English
        arrow-up
        10
        ·
        edit-2
        8 hours ago

        tcl is pretty fun actually, it’s like bash on steroids.

        for a preview of the insanity: anything surrounded by "" is a string, with the variable expansion you’d expect. anything surrounded by {} is also a string, but with no expansion. the equivalent in bash is the backtick string. but you don’t need to know that to write tcl. if you approach {} as “code blocks” like in other languages, it just works. reason being that tcl evals everything, constantly, attaching little tags to strings that tells the language how things are used, like “this string is an integer” or “this string is code and here is the result from last time it ran”. it’s madness and, weirdly, robust as hell. Xilinx writes all their tooling in tcl. SQLite started life as a tcl module, and it’s still the only api that is not provided by a plugin.

    • Frezik@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      1
      ·
      9 hours ago

      I have. I quickly learned not to.

      Tk is overlooked, though. It’s not pretty, and its approach is archaic, but it’s one of the few GUI toolkits that Just Works on every platform I tried it on with minimum fuss.

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

    The NHL banned the use of 00 as a number in the 95-96 season because they claimed their databases couldn’t handle it. They still are fools because this continues to be a banned number to this day.

    • AmazingAwesomator@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      9 hours ago

      (i am old) both my brother and i were number 00 in our younger hockey years. we were goalies, so we got first pick of numbers on all new teams we played on, heheheh.