Java is quite possibly the worst technology choice for a web application. I’m growing tired of the constant need to kill server / compile / restart server. Maybe it is the fact that I’m being forced to use Resin? Maybe not. But, in general, Ruby on Rails is appearing more and more enticing the more I use Basecamp.
Do I still see relevance in Java? Sure, but I’m starting to grow tired of Servlet 2.4 and JSP 2.0. Sure, the world could easily evolve a more straightforward alternative like Groovy or Jython, but these two technologies seem very derivative. What is it that I’m looking for? Not having to wait between ideation, implementation, and testing. Without the fancy words: I’m sick of having to restart my servlet container, or wait for my code to compile just to add a Date object to my request. Page compilation, configuration nastiness, trying to ensure that one of my 12 XML configuration files for Resin, Hibernate, or Spring isn’t screwed up…..this all adds up to an incredibly inefficient work day (early morning).
These problems are not specific to Java, as much as they are just symptomatic of “Enterprise Application Development”. Java is good for problems it was meant to solve, but creating an agile user interface just wasn’t one of them.