Bundled software versions with Mac OS X

Mac OS X ships with a large quantity of bundled software. A common complaint is that it comes with an old version. As a developer, I have to take into account that people use older versions of both the OS, and thus very old versions of bundled software. Let's look at Pyhton and Java, that comes with Mac OS X.

Python versions bundled with Mac OS X
You can easily check which python versions are bundled with Mac OS X at http://www.opensource.apple.com/darwinsource/. So far, Apple never updated the Python version using updates (e.g. Mac OS 10.4.0 and 10.4.9 contains the same version of Python). Surely this is done for quality assurance. And users who need a newer version, simply install it with MacPorts or Fink.

For fun, I also added the release dates of both versions. As you can see, Mac OS X typically ships with a version a couple of months old, but since it is not upgraded with Mac OS upgrades, the age grows to over 2 years old just before the next major version of Mac OS X is released. Also, Tiger was disappointing, since it came with Python 2.3.5, even though 2.4 was released on 30 November 2004, five months before Tiger.

Recent versions of Mac OS X come with multiple Python versions (this table only lists the most recent version), but so far no Python 3 version has ever shipped with Mac OS X, not even as a non-default version. This despite that Python 3 was already released on 3 December 2008, and Python 3.3 (which makes the transition from Python 2 to Python 3 easy) was released on 29 September 2012.

Java versions bundled with Mac OS X
Unlike Python, Apple does not directly bundle Java with Darwin (the OS), but as separate Java packages. In practice, this means that is less tightly coupled with the Mac OS X version, and updates of Java version happen disjunct of Mac OS X updates. Java Packages are typically updated using the Mac OS X Software Updater (that also takes care of security updated and minor Mac OS X updates). In addition, developers can download Java documentation that is not standard included with the OS.