iTunes 10.5 Beta is 64-bit, and... Cocoa?
The beta version of iTunes 10.5 released to developers last week is the first version of iTunes to run in 64-bit mode. The distinction is perhaps a bit minor for an app like iTunes, but has been the source of much discussion over the years. What's perhaps of more significance is the belief that this 64-bit support must mean that iTunes has been ported from Carbon to Cocoa, though that line seems to be rather blurred.
The primary advantage afforded 64-bit applications is the ability to address more than 4GB of memory which can be a distinct advantage for applications which use large data sets. Adobe, for example, received some criticism in 2008 that their Photoshop products were slow to adopt 64-bit mode on the Mac. 64-bit Photoshop for Mac ultimately arrived with CS5.
The reason for the long delay was the fact that Apple dropped support for 64-bit mode in Carbon back in 2007, requiring developers to port their existing Carbon applications to Cocoa in order to take advantage of 64-bit mode. This primarily affected older applications such as Photoshop and iTunes which had existed prior to Mac OS X and were still using Carbon, Apple's legacy API. Meanwhile, Cocoa was Apple's native API for Mac OS X and offered some additional user interface advantages. For better or worse, many users saw Cocoa applications as superior to their Carbon counterparts due to historic baggage of many of the Carbon applications.
The latest iTunes 10.5 developer beta does run in 64-bit mode in Mac OS X Lion, but still runs in 32-bit mode in previous versions of Mac OS X. Discussions in the forum, however, point out that there is still some debate about the "Cocoa vs Carbon" status. Despite the changeup, iTunes reportedly feels very similar to the previous versions, and doesn't come with dramatic changes. So those hoping for a complete revamp will be disappointed.
A couple of notable changes, however, include the fact that iTunes for Lion now supports Full Screen Mode and also returns the close/minimize/maximize buttons to their usual horizontal location.