This may well be true. I don't have any corporate Java experience.
However I do believe from my limited Java experience that it's nearly impossible for a bug to occur that the average programmer can not trace back to it's source using more less standard methods (race conditions and other concurrency nastiness notwithstanding). In Ruby on the other hand, real head scratchers can and do occur on a regular basis that require a higher level of debugging skill than some mass-educated code monkeys are capable of.
It's just a different way of doing it. In java you ctrl-b your way into method calls using your IDE. In ruby (assuming it's not C code or eval'd code) you use ruby-debug. Set a break point and start stepping. In minutes you'll stop scratching your head.
I've seen the "code monkeys" you speak of hit a brick wall with spring. Java the language simply pushes these problems into it's tools. I've spent countless hours getting my java tools to play nice. I don't have that problem in ruby. There really is a law of conservation here.
No I'm talking about the crazy bugs that happen when you do soemthing like silently redeclare a method from deep in the framework and get no warning because Rails runs with warnings off. Or when two popular well-tested gems happen to add the same method to a core class with slightly differing implementations.
Usually once a year or so I run into one of these mind-bending bugs where something breaks in a bizarrely tangential way that simply can't happen in Java.
yeah, that happens to me too, about once a year, and worst case I spend a few hours on it. Let's say it's 5 hours a year I spend on this sort of problem. That's nothing compared to the amount of time I spend getting maven and spring to do what I want. Hell, it's far less time than I spend getting my IDE to run my projects!
However I do believe from my limited Java experience that it's nearly impossible for a bug to occur that the average programmer can not trace back to it's source using more less standard methods (race conditions and other concurrency nastiness notwithstanding). In Ruby on the other hand, real head scratchers can and do occur on a regular basis that require a higher level of debugging skill than some mass-educated code monkeys are capable of.