slb said:
To be truthful, Cocoa is a lot faster on the Intel Macs, and as I understand it from some Arstechnica discussions on the matter, the NeXTStep frameworks always fit better into the x86 mold than the PPC mold.
I think a lot of that is based on some false assumptions.
By that logic, NeXT's frameworks would work better on 68k processors than Intel processors, which wasn't the case.
What most people are seeing in comparing Carbon and Cocoa on PowerPC is not normal PowerPC aspects, but Altivec enhanced aspects. Carbon was introduced, developed and being adopted by developers at about the same time that Apple started it's move to the G4. Most of the foundational transition to PowerPC for the Cocoa code base was done with the PowerPC 604 and G3 processors. On pre-Altivec systems the Cocoa line had quite a few advantages over the original Mac OS, even in the area of games.
When looking at the same game on the same hardware, but with two different operating systems, the Yellow Box environment (which became Cocoa) beat Mac OS 8 (which would become the basis of Carbon). The game was Quake II, the system was a 300 MHz Beige G3, the results are
here.
Between the introduction of Carbon in the Spring of 1998 and the release of Mac OS X v10.2 in the Summer of 2002, Apple put a massive amount of development effort into Carbon while Cocoa was left pretty much alone over the same period. In fact when looking at Mac OS X Server 1.2 on both G3 and G4 based hardware, the only real advantage on the G4 systems was from the faster clock speeds. Making Mac OS X Server 1.2 (and 1.2v3) G4 compatible didn't mean that they took advantage of Altivec, or that Yellow Box apps would either.
It was only after Carbon had reached (in old Mac developer's eyes) an equal footing with Cocoa that Apple gave both environments equal attention (which brought back the view that Cocoa was given
special attention).
The main thrust of Apple's recent efforts with Carbon has been to integrate Carbon development within Apple's development tools (which has been resisted by some developers like Adobe). I believe (from what I've seen and heard) is that Apple's long term goal is to not have Carbon and Cocoa applications, but just have
Mac applications.
Bare Bones Software has shown that with a little bit of effort many of the things we now view as unique to Cocoa apps can be used within Carbon apps. Apple is working to make that
little bit of effort no effort at all in the future.
As for the underlying code, some day using C++ or Objective C won't effect the user's experience as much as it does now.
Sadly Apple has dropped continuing Java enhancements from Cocoa, but I think that had more to do with developers lack of interest than anything. Apple had very high hopes for Java when it was integrated into Yellow Box in Rhapsody. But developers in neither Rhapsody or Mac OS X devoted much time to Java based apps. Given that, Apple made (arguably) the right choice in moving on with Cocoa development without it.