Jason Hunter discusses why Java is ready to lose mind-share to a new technology, such as Ruby On Rails:
Remember back: Java wasn't as "good" as C++. It did less; it ran slower. Its sole advantage was simplicity -- a language easier to write and deploy -- and over time it got more featureful and faster.
Java's viewed as solid and stable, mature enough for the most stodgy business folks. That leaves a large soft underbelly for a technology intended to help small teams (10 or fewer) who just want to make a site that's good enough without paying a high price in mental effort.
Having seen the Rails demos where a blogging app is put together in 15 minutes, I tend to agree that a simple web app framework suitable for the enterprise could gain significant momentum in the next few years. Whether Rails is that framework, I'm not sure.
Regardless of which specific framework becomes dominant, I think a lot of the benefit comes from one factor: Rails uses our own coding conventions to its advantage. For example, previously it was only by convention that you'd use the same names for your objects and your database tables. Rails leverages this convention so you don't have to declare your class members if the object is database-backed: you get the columns of the table, in a suitable format. When you have unique identifiers used as foreign keys, everyone knows that they represent a link between objects, but now the framework does too!
These technologies are definitely something I'll have to play around with some more. I suppose I could always rewrite this blog in just 15 minutes...