But then there is "testing", and "unstable" too which gets newer packages quite often. I personally run "unstable" as my main development machine and have for many years. Even "unstable" is very stable, but might require some manual work once-a-year or so, with a solution often easily found by some google-fu.
Then there is also "experimental", which might very well have broken dependencies etc.
The cool thing is you can run stable, but then pick some packages from unstable using what is called apt-pinning. This way you can get a rock solid base, but use newer packages of some software. Best of both worlds!