Coach Wei, Java developer, asks the following question on his blog.
Here is a question that I have been pondering on and off for quite a while: Why do "cool kids" choose Ruby or PHP to build websites instead of Java?
At work we're actually moving many of our in-house desktop applications from Python to Java. I wouldn't be too surprised to see us migrate more PHP Web applications over to Java too for some of the reasons Wei gives in his blog post. But I have a theory as to why PHP and Ruby could be considered "cool" and it has less to do with Java's features and more to do with the culture of open source.
While Java may have been open sourced recently by Sun, the language's roots are clearly embedded in corporate control and culture. Java was a product that Sun intended not to "give to the community", but to sell to developers of companies as an alternative to Microsoft's Visual products. While Java works well on the browser, most people I knew in the late 90s learning Java intended to develop applications for their company's desktop or on the in-house servers. When I think of Java development, I place it with other languages such as Microsoft's Visual products, C, Fortran, Pascal, etc...corporate controlled, profit driven, and traditional system life cycle development.
Contrast that to when you learned Perl, PHP, Ruby, and even Python...did you learn those languages solely with enterprise level software in mind? No, you likely learned those languages for those projects you felt were personal initiatives and in your control.
When you started using Java was it for a desktop application or the Web? How does that compare with PHP or Ruby? I bet when it came to PHP and Ruby your first use of those languages was for the Web wasn't it? And when you looked at Web applications that you built...did you develop the code alone or did you reach out to others and develop the code in a collaboration process with others?
PHP and Ruby have always had an "open community" in the background, but until recently I'm not so sure Java was always so open. When you see the "cool kids" you never once questioned their "coolness", just like you never really doubted that PHP and Ruby were open source. But with Java, it's only now that they have showed up to the party...and unlike the cool kids you're not sure where they stand on the social ladder.