Spring Is Dead to Me
Box o’ Springs by GFPeck is licensed under CC BY-ND 2.0
It speeds up development by keeping your application running in the background so you don't need to boot it every time you run a test, rake task or migration.
I want to focus on the first assertion in the description above…
It speeds up development
I should begin by saying that I love the idea of Spring. As a developer, any tool that could increase my productivity deserves my attention. In practice however, Spring has burned me more than its helped me.
For lack of a better explanation, Spring is too magical. Your workflow doesn't need to change at all. It runs completely transparently, which makes it difficult to remember that it is running. So when something breaks… it's difficult to remember that Spring might be the culprit.
At Collective Idea, we practice test-driven development so I won't deny that Spring has saved me thousands of seconds in application boot time when running the test suite. Unfortunately, all of those savings are lost as soon as a pair spends a half hour to diagnose some elusive configuration bug.
In the past, I've chalked it up to inexperience with Spring and have convinced myself that the sun is shining on the other side of the learning curve.
But I'm done. I've wasted enough time trying to save time.
$ echo "--skip-spring" >> ~/.railsrc