Security and/or bug fixes, new features… all those are very common in newer versions of applications—and this obviously includes the operating system itself. A desktop OS should provide a way to painlessly update your system (and possibly your applications) to the latest available versions; the main reason is to be safe to exploits that could damage your software and/or data.
Both Mac OS X and Ubuntu provide tools to keep themselves updated and, to some extent, their applications too. These utilities include an automated way to schedule updates, which is important to avoid leaving a system unpatched against important security updates. Let’s now drill down the two OSes a bit more.
Ubuntu shines in this aspect thanks to the centralized packaging of software. Given that all available applications are packaged by the developers and put in a common server, the apt package manager is able to automatically update all of your installed packages to the latest available versions. This also includes keeping track of added dependencies so that an update will not (generally) break any of the existing stuff. In some sense, you can consider that there is no “core OS”: once a new program is installed from the repository, it is integrated into the OS in such a way that it is indistinguishable.
Unfortunately, if the application was not explicitly packaged for Ubuntu, it is not possible to use apt (I mean Synaptic, the tool you’ll always work with) to keep it up to date. In that case either the program itself provides its own updating method or it simply provides none at all, leaving the user on his own to update it whenever he wants/remembers. We saw some examples of applications not made for Ubuntu in the previous post, which basically includes commercial software.
Mac OS X is slightly different. Similarly to Ubuntu, it has a tool that can update your system as well as applications, but these are restricted to Apple ones such as iLife. Third-party applications need to provide their own updating method, and most of them actually do1. For example, taking Adium X again: this program checks on its startup if any newer version is available and offers the user to download and install it in that case. This is completely decoupled from the system, which makes it suboptimal. It’d be great if the OS could keep everything up to date as long as the applications provided the required information to the update manager.
So… it is clear that Ubuntu wins this specific comparison as long as you always use prepackaged software. Mac OS X, while not as clean, is good enough because the OS is able to “fix” itself and most third-party applications already provide custom update methods. In the end, the user will not notice the difference.
I don’t know if it is possible for such programs to “hook” into the system’s update manager. This sounds reasonable and, if indeed supported, could make this point moot. Don’t hesitate to correct me in that case! ↩︎