Hacker News new | past | comments | ask | show | jobs | submit
This is different.

Understanding assembly/machine code is optional but helpful. The programming language semantics are enough to reason about what the program is doing. Other tools also help, but are optional for learning how to program.

Using an AI, there is no semantic model that can be used to reason through. You're left without any mental model of the proglblem at all.

I've been arguing for years that is isn't optional and treating it like it is is how we ended up with Electron and 400MB JavaScript websites.

When you have no mental model of the machine running your code or what the physical implications of code mean, you fundamentally lack the ability to reason or care about performance. "Works on my machine" is the original vibecoding.

I take it you listen to Casey Muratori's talks? He talks about this a lot.
I mean I don't disagree, but there's still a difference in the kind of disconnect you get. The disconnect is harmful in the high-level language case, but it's dangerous and irresponsible with vibe coding/LLMs.

Also, I would argue that a good enough understanding of computer architecture and a mental model of a process' memory layout gets you there, without knowing how to write assembly. That's still a mental model.

LLMs these days seem to have no problem using language semantics to conceptualize what’s happening in a program. This is my favorite use of an LLM, “why is this library doing x” and then it digs through the library itself in my venv to find an answer.
Yep, super-duper-google is an unequivocally good use case for LLMs.
That's not what the LLM is doing. It is guessing at what is happening by regurgitating some docs. It's a more expensive web search.

You also don't have a mental model if you need to ask the LLM about it. This is stuff you should be internalizing.

loading story #48506954