I stumbled upon a nice talk that Steve Yegge gave at Stanford in 2008. The talk, entitled Dynamic Languages Strike Back, debunks some of the myths about the performance, optimization, and tools for dynamic languages such as Python, Ruby, Perl, and even our favorites such as Lisp and Scheme.
Yegge argues that despite the claims of static typing partisans, you can get better performance and optimization with dynamic languages. That requires a some work, much of it yet to be done, but we are already making great strides. The idea is that you have much better information about program behavior at run time than you do at compile time so better decisions can be made. Yegge remarks that the Java byte compiler, for example, does all sorts of optimization but at run time the VM converts the byte stream back to a tree and throws out all the optimizations in favor of its own, which are superior. The talk is worth listening to just to hear him expound on this point.
Yegge predicts that the languages we have today and their relative popularity will remain pretty much constant for the foreseeable future. It's too hard for new languages to gain traction even if they are better and many developers today know only one language and resist learning another, suggesting the static ranking.
During the question period, someone asked if we are any better off today than we were with the Lisp machines. Yegge said he didn't think so and remarked that the only Lisp machine left today is Emacs and despite the fact that Elisp isn't the world's best Lisp it still provides an amazingly powerful environment.
This is a great talk and I recommend it to anyone interested in dynamic languages. It's about 68 minutes so plan accordingly.