I recently read Bruce Tate's Beyond Java in which he explores the idea of which language will rise supreme after Java. He ends up talking a lot about languages like Ruby and Python, and while that's nice to hear someone give these languages their due, I'm left wondering if the question is even valid. That is to say, I'm wondering if the core idea that there was one language which 'won', and the obvious implication that all the other languages 'lost', is true. If it's not true then the whole question of Java 'losing' at some point in the future and some other language 'winning' is just silly.
Look at TIOBE, which really only measures hype around a language. It doesn't measure lines of code written in that language, programmer hours, or the value of all the products built with that language. The point is that there are lots of metrics by which you can judge a language and TIOBE only tracks popularity, and even then Java barely cracks the 25% mark over the past five years. (We'll leave the great TIOBE "adjustment" of 2004 for a later discussion.)
We don't live in a monolithic world, we never have, and we never will. My prediction isn't that Ruby or Python will be the next 'winner'. My prediction is that we'll see the same thing tomorrow as we see today: a frothing stew of languages competing for niches on an ever growing software landscape.