I'm surprised this has gotten positive responses. This really is an idea that seems to run counter to a lot of progress in the industry. The notion that repetition improves performance is <i>absolutely true</i>, but that doesn't mean that you can neglect your continued education just to repeat.<p>What's more, learning new languages is repetition of the process of learning. It's learning how to think about a problem differently (assuming it does, you may not learn so many new concepts going from Ruby to Python). Learning to turn over a problem and attack it from a new angle is an essential skill.<p>There is a terrible temptation that we as engineers all face: to stop learning. After all, our skillsets are broad enough and it's hard to justify all these skills we may never use professionally. But that's a dangerous negative feedback cycle, because all these computer linguists build on other concepts. Once you fall a generation behind, you the have that much larger a gap to cross when pioneers have carved out a market that you <i>do</i> want to enter.<p>Finally, there is this kind of hidden belief in hacker circles that functioning but inelegant code is somehow worthless. Of course it's preferable to have elegant, extensible code... but in a space where there are no alternatives any functioning code is better than no code at all. Even if you can't make beautiful code with a skillset, working code is 1000x better than no code at all.<p>P.S. Also, the reader should care what Zed Shaw thinks of their code? Facile understanding of the history of mongrel detected, captain.