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