"And God said, 'Let There Be Light!' And there was Light. And it was good." But it lacked a clean separation of concerns.
Well, that's not quite right.
An elevator pitch for Tapestry is hard because there is so much misinformation about Web Applications.
Everyone think's they're easy, becase everyone's doing 'em, right?
Developers are so mired down in getting things working with Servlets or Struts they can't imagine that there's a better way. There is.
Lately, I've been going with "the easiest choice is the right choice". Or:
Software development hasn't gotten harder in the last decade ... it's outrageously tight "first to market" schedules and ever escalating requirements that have been putting the pain on developers. People think web applications are easy, because everybody's doing them, but there's a lot of enterprise-critical applications being held together with duct tape and chewing gum. There are so many things wrong with the web application development model: that all developers are fully equal, that Java developers can do HTML (or even choose colors), that what works in a prototype will work in a full scale application. Tapestry's component approach takes on all of these issues and more: it lets the Java guys do Java, let's the HTML guys do HTML and lets everyone work together sanely. It provides a standard approach to all the issues, which keeps every developer from becoming the "lynchpin" of their little code-fiefdom. It keeps simple things simple, and makes complex things simple as well. With Tapestry, when you choose the easy option, you aren't screwing yourself in the long run: the easiest approach is usually the best approach, by design. Tapestry doesn't get in the way of developers, it liberates them, helps them, and keeps them focused on the domain issues, and lets them ignore all that annoying plumbing.