This is in reference to my blog post here - http://optilude.blogspot.com/2006/10/mile-high-stack.html
I am pretty good developer, and I know Java well. I have a preference for Python (cut me some slack, at least it's not Rails) mainly because I'm actively involved in Plone. I also happen to think that the aspect orientation of the Zope 3 (note - 3; it's new, it's hip, no-one's heard about it) component architecture is beautiful, if you're familiar with that - maybe it influences my thinking.
But really, all I want is to get something done whilst not writing code that makes me feel dirty and sad. On our current project, we tried to evaluate the landscape of technologies and pick the ones that would be the most future-proof. Unfortunately, this wasn't a very big application (2-3 months of development) so we couldn't justify spending six months reading books and learning every framework under the sun.
We settled for JSF on Tomcat with MyFaces and Facelets, used Maven and Eclipse as our main tools, Junit, DBUnit and jMock were the primary testing tools, and we used Hibernate for persistence. We used our own service locators with JNDI, mostly because we didn't have time to investigate what other framework could handle this for us.
In terms of our experience, Hibernate is great (though iBATIS looks interesting). DBUnit is fairly good for testing Java code, less good for doing tests against the functionality in stored procedures or other cases where you need test data to varity from test to test, rather than have the same dataset for the entire testcase class (it's too slow to set up decent test fixtures). I like jMock.
However, I would really like for someone to have done this investigation for me. I need a book or set of tutorials, by a respected author who knows what he's doing, who can recommend a set of technologies and tools that work well together (for example, we used to use MyEclipse, which we couldn't make work well with Maven). The landscape is simply to big for me to justify a thorough investigation of every potentially interesting technology and every possible combination out there. I want someone I can *trust*.
Most of all, I just want to be productive. I'm willing to invest time up-front in learning, but I need to know what I'm looking at is not barking up the wrong tree. In my experience, most web applications are fairly similar - there is a front end that requires some kind of MVC, there is a services layer with business logic that needs to be discoverable and managable, and there is a persistence layer that needs to be flexible and offer appropriate abstraction. I'd like to believe that a containable set of patterns and technologies could meet this, but if there is such a conensus, I've yet to find it.
So - as in my blog - does anyone have a good book recommendation? :)