However, that does not mean that you can always use packages from one of these two distributions in the other. If nothing else, Debian and Ubuntu do not always use the same package names, so you may have dependency problems if you try. For example, in Debian, you want kde-full or kde-minimal to install KDE, while in Debian, the package you want is kubuntu-desktop. The differences in names can be especially difficult to trace in programming libraries.
Another difference is the organization of online software repositories. Famously, Debian divides its repositories into Unstable, Testing, and Stable. There is also Experimental, but, since that is only for the roughest of packages -- the first drafts, you might say -- most users either avoid it, or else take only the smallest, most self-contained packages from it.
Packages that meet the minimal standards for quality for Debian are uploaded to Unstable, and then find their way into Testing. There, they stay until a new Stable release is planned, eventually undergoing a final series of bug-testing and being included in the new release.
In effect, the Debian system allows you to choose your own level of risk and innovation. If you want the very latest software, you can use Unstable -- at the risk of running into problems. Alternatively, you can choose Stable for well-tested software supported by constant security updates -- at the risk of missing out on the latest software releases. Since Debian releases can be irregular, sometimes, the Stable release is extremely old indeed.
Similarly, the internal organization of each Debian repository allows you to choose the degree of software freedom that you prefer. Unstable, Testing and Stable are each further subdivided into main (free software), contrib (free software dependent on other none free software) and non-free (software free for the download, but having a non-free license). By default, Debian installs with only main enabled, so you have to edit /etc/apt/sources.list if you want the other repositories.
All this is very different from the organization of Ubuntu's repositories. Instead of being organized by testing status, Ubuntu's repositories consist of Main (software supported by Canonical, Ubuntu's commercial arm), Universe (software supported by the Ubuntu community), Restricted (proprietary drivers), and Multiverse (software restricted by copyright or legal issues).
In recent years, these have been joined by Backports (software for earlier releases), and Partners (software made by third parties). For those who want the very latest, Ubuntu also has Launchpad, a combination of a project website and Debian's Experimental repository.
The result is a mixture of criteria. Ubuntu's Main repository is free and tested, while Universe is free but possibly untested (nor do you have any quick way of knowing which packages are untested). Restricted and Multiverse are proprietary, but their testing status is uncertain, while the freedom and quality of Backports and Partners packages has to be individually researched.
As with Debian's repositories, Ubuntu's show a concern with quality and software freedom, but, unlike with Debian, judging a package by either criteria is vastly more difficult.
Given that Ubuntu releases on a six-month cycle, using packages from Debian Unstable or Testing, on the whole Ubuntu's software tends to be less well-tested than a Debian official release based on Stable. In fact, from time to time, you can see complaints on the Ubuntu community forums about problems with particular packages.
Such complaints are far less common in Debian. However, to be fair, impatience with the slowness of official releases tempts countless Debian users into dabbling with Testing, Unstable, or even Experimental, and rendering their systems unusable.
For many users, technical issues are probably the main concern when choosing a distribution. However, for more experienced users, the communities and how they operate can be equally important -- and Debian and Ubuntu could hardly be more different.
The Ubuntu community is only six years old, but it long ago established itself as a very different place from Debian. Interactions in the Ubuntu community are governed by a Code of Conduct, which is largely successful in ensuring that discussions are polite and constructive. At the very least, the code provides a measure of expected behavior that can be referred to when discussions threaten to run out of control.