the best online course

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon Jul 11 01:33:00 EDT 2016


On Monday 11 July 2016 13:07, Rustom Mody wrote:

> Python is good for black-box – us the ‘batteries included’ without worrying
> too much how they are made
> Scheme, assembly language, Turing machines etc are at the other end of the
> spectrum

I would put it the other way.

Python is excellent for "white boxes", because the syntax is extremely 
approachable, easy to read and comprehend. (Although you may wish to avoid some 
of the more complicated and hairy features if your emphasis is on learning.) 
It's famous for being "executable pseudo-code" and neither too concise nor too 
verbose, and lacks the syntactic cruft which can impede understanding (braces, 
type declarations), which makes it excellent for teaching about algorithms, 
etc. But for some tasks, at least, it may lack speed and efficiency to be a 
practical "black box".

Scheme, assembly, C, Forth etc are excellent for black boxes, as they are 
extremely efficient languages, but not so approachable, readable and 
comprehensible.

Turing machines are to be avoided except for academic proofs that a certain 
feature or language is equivalent to a Turing machine, in which case we know 
precisely how much power it has, computation-wise. Turing machines are neither 
efficient enough to be used as black boxes, nor comprehensible enough to be 
used for white boxes.

Take Python's StringIO class. Would you rather *read* the Python version or the 
C version? Which would you rather *use*?



-- 
Steve




More information about the Python-list mailing list