Java the language is ripe for replacement. Java was a miracle. It was a safe, decently-designed language (thanks to Gosling et al.) that PHBs weren't scared of (thanks to Sun's marketing.) A decent language with modern libraries and no segfaults that your boss will actually let you use is no longer the novelty it once was. Now when people think "Java" they don't think "what a relief, no more C." They compare it to Ruby and C#, which is a little bit tougher standard.
As a heavy Java user it's really frustrating to see how little effort Sun (Oracle) has been putting into maintaining the JDK tools. It seems like only critical security bugs get fixed and everything else just languishes.
I submitted a new javac bug 10 days ago and, although it was confirmed fairly quickly, it still hasn't even shown up on the public web site.
Or look at Bug ID: 5093723 <<a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5093723>" rel="nofollow">http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5093723&#...</a>. It's been open for <i>five years</i> with no fix. I would be willing to pay for a fix but there doesn't even seem to be a way to do that.
> "I just want to remind people that many recent Java success stories are getting lost in all the gloom and doom. Among them are Google Collections, Guice, the JVM languages you referred to earlier, and Android"<p>Bloch should also highlight java.util.concurrent, which was his and Doug Lea's own work, including upcoming Fork/Join framework (JSR166y): <a href="http://gee.cs.oswego.edu/dl/jsr166/dist/jsr166ydocs/" rel="nofollow">http://gee.cs.oswego.edu/dl/jsr166/dist/jsr166ydocs/</a><p>People often overlook this strength. There are quite beautifully designed APIs (built on fairly few primitives e.g., monitors and condition variables) around the difficult problem of shared state concurrency (yet the Fork/Join APIs are also used by the Actor implementation in Scala 2.8 and I believe other Actor implementations).
"InfoQ: This is probably provable (one way or another), but do you suspect that the JVM's use has decreased over all, or that Java proper has decreased while Ruby/Scala /Jython /Groovy have taken up the slack?<p>Actually none of these languages make Tiobe's top 20. That doesn't mean they aren't important or valuable; they are. But they aren't mainstream, yet. That said, I'm absolutely thrilled by the amount of language research and design going on these days. There are plenty of good ideas out there, and it's marvelous that people are exploring them."<p>Josh is a bright guy and Java isn't the terrible language everyone may think it to be (though it isn't my preferred language). Ruby is in the Tiobe top 20 though... good to see that he at least recognizes the good that's coming out of other languages.
Interesting comments from the guy who sets Java best practices for Google. I do most of my work now in Ruby but the Java platform is still very relevant to me because I can mix my libraries and other people's Java libraries with JRuby/Scala/Clojure applications. I still use Java for AppEngine development (BTW, but not JDO because of the hit of longer loading request times).