I don't see why a hybrid 64-bit Carbon-Cocoa program is weird. In fact, it seems to be Apple's recommended transition method for Carbon developers.My guess: it’s still Carbon-based, even if third-party Carbon apps can’t be 64-bit. Maybe even some weird hybrid. But a new UI will come eventually.
http://developer.apple.com/library/...n.html#//apple_ref/doc/uid/TP40004381-CH1-SW1
It's always portrayed that Carbon never got 64-bit support, but based on Apple's documentation, it's not an all or none decision. It seems like most Carbon APIs were transitioned to 64-bit, just that Carbon UI APIs remained 32-bit, so it isn't possible to make a completely Carbon 64-bit application.Most APIs in Mac OS X v10.5 are available to both 32-bit and 64-bit applications, but some APIs commonly used by Carbon applications are not. In particular, the APIs used to implement a Carbon user interface are generally available only to 32-bit applications. If you want to create a 64-bit application for Mac OS X, you need to use Cocoa to implement its user interface.
http://developer.apple.com/library/...t.html#//apple_ref/doc/uid/TP40004381-CH3-SW1
It seems like the only requirement for Carbon applications to be 64-bit, is that they implement their UI in Cocoa. The back-end code can largely remain unchanged. Redoing non-UI Carbon code in Cocoa is a "one step further" option, but not necessary for 64-bit support.Because most Carbon UI functions are not available to 64-bit applications, you have two possible development paths. You can continue modernizing and improving your Carbon UI with the expectation that your application will remain a 32-bit application for the foreseeable future. Apple plans to support and maintain the 32-bit Carbon Human Interface Toolbox, although Apple will not be adding any significant new features to these APIs. The other development path is more challenging and also potentially more rewarding in the long term. You can develop a 64-bit version of your application, using Cocoa to implement your UI. As you do so, consider going one step further and implementing other parts of your application using Cocoa.
64-bit iTunes could presumably be done just like this. A new 64-bit Coca UI, admittedly one that looks the same, and the existing Carbon back-end spruced up with 64-bit compatibility. This method actually makes the most sense to save work since Carbon code seems to be considered easier to port to Windows than Cocoa, so the 64-bit Carbon backend can be shared between OS X and Windows and only the UI needs to be different/rewritten for each platform.