I'm recently doing a project under Ruby on Rail. It seems to be a reasonable programmer today, one should take at least > 3 languages.
Personally,
I like Erlang: lightweight process + message passing + functional programming + dynamic. It exactly matches my philosophy of looking the real world, and I think it's what functional programming should be.
Are there really Objects exist? I'm not sure. Instead, talking about OO, Object Oriented may be more sense. That is, an Object makes sense only when you orient it. All states look like being "in" an object, are with meaning only when you measure them. But, doesn't "measure" mean applying a "Function" on it? So, the states should always be carried only by functions rather than 'object', and the states are time streaming, they will be transfered from one function to another function, another function ..., so you catch the meaning of them when you track the functions chain, the meaning is based on the functions rather than the name of a Class as a member of. When you want to take a snapshot on them, you save them some where, such as showing on screen, stored in database, printed on paper what ever.
I like Java: tons of APIs + open source code base + Swing + NetBeans. So far, it has the best cross-platform UI tool kit to my eye. I like Swing, I can change or extend it easily to whatever I want. But things go easy because so many people have taken extremely efforts on it. It's bound too Objected, people split world to objects, then try to composite them or inherit something called super to make them together again. I feel pain when doing this, I have to split them, composite them in a way, then things change (or, the real world is still there), I split them, composite them in another way, again and again, it's called re-factor, but people may never catch the real Factor of the real world.
I, have to learn Ruby. Ruby and Rails are very good. For developers term, you should always know things are not so philosophy as yours, you will have guys thinking in different ways, of the real world. So Ruby is there, everyone can think the real world according to his understanding, yeah, in different ways, and, to make them not going too far away, you need rails.
So, I have to learn Java, as a tool make me doing many things interesting and painful; I have to learn Ruby, as a tool make my guys doing many things interesting and on rails; And I'll keep Erlang (Lisp/Scheme) as a tool make me not only doing but also thinking with interesting.