Typed Python?

Paul Prescod paul at prescod.net
Fri Jul 9 01:24:18 EDT 2004


Hamilcar Barca wrote:

>...
> You don't seem to have taken it this way, but I don't intend to bash
> Python.

I didn't take it that way. I'm just trying to understand to what extent 
your position is yours and to what extent it is just common wisdom. 
Languages deemed "good for education" do not have a good history: BASIC, 
Pascal, etc. Why was Pascal good for teaching? In retrospect it really 
wasn't that great. But at the time it was common wisdom.

>...
>>Python supports recursion, second order functions, numerical programming
>>and hundreds of other important concepts.
> 
> How about currying and deferred list evaluation?

Between generators, nested functions and generator expressions I think 
we're doing okay. But why are these more important concepts than (let's 
say) threads or network programming? Because the latter are tainted by 
real-world usefulness?

Computer science is a really massive field and I think that for every 
pattern that is made easy to learn because it falls out of the language 
syntax ("deferred list evaluation: now I understand lazy processing in 
general") there are ten that do not (cache coherency, context-free 
grammars, relational algebra, tree transformations, algorithmic 
complexity, state machines, quick sort, floating point numbers, graph 
theory, text searching).

Therefore we should look for a language that is fun, easy to learn 
(relatively speaking!) and highly productive but not expect the language 
itself to deliver the CS education. Students will probably learn more 
from the library than from the language. I'd go so far as to say that 
what you are looking for is a language that gets out of your way to the 
greatest extent. The language is primarily a notation...not a concept.

  Paul Prescod





More information about the Python-list mailing list