the best online course

Rustom Mody rustompmody at gmail.com
Mon Jul 11 02:40:50 EDT 2016


On Monday, July 11, 2016 at 11:03:37 AM UTC+5:30, Steven D'Aprano wrote:
> 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*?

Black box and White box are not mutually exclusive – I think that is one basic
point of Buchberger.
So your examples are fine [Though I dunno what you mean by scheme is efficient]

Here are some examples in the complementary sense

Most used python web framework seems to be Django
How much python does a Django programmer need to know?

Want to play around with a symbolic algebra system?
Install sympy and start off.  How much python is needed?

By contrast, polynomial addition/multiplication (in C) is a typical intermediate
data structure project [You can slot python either way on this one]

A lisp interpreter in lisp is one page/one hour
http://www.paulgraham.com/mcilroy.html
gcc in gcc is 15 million lines 
http://www.phoronix.com/scan.php?page=news_item&px=MTg3OTQ




More information about the Python-list mailing list