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/

Reply via email to