Carry Your Sword and Dagger Programmers!
A knight would for sure carry his sword proudly and ready for any battles. But then he can not use such a heavy weapon for daily tasks such as peeling an apple. Sometimes I think the same with ourself as programmers. We need a stable, strong and static typed programming language that can get us the heavy job (large project, and enterprise system) done in more manageable way. But yet, using such a language to parse a text file, or automate some commands is most fitted by a scripting language.
Through out my career, I have been keeping two languages (one strong typed and one dynamic typed) pair very up to date. I would learn it and be proficient with it enough to write code without flipping through a book. I started with C++ with Perl and then switched to Python. And then later with Java and Jython, and later with Groovy. These are my strongest languages that I used the most, especially with Java. Of course I never stop learning other languages as well, such as Scala and Ruby etc. I personally think Ruby is very nice and good language to learn and use. I just having have a chance to use it that extensively. Mastering a full static language such as Java would take much longer time, but one can learn a dynamic language fairly quickly.
Any rate, if you a programmer, I strongly encourage you to learn at least two languages, and learn it well. As I said, prefer one static and one dynamic language. This pair of combination will boost your productivity to next level.