• Doomsider@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      13 days ago

      You can predict with certainty what a compilers output would be. Linus is conflating the fact that most people don’t understand how a compiler converts higher level programming language into machine code with the reality that no one can actually predict and audit what an LLM puts out.

      • Sonalder@lemmy.ml
        link
        fedilink
        arrow-up
        0
        ·
        13 days ago

        You cannot, that’s why reproducible builds are hard. Modern compiler are made with compilers (egg/chicken problem) not assembly nor machine code and you always loose some perfect prediction.

        Yes LLMs are less predictible than compiler but their output is readable to human, while machine code is very hard (yet not impossible).

        Is that a bad things that 99% of devs have forgot how to write code cutting holes in paper? Tools are changing and while a direct comparison between the move from paper to COBOL or assembly to C is not the same as python to LLM generated it’s hard to deny that LLM will change how human write code.

        • Doomsider@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          13 days ago

          Thanks for that explanation. Are you saying that if I rebuild the exact same code on the same machine I could get different results for a given compiler? I think this would render solutions like docker useless. Could you elaborate?

          • Sonalder@lemmy.ml
            link
            fedilink
            arrow-up
            0
            ·
            13 days ago

            Yes you can get a different result. Compilers are designed to be deterministic, but a build is more than the compiler. Usually the bytes differ but the behavior is identical.

            Docker is far from being reproducible!

            It works on my machine ≠ reproducible. But reproducible will make it works on your machine.

            Using a compiler does not guarantee you to get byte-perfect output each time, especially not on different machines.