It appears that MIT's mind-bogglingly difficult introductory comp-sci course is going to switch from Scheme to Python (there's more to it than that, but that's the major bit). I could see Ruby or a variety of other languages, but Python? Let's see what Guido has to say about Lambda statements:
In my mind, the inability of lambda to contain a print statement or a while-loop etc. is only a minor flaw; after all instead of a lambda you can just use a named function nested in the current scope.
Is he serious? This guy's language is replacing Scheme at MIT? Python's a fine language, but Guido has some serious limitations in his thought (there, I've said it. Sheesh).
Would it be that functional programming people in MIT are losing influence or lacking vigor to fight more "pragmatic" approaches to programming? It is always the same story: code easier to read, easier to maintain, lower threshold for beginners, etc. Guido's rationale has something to do with these trends as well. With such ideas, expressive power may be put aside in favour of construction with more basic blocks (which assumes the hypothesis that things like lambda functions, continuations, etc are inherently difficult to the newbies -- IMO they are more problematic to programmers which already acquired their habits from limiting languages and experiences).
That makes me remember something chromatic recently wrote: "Perhaps software development may finally begin to improve if we can kill the idea that ignorant and inexperienced novices ought to be able to maintain code that matters."
Re:From Scheme to Python
Ovid on 2006-11-21T10:39:35
My take on it: you can't wear handcuffs and paint the ceiling of the Sistine Chapel. Paint by number watercolors are OK, though.
Re:From Scheme to Python
chromatic on 2006-11-21T18:59:12
I figure if Guido really cared about readability to novices, he wouldn't have let that awful conditional expression syntax in 2.5.
(I have the awful temptation to write "Python is the new Lisp? Really?" where I compare some fundamental Lisp features with the Python code necessary to achieve the same effect, if it's even possible. Then again, I'm a jerk.)