Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

When people argue whether it's necessary, useful or desirable for programmers to know anything about assembly language and the internals of CPUs, I always think of this story.


Nice coincidence as I've just started going through the book "Elements of Computer Systems: Building a Modern Computer from First Principles" by Nisan and Schocken.


I did that last year. It was absolutely awesome fun. I already knew 90% of how it works, but hadn't connected the dots myself before.


I think that it has less to do with people needing to know assembly and more to do with making sure that when people need to know assembly the resources are still there for them to do so. And for people to at least know what assembly is.

To be fair, the story talks more about computers designing other computers. Once we get into that realm we get to the point where the product produced is not entirely understood.


I have met far too many C programmers who just thought of the compiler as "magic." We're already way past the point at which "the product produced is not entirely understood."


Not necessarily. Someone understands it because someone wrote the compiler. And the compiler's source (in the case of gcc) is open for review, as are the specs for things like x86, SSE, etc.

When we get to the point that computers are designing computers, the creators of the evolutionary algorithms used don't necessarily understand the output that their creations are producing.

In terms of C programmers, the programmers themselves might not understand, but they have the ability to investigate if they want to, and the compiler designers at least understand the output of their creation. When evolutionary algorithms are used to design something, we can't always grasp why the output works, we just know that it does.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: