Most people like spring and what it brings to Java web applications. I don’t. Don’t get me wrong, I think it has made Java more popular, extended the servlet container spec and some key concepts were excellent for their time. Full credits.
But now, version 3.0 is showing ageing problems – simple things are complicated, tries to do everything ie. hook into security providers, different databases, different architectures of systems (API-based, traditional MVC apps, web 2.0 apps (ajax-based)). It just feels like it has tech-debt internally since sometimes to get simple things to work there is
a) no explicit documentation
b) other frustrated users (stackoverflow.com will confirm)
I feel this way with Hibernate sometimes, although hibernate tackles a much more specific problem (O/R mapping) which allows it to do one thing well vs. many things ok. This is also the same reason i’ve stopped buying text-books on languages. Sure it’s good for a deep-dive into the language and gives you more background etc. But if you already know the concepts (eg. blocks / functional programming / closures) then you are mainly learning the syntax of the language, and it’s idioms which define it.
Nowadays, I find it easier just to rip into the language, researching (eg. railscasts) and learning as you go. I find actually doing the development, feeling the pain and the joy when I learn how to cut 5 lines of code into 2 using a recommended idiom, distills it in my mind better. Kinesthetics unite.