Reply to post:

One Windows? How does that work... and WTF is a Universal App?

Kristian Walsh Silver badge

You're a newcomer to Apple, aren't you?

HyperCard, QuickDraw GX, OpenTransport, MacApp, Resource Manager, CocoaJava and Carbon is next to go (no 64-bit support). I'm not going to include things like Dylan, etc, as nobody got a chance to ship applications based on those.

Pascal bindings were dropped in the mid-1990s, but so few developers were still using Pascal, and Apple had so few developers, by then that there was no real reaction. Certainly when I started at Apple in 1996, everything was C and C++.

Carbon is not a "smooth transition" to Cocoa. They are entirely different APIs. Carbon is the remains of the old Mac Toolbox, given a new graphics API and ported onto OSX. It's C-based, event-loop driven and the calls are procedural in that every call takes a handle - its only concession to OO principles is that the handles are now opaque, whereas in OS9/Classic toolbox you could dick around with the structs too.

Cocoa is an object-oriented message-passing framework based on bolting Smalltalk semantics into a C runtime. Its API and runtime model is completely different from Carbon, and you have to re-write your code to deal with it. Not even the resource files are compatible (Carbon NIB files were XML, Cocoa ones are a serialised object graph that is un-parseable and can only be created properly by Interface Builder).

Basically, Carbon was the price Apple paid to keep Adobe and Microsoft on their platform, but it's not a bridging API, it's a dead end. The big cheeses in software development who had mostly come from NeXT with Steve Jobs in 1996 wanted to ditch the Mac toolbox entirely and only use the NeXTStep-derived Cocoa framework for development, which would have been suicidal.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon