>> 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". _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig