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!
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.