On 2007-06-23 at 09:31BST "Lindsay Marshall" wrote: > > "If you don't know how compilers work, you don't know how computers work." > > http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html > > > Seems pretty uncontroversial to me. :-) >
We can have a bit of fun with the logic of it: 1) If you don't know how computers work, you don't know how compilers work. (Obviously!) So you vanish up your own fundament. Or, 2) i) To know how compilers work you need to know how machine-code works. ii) To know how machine code works you need to know how integrated circuits work. iii) To know how integrated circuits work, you need to know how transistors work. iv) To know how transistors work, you need to know how semiconductors work. v) To know how semiconductors work, you need to know how quantum machanics works. vi) No one knows how quantum mechanics works¹. from which it follows that no one knows how compilers work. > Of course it is, but the question that this gives rise to > is "why do you need to know how computers work?" There are > loads of things I use every single day that I only have > the vaguest idea of how they work (diesel engine, > microwave, brain) and that doesn't stop me. And indeed > knowing how a diesel engine works would not improve my > driving one iota. That rather depends on what you mean by driving. If you mean "being able to get into a motor vehicle and use it to get you to a specified location", knowing how a diesel engine works can significantly increase your chances of achieving your goal in the event that the route to your destination takes you far from garages and you have an engine failure². Similarly, programmer is too wide a term (I'm assuming that no-one is saying that random computer users need to know how compilers work). If someone who knocks together plain html pages is a programmer, not all programmers need to know how compilers work. If, at the other extreme, programmer means someone who, given a computational problem for which a solution exists, can produce a good solution, then clearly they need to know how compilers work because the domain of possible problems includes compilers. Perhaps we're only talking about /good/ programmers, but the only good programmers I ever saw³ are dead... [1] refer to RP Feynman. [2] unless you are driving a petrol, gas-turbine, electric or steam engined vehicle. [3] EW Dijkstra and David Wheeler? -- Jón Fairbairn [EMAIL PROTECTED] 31 Chalmers Road [EMAIL PROTECTED] Cambridge CB1 3SZ +44 1223 570179 (after 14:00 only, please!) ---------------------------------------------------------------------- PPIG Discuss List (discuss@ppig.org) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/