Kurt Williams in his blog posted interesting post "How To Use Java at a Startup".
It does sound right, in terms of how Java is really good solution, but it's too critical to Ruby, PHP, etc. They all are open-source clones - no matter what -- and they are enough powerful to accomplish many project tasks. I am reading Kurt's post once again, and again... and it's only speaking about GUI or third-party-whatever else tools. I do not get it. If I need a GUI, I pretty much will be fine AJAX, or well, Flash-powered Flex or Laszlo. Desktop GUI? Probably - but I actually know as little as none of recent startups which are Web + GUI. They all are Web, or just GUI. And well, what is the problem of having backend in Java, Ruby, PHP, you-name-it - once you can utilize XML and have fun creating Web Services without really caring about what "language" is about to use this service?
Yes, I do agree in general. But Java is edgy too. All these EJBs and application containers - that's a terrible heavy-weight thing. You need to work hard to make use of them useful. And they are useful. But definitely not for many of startups with almost nothing of load. Spring + plain JDBC can do pretty nice job, with simple Tomcat as container. But when I am saying "edgy" - I mean that even by choosing right language "Java" you can get wrong solution inside it.
I've been a Java developer. And I still develop code. And I did architecting job considering Java & PHP. I know the topic pretty much. Although I do like Java much better than Ruby or PHP, I still _even for myself_ will consider Java and Ruby and PHP at the same time.