For those unfamiliar, Debian releases come out about once every two years, at which point all software in Debian's repositories is frozen at its current version. Software receives security updates between releases, but nothing else.
I personally think this is wonderful, and I would absolutely use Debian if I was interested in switching to Linux (which I'm not, at the moment). Constant change is inherently frustrating, even when the changes themselves are a net positive (they often aren't). Debian's approach provides a level of reliability and consistency that is sorely lacking in most modern software.
So, while I also recommend Debian, I do so only if you too agree with the above paragraph.
If you only enable stable, then you are signing up for very outdated software.
If you add `testing`, you get quite a ways towards having an up to date system, while still not having to worry too much about odd bugs.
Adding in `unstable` gets you about as close to up to date as you can get without compiling the source yourself.
Experimental is good to keep around, but in my experience most things skip it and just hop straight to unstable.
The beautiful thing about Debian compared to Ubuntu is that it actually is a rolling release system. Ubuntu users have to worry about what version they are on. With Debian, you set what track you want to follow and just remember to install updates as they become available.
Because it's a rolling release, you're much more likely to catch small issues and be able to isolate what package is causing the problem, as opposed to doing a thousand package upgrades at once and then being snagged because one of them had an install issue.
Debian Testing is an option, but would you recommend that over a distribution focused on rolling releases, like Arch? From my vantage point (which isn't particularly good, as a non-Linux user myself), most of the Debian project's effort is concentrated on producing Debian Stable. Case in point, security updates for Debian Testing are sometimes significantly delayed.
Everything about Debian except the `stable` repository is explicitly a rolling release.
> Debian strongly advises against mixing repositories
Certainly you wouldn't want to add in the other repositories if you're aiming for Debian Stable type guarantees.
This is the `sources.list` file that I've been using for nearly a decade:
deb http://deb.debian.org/debian/ testing main non-free contrib
deb http://deb.debian.org/debian/ unstable main non-free contrib
deb http://deb.debian.org/debian/ experimental main non-free contrib
And then I have a preferences file that prefers testing to unstable to experimental (actually three separate files in the preferences.d directory, but I'd think you could combine them. Package: *
Pin: release a=testing
Pin-Priority: 700
Package: *
Pin: release a=unstable
Pin-Priority: 650
Package: *
Pin: release a=experimental
Pin-Priority: 600
It may not be advised, but it works pretty well. Sometimes you have to get a bit creative when you go to run `apt-get dist-upgrade` and it wants to delete half your system, but usually you can just manually install individual upgrades (`apt-get install <x>`) until it unwedges itself.then unstable was a really rolling release system, in my experience more stable than testing(understandable quirk as is was used by mantainers to prepare the next release).
At that point I decided that I'd rather use arch then unstable debian, but unstable was quite similar regarding package candence and stability.
Maybe Debian is on par now. Old software can be worked around with containers and third party apt repositories. I often do that on Ubuntu too.
Try it with the xfce or mate flavours.
As others have pointed out, common reasoning behind picking a distro include: hardware requirements, existing ecosystems, end user, package management, configurableness, security, long-term support, ease of learning, driver support, core dev team’s opinions, funding, etc.
Beyond that, increasingly common to see Ubuntu used in enterprise and the dev tasked with dealing with the issue may not have the authority to decide to use Ubuntu or not.