Alas, in my three decades in this biz, nothing “rules the world.” Although it may well be human nature that drives every new language to proclaim that it just did so. The Lone Ranger rides his horse through the radio waves to the entertainment of all, but in real life there ain’t no silver bullet. Sux...
I daresay that, during the course of any given work week, most of us switch routinely from one language to another, including Java “of course,” and that we are most-often dealing with systems that involve more than one language and/or type of computer system at a time. (Therefore, a “Perl” community most emphatically is not a “Perl-only” community.)
Java is a fine tool. If it could seriously have standardized on just one pseudo-machine implementation (as seen by the language, that is), it might well be a better one. Ruby is a fine tool. LISP is ... The First One.
Nevertheless: the moment the word, “versus,” enters into speech about computer programming languages, I do think that a key point has just been missed. Computer programming tools (of all sorts ...) fundamentally co-exist. Wholesale replacement of any technology is never a viable option; nor is it (almost) ever justifiable to the business. Every technology that, all(!!) things considered, offers a pragmatic benefit will always be considered, but the total decision is never cut-and-dry and ought never be judged as being such. This practical observation obviates much religious fervor.
(Heh. Did I just say that this entire thread is pointless? Oops. Me bad. Have fun.)