Possibly the least expected place to find this discussion, James Fallows of The Atlantic Monthly weighs in with comments from readers on both sides. In opposition to Java, a reader contends,
[...] As programming (or scripting) languages go, JavaScript has always been relatively easy to learn and has allowed developers (and businesses) to rapidly develop useful web applications. The same is not true of the strict and complex Java programming language. Good Java programmers were (and still are) few and expensive; good web technology (JavaScript/CSS/HTML) developers were (and still are) abundant and less expensive and, again, the performance of JVMs in web browsers was crap until recently. [...]
Of these points, it's plainly true that Java is strict and that the performance of JVMs has sucked. In particular, UI layout with Swing has been a constant headache from the start - declarative UI modeling is clearly superior to programmatic modeling, and this is supported by the fact that nearly every single client-side UI technology supports some type of declarative syntax, whether it is XUL (Mozilla), XAML (Microsoft), MXML (Adobe, formerly Macromedia), or HTML (duh). Now, Java is overcoming these obstacles, finally. Nexaweb, my current employer, offers a declarative UI language called XAL, for building RIAs and desktop applications based on Java technology. Additionally, while JVMs were a performance bear 5 years ago, both Java and computers have come a long way, to the point where performance is an advantage of Nexaweb's product versus Flex, and the memory-intensive JVMs barely make a dent in the RAM available on a typical machine. As for the reader's other points, there are far and away more Java developers in the world than there are JavaScript developers, unless you define a JavaScript developer down to meaning a monkey who knows how to use ".innerHTML" once or twice inside an <a> tag's onClick event. These are not the people you want developing your rich web application. In favor of Java, On the Java side, a reader notes the irony in Google Chrome's focus on rich client apps.
There's plenty of irony in Google's effort to create a robust client-side platform for web-based ("cloud") applications, mainly because Netscape and Sun tried and failed to do exactly this over ten years ago. Part of this effort was led by a guy named Eric Schmidt, then at Sun, and used Java, a technology that's superior to the Javascript language that's now being used largely because Java never quite worked on the client (i.e., in the user's browser).
Of course, in my current position, I am working on making Java "quite work" on the client. This is definitely a significant near-term opportunity. The question is not what the RIA market will look like a year from now - it will look quite similar to today, with Microsoft and Adobe dominating the RIA market, a narrowing of the field of JavaScript toolkits, and smaller players like Nexaweb trying to break through (maybe we will have broken through!) The real question is, what the market will look like 5 years from now? WIth the incredible enhancments being made to JavaScript engine performance, will the JavaScript toolkits move up the complexity chain into the space currently occupied by the Microsoft / Adobe duopoly? Just as technology is overcoming the performance issues related to Java virtual machines, we will eventually overcome the same performance issues related to JavaScript engines and DOM manipulation. If only someone would create a declarative UI markup language for JavaScript toolkits...