Sun Jul 19 14:06:32 CEST 2009

Scheme and Electrical Engineering / Two kinds of programmers

What I find ironic is that Scheme seems to have origniated from a very
EE-centric way of thinking (look at the constraint programming in
SICP[1]), yet _all_ the EEs I know detest Lisp and Scheme, and simply
ignore anything that "isn't as efficient as C".

The really, really sad thing is that at a time where understanding the
"inside" of programming languages is more important than ever, it
looks like a place like MIT has given up too[2] and focusses on
programming as patching.  

A recent LtU thread (which I can't find atm) talks about two families
of programmers: those that stick to one tool and learn how to use it
to their best ability (patchers, system builders), and those that
build tools: libraries and composition systems (programming
languages).  I've seen this very clearly in the Pure Data
community[3].  Some people don't want to get out of the "patching"
position, while others are attracted to building components in C.  The
reason I am so interested in metaprogramming is exactly this.  The
continuum between C and Scripting needs to be made available.

Precisely because C and VHDL/Verilog are not going anywhere, it is
important to teach people on how to build systems on top of these
languages.  To make sure they don't fall into the pit of "let's build
another patching system" without a good knowledge about programming
language theory.

[1] http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-22.html#%_sec_3.3.5
[2] http://tech.mit.edu/V125/N65/coursevi.html
[3] http://en.wikipedia.org/wiki/Pure_Data