[Edu-sig] Why Python?

Mark Engelberg mark.engelberg at alumni.rice.edu
Tue Apr 13 11:04:24 CEST 2010


>> It's interesting to speculate whether there
>> will ever be another major improvement in programming, a step beyond
>> Python, or if Python will simply incorporate any good ideas that come
>> along (as it did with our @ syntax).  I would bet on the latter.

Python has served me well for many years, but it is pretty poor at
handling concurrency, which is widely considered to be the hot issue
that future languages will need to solve.  I am skeptical that Python
will be able to absorb these improvements into its existing
infrastructure.  I would almost certainly bet that Python will be
superseded by superior languages, although possibly it has another 10
or so more years of popularity to look forward to.

Some food for thought:
http://research.sun.com/projects/plrg/Publications/ICFPAugust2009Steele.pdf
The "Let's Add a Bunch of Numbers" slide is a great example of how
Python's style naturally encourages us to write code in exactly the
worst possible way from a concurrency standpoint.
Translating the slide to Python:
total = 0
for i in range(1000000):
    total = total+i
return total

Programmers will eventually need to unlearn this kind of
process-one-at-a-time linear thinking.  We will need programming
languages with lots of built-in rich tree-like structures, and a way
for specifying computations in a way that can be easily parallelized.
 Lots of great experimentation is happening in this area -- it's only
a matter of time before the next language revolution.

In the meantime, I think that a strong emphasis on topics like trees,
recursion, immutable data structures, and divide-and-conquer
algorithms is a great way to future-proof our students and prepare
them for the "next big thing".


More information about the Edu-sig mailing list