• scorpionix@feddit.de
    link
    fedilink
    arrow-up
    5
    arrow-down
    3
    ·
    1 year ago

    The issue with transpiling is that the code that’s running in production is not necessarily the one that’s been tested. A source map doesn’t fix that.

    • atheken@programming.dev
      link
      fedilink
      arrow-up
      8
      arrow-down
      2
      ·
      1 year ago

      I loathe this line of reasoning. It’s like saying “unless you wrote assembly, compiling your code could change what it does.”

      Guess what, the CPU reorders/ellides assembly, too! You can’t trust anything!

      • pivot_root@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        edit-2
        1 year ago

        Haha, what is this, the 90s?

        Assembled instructions aren’t even the lowest non-hardware stage in instruction execution. There’s proprietary microcode sitting a level below your typical x86 ISA.

        And even then, what if—God forbid—the hardware has errata. A line has to be drawn somewhere between trusting that what you write is logically correct at all stages below it. If someone is unable to trust that the environment they wrote code for works, they better start learning how to create PCBs and writing for FPGAs.

        • atheken@programming.dev
          link
          fedilink
          English
          arrow-up
          3
          ·
          edit-2
          1 year ago

          🙈🙉🙊

          I know, but I didn’t want to scare the children.

          I also chose to pretend it’s just little gnomes moving the bytes around. Less magic.

    • pivot_root@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Unless someone is using some language extensions, transpiling from TS to an ECMAScript module using the ESNext target merely drops the type annotations.

      If not running the exact same code being developed is an issue, it’s an easy fix.

      • scorpionix@feddit.de
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        Because Browsers can’t run Typescript, they run JavaScript. That’s why the intermediate conversion step isneededd.

        • Miaou@jlai.lu
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          1 year ago

          But your tests are running on the compiled code too. Nothing can be tested but handwritten assembly, with such approach