Python's simplicity philosophy

Andrew Dalke adalke at
Wed Nov 12 01:37:24 CET 2003

Douglas Alan:
> Then you weren't taught Computer Science -- you were taught Fortran
> programming.  Computer Science teaches general concepts, not specific
> languages.

I agree with Alex on this.  I got a BS in CS but didn't learn about
lambda, reduce, map, and other aspects of functional programming
until years later, and it still took some effort to understand it.
learning on my own at that point.)

But I well knew what 'sum' did.

Was I not taught Computer Science?  I thought I did pretty well
on the theoretical aspects (state machines, automata, discrete math,
algorithms and data structures).  Perhaps my school was amiss in
leaving it out of the programming languages course, and for
teaching its courses primarily in Pascal.  In any case, it contradicts
your assertion that anyone who has studied CS knows what
reduce does and how its useful.

> Then your children were done a great diservice by receiving a poor
> education.  (Assuming that is that they wanted to learn Computer
> Science, and not Programming in Pascal or Programming in C.)

Strangely enough, I didn't see an entry for 'functional programming'
in Knuth's "The Art of Computer Programming" -- but that's just
programming.  ;)

>                                               But if you end up going and
> elegant features understood by anyone who has studied Computer Science
> because you think your audience is too dumb to make a slight leap from
> the specific to the general that can be explained on one simple
> sentence, then you are making those trade-off decisions in the
> *utterly* wrong manner.  You should be assuming that your audience are
> the smart people that they are, rather than the idiots you are
> assuming them to be.

Your predicate (that it's understood by anyone who has studied
CS) is false so your argument is moot.  In addition, I deal with a
lot of people who program but didn't study CS.  And I rarely
use reduce in my code (even rarer now that 'sum' exists) so would
not miss its exclusion or its transfer from builtins to a module.

                    dalke at

More information about the Python-list mailing list