Java used to be my hero, ever since the day I learned it would manage memory for me, while still scaling to the heights demanded by the enterprise.
For 10 years, Java was my whole world. Servlets, old EJB, new EJB, JSP, JDBC, Spring, Hibernate, JSF, and all the rest of it. Keeping up with enterprise Java was a chore. I'd learn to program EJB 1 and by the time I finally figured it out, they were pushing EJB 2. Or I'd learn Entity Beans or Struts, only to find nobody was using it anymore. Everything was a confusing mismash of competing APIs, old code, new code, multiple, dogmatic ways of doing the same thing with no good explanation. Finding help with this J2EE crap was a nightmare. Somtimes they'd just repackage or rebrand the same technology for no good reason. Hibernate? EJB3? J2EE? JEE 5? WTF?
One day, in spite of my boss's mandate that we were strictly a Java shop, I started to rewrite a struggling project in Ruby on Rails. What an eye-opener. What took months and 5 people now took days and 1 person. Everything I needed was there, but without tons of redundant, repetitive lines of boilerplate code and XML -- and without endless compile-deploy-restart cycles.
Today I run Linux servers, program in Ruby, have abandoned JBoss, and use Apache and Mongrel with MySQL databases. I ditched Eclipse in favor of TextMate. I love working with this stuff. I feel truly sorry for people wo are forced to limit themselves to Java technology.
(Sorry for the too-obvious, too-easy parody. But I couldn't help myself -- it was the natural response to someone praising the virtues of Java during a discussion about a dying, irrelevant company.)