in reply to Why learn another language?

Programming languages are human languages, and like any other human language they define what you can and can't easily express in them. Learning a different language means you learn a different way of thinking about things, and that can provide valuable insights into the solutions for a problem.

I'd really recommend you (or anyone) learns to program in at least some of the following languages (listed in alphabetical order):

Other languages are fine, but C++, Java, Python, Objective C, or any of a hundred other languages aren't as good for giving you a clean view into a new way of thinking about problems. (Though trading Scheme for Lisp might not be bad)

I'm not recommending that anyone actually use these languages in production code in preference to any other language, but I do think they each express strongly a set of unique language characteristics, and as such are good for getting a handle on a way of thinking.