|
|
|
|
|
by tialaramex
325 days ago
|
|
In C you program the C Abstract Machine, this machine is a child's drawing of the Digital computers on which C was invented, it's simpler and easier to grasp than they actually were but fundamentally similar. Your computer today does not much resemble this, but your computer is the real machine your software will be executed on anyway. Mistaking the Abstract Machine for your real one is a catastrophic misunderstanding and C feels as though this is the bare metal when it is not. As a result it's more honest to use a language where it doesn't feel as though you're touching the bare metal, because you aren't anyway† When I last checked both Oxford and Cambridge teach an ML as First Language. So did the place where I did my degree decades ago although today it teaches Python (which I believe is a mistake). That's because the theory of computation is foundational here, not the practice. † Even assembler isn't touching the bare metal, you have features like out-of-order execution and register renaming between the machine code you wrote and the actual things done. |
|