Java, almost useful
Java promised to solve the "write once, run anywhere" dream. Did it accomplish it's mission? Yes and no.
Yes, many a developer choose Java to develop their applications and web applets, precisely because they then only need to develop their application once. However, Java has a number of fundamental flaws that still doesn't always make it the ideal choice.
Java only speaks Java
The JVM is still large and bloated Java makes it difficult to speak to real hardware, network, or system components
Java speaks only Java
Java's greatest innovation was the concept of a virtual machine for running application software. However, Java took on a number shortcuts that in hindsight really limits it's usefulness. In particular, the Java Virtual Machine really only supports running Java code. Proponents will argue this case, claiming that the JVM doesn't make this restriction. But the fact remains, it's been over ten years and there still aren't any real options for compiling C code to run in a JVM.
The JVM is still large and bloated
Even on modern multi-GHz machines with multiple cores, I still find it rare to find someone who doesn't dread hitting upon a Java based website for fear because of how slow it makes everything and the hit it takes to load the JVM. as additional evidence, you'll notice that most RIAs (rich internet applications) that exist on the web these days seem to be based on Ad