I predict that we’ll see the increasingly wide adoption of dynamic languages,
metaprogramming, and agile design and development practices
over the next few years. In spite of many naysayers, momentum seems
to be building in this direction.
I don’t think it will stop with Ruby, Python, or any of the other new old languages that are gaining popularity. Although those languages borrow extensively from their progenitors, they stop short in some other ways. I love programming in Ruby, but occasionally I find myself needing some of the features of Smalltalk or Lisp that Ruby doesn’t have -- true macros, for instance, or the ability to easily pass multiple blocks to a single method (with appropriate cues as to their distinct roles). And don’t get the idea that I’m an old Smalltalk or Lisp programmer! I come from a C, C++, and Java background. But I’ve recently begun to understand some of the subtle strengths of languages that I used to think were weird.