You have heard of “Spaghetti code” if you’ve studied procedural or scripting-based programming. A similar thing can happen in Ruby with it’s polymorphism and the super-dynamic behavior. Ruby on Rails, combined with many plugins, can become a frustrating “Lasagna” sometimes with all these dynamic classes, dynamic instances and dynamic behavior. All this can be hard to debug and follow. (Thankfully we have a good debugging environment now for rails.)
Chad Fowler recently wrote “I love the tricks you can do with Ruby. method_missing, const_missing, autoloading, and their friends make really powerful things possible. But they do so at a price. When something goes wrong in a piece of code that relies heavily on one of these tricks, it can be much much harder to track down. So the decision to use such a tool shouldn’t be taken lightly. These are power tools. Used effectively, really cool things can happen. Used incorrectly, you can easily find yourself limb-less and bloody. So when you decide to use one of these power tools, you have to ask yourself: is it worth the risk?”
Posted on October 20th, 2007 by dysinger
Filed under: @work