Bruce Eckel has a good essay on language wars. He starts out talking about how hyper-enthusiasts from the Java world have migrated to Ruby on Rails and winds up asking whether Ruby is really better than Python or not.
From my own perspective, I can say that the days of hyper-enthusiasm are behind me. When it comes to picking tools to get things done, I use one of the XP maxims — use the simplest thing that could possibly work. There are two important attributes of environments for developing Web applications as far as I’m concerned. Simplicity and structure. PHP wins the simplicity fight. If you need to pull stuff out of a database and print it on a Web page, you can do it in PHP with almost no code wasted on structure. Java wins the structure fight. You can make things as structured as you like, to the point of absurdity. Ruby on Rails, right now, represents the best compromise between structure and simplicity for a huge portion of the Web application problem space.
I started building the last application I wrote in Java before Ruby on Rails existed, but if I had to do it over again, I’d still use Java. On the other hand, for the content management system/knowledge management system I’m working on right now, Ruby on Rails is the better choice. Django would certainly have been fine as well, but I picked Ruby on Rails, and I’m not regretting it. The idea that one language or platform can be all things to all people or somehow makes everything before it obsolete is absurd. Fervor can be good thing in that it can encourage productivity, but don’t let it blind you.