It is that 'works very well' part that I have been told to be weary of. On one hand, you could be integrating the positions by keeping track of time, in which case, like I said above, it'd work perfectly for that particular scenario with no instability. If you're doing it on the fly without your program necessarily saying 'this is a spring, treat it as such', then that's when you'd have to implement something like runge kutta or euler integrator (the latter being simpler and hwat I am using in writing this hovertank game).