I've been programming now for 30 years, BASIC, various assemblers, FORTH, Pascal, C and C++ in that order. I haven't learnt a new language in over a decade because from a work perspective C++ does everything I need. However, from a technology perspective, I'd like to bring my skills up to date, particularly in the areas of web development and use of scripting languages that let you do alot without too much programming. The languages I'm considering are Python, Ruby, Java and Haskell. In my position which would you go for and why.
One language per answer please, qualified with solid reasons rather than personal preferences.
If you can add a small canonical code sample of something the language does much neater than C++ that would be great.
Downsides of your chosen language would also be appreciated.
(Edit: Qualify your answers please. I will down vote unqualified one-liners)