
I’m kind of gobsmacked by this. I’ve heard younger developers compare LLM with compiler and chalked it up to ignorance, but I don’t get what this is.
Can I write code in assembly? Yes. Of course. It’s true that I never do it, but if there was a rule that you needed to write some assembly now and then to certify as a kernel developer I don’t see how it would be any kind of impediment.
Comparing more directly: if you hand me a compiled binary and the source code and ask “why is the bit at address 0xXXXXXXXXX a 0?” I can, with 100% certainty, answer that. Probably in less than a day of effort. If I ask "why did the LLM output “for” as the XXXXth word of its utterance, can Linus say why?
And “can you write a good commit message without an editor?” Uhhh? At least when I was in school, this was something people did for fun/messing around. I still do cat > somefile when I need to put some quick text together. In fact, Claude will sometimes write a Git commit by cat-ing into a file–which it’s doing because there’s so many online examples of this. Fucking weird things for Linus to pick. Makes me think his brain’s rotted.
You make a good point about capability. However, I’m trying to say that in practical capability, I do know exactly what compiler flags were enabled (it’s whatever the Makefile passed, which is whatever configure determined, the whole thing is checked in as source code), but the exact model+seed isn’t being recorded for this Linux changes.
To make the compiler analogy, we should be saving model, seed, prompt, etc and then the LLM output becomes the equivalent of the compiled code. I think that’s an extremely defensible argument, while “bet you can’t write assembly!” is not.