Java: Execution in the Kingdom of Nouns
steve-yegge.blogspot.com
steve-yegge.blogspot.com
Whatever you think of Java, it has improved HUGELY since the 90s. Though it does miss closures.
For example, I could write a version of C where you have to type each line twice, once forwards and once backwards. You could get over it, but it wouldn't make it illegitimate to suppose that the language could be improved on and was making life difficult.
You hear this argument a lot (on hn and elsewhere) and I for one call bullshit - language matters enormously, but if you don't get an ideal language, you can work around it, yes. It doesn't take away from the fact that language matters.
If startups choose Java for performance reasons, which I believe was your point, couldn't they instead focus on alternative JVM languages, such as Clojure / Scala?
With these languages, you get the best of both worlds. You can use a more "powerful" language, while keeping the benefits of the JVM (performance, portability, tooling). And you can very easily use Java libraries (Lucene, Hadoop...) if needed.
Jython and JRuby also look interesting. And JDK7 will bring invokedynamic (JVM instruction to better support dynamically typed languages).
Hadoop, HBase, Hive Cassandra, JMS are all Java solutions.
Maybe it's for performance, maybe just because Java has more libraries for that particular domain.
Google (pre-dominantly Java), Amazon (Java shop), ITA (they also use Java EE to my knowledge), Facebook (HBase, Hadoop, Hive, and maybe even haystack?), Zynga, Flickr (small part of back-end), Twitter (back-end stuffs), LinkedIN (Java shop), Last.FM (back-end stuffs), PowerSet (they came up with Hadoop)?
I don't know why Twitter uses Scala for some part of their systems when eventually they need to write some Java code (and probably make that Scala code talk to Java infrastructure). If you're not writing bajjilion code for that particular portion of your systems, I don't see why you need to have both. Just pick one. Perhaps they have other reasons (personal or not).