I know JavaScript is a very special boi but c’mon, you’re embarrassing me in front of the wizards.

  • FizzyOrange
    link
    fedilink
    arrow-up
    9
    ·
    4 days ago

    Yeah. I think the smallest number of number types you can reasonably have is two - f64 and arbitrary precision integers types. One of the few good decisions Python made.

    • arty@feddit.org
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      9
      ·
      4 days ago

      Well, I think I’m happy to never have to choose a number type in JS. I also think that insanity is how C and Intel handle NaN conversions.

      • bitcrafter
        link
        fedilink
        arrow-up
        7
        arrow-down
        1
        ·
        4 days ago

        What does it mean to access the element at index π of an array?

        • arty@feddit.org
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          7
          ·
          4 days ago

          What does it mean to access the 0th element of an array?

          • bitcrafter
            link
            fedilink
            arrow-up
            8
            arrow-down
            1
            ·
            4 days ago

            It is the 0-th element after the start of the array. 0-based indexing is very common in both mathematics and computer science.

            • arty@feddit.org
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              5
              ·
              4 days ago

              Well, you tried to appeal to a common logic, and I appealed to even more common logic. If you arrange 3 apples on a table in an array, and ask anyone to take the 0th apple, they will be confused.

              0-based is just a convention, not a law of the universe. Only using integer-type numbers to address array elements is too merely a convention of some programming languages. And note that no one suggests using non-integer numbers here, only numbers of non-integer type.

      • FizzyOrange
        link
        fedilink
        arrow-up
        5
        ·
        4 days ago

        Try interacting with anything that uses u64 and you’ll be a lot less happy!

        Anyway JavaScript does have BigInt so technically you are choosing.

        that insanity is how C and Intel handle NaN conversions.

        It’s not actually quite as bad as the article says. While it’s UB for C, and it can return garbage. The actual x86 conversion instruction will never return garbage. Unfortunately the value it returns is 0x8000… whereas JS apparently wants 0. And it sets a floating point exception flag, so you still need extra instructions to handle it. Probably not many though.

        Also in practice on a modern JS engine it won’t actually need to do this operation very often anyway.

        • arty@feddit.org
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          4
          ·
          4 days ago

          Try interacting with anything that uses u64 and you’ll be a lot less happy!

          I’m sorry you had to experience this, but in all my years of development I hadn’t.

          …not actually quite as bad… While it’s UB for C, and it can return garbage. … the value it returns is 0x8000

          0x8000 is garbage. Insane.