For me the great advantage of Java is the organization it forces. It's a shit to write that much code to make simple tasks, but if you are working with a 3000000 person team, that extra time coding making packages, classes, type declarations, yadayada,  will result in a much easier to mantain   group work. This said, i do believe java is too complicated, for medium to small projects, but that book stack is a bit exagerated, why do you need 3 books on struts and 2 on jsp? Is it that hard? =)