I try to learn a new language every 2 years and learn the basic principles of at least 3-4 each year. I still have 1 or 2 languages I do almost all my work in, but knowing other languages has made me much better in those 1 or 2. You learn new idioms, new ways of thinking etc.
Most programmers come from an imperative background. Something in the Algol family. Learning a scheme/lisp, a functional language like Haskell, a stack based on like Factor or any of the numerous other types of languages is only going to make you a better programmer.
Think type languages are awful? Maybe its just the type systems you've encountered ( see haskell for a type system that I would call non-broken ).
Think OOP languages are garbage? Maybe encountering something like Self will give you a different view of OO than what you get from C++ or Java. Maybe encountering CLOS will open your eyes to a different way of doing OOP.
Another bonus via anecdote:
I don't use Ruby anymore, but I still follow the community because people are doing interesting things, things I might want to steal an idea from and use in my language(s) of choice.
Most programmers come from an imperative background. Something in the Algol family. Learning a scheme/lisp, a functional language like Haskell, a stack based on like Factor or any of the numerous other types of languages is only going to make you a better programmer.
Think type languages are awful? Maybe its just the type systems you've encountered ( see haskell for a type system that I would call non-broken ).
Think OOP languages are garbage? Maybe encountering something like Self will give you a different view of OO than what you get from C++ or Java. Maybe encountering CLOS will open your eyes to a different way of doing OOP.
Another bonus via anecdote:
I don't use Ruby anymore, but I still follow the community because people are doing interesting things, things I might want to steal an idea from and use in my language(s) of choice.