For those unfamiliar with OS X programming, Apple actually provides two different APIs for system-level programming: Cocoa and Carbon. Cocoa is based on Objective C, has more features, and is the preferred method of writing OS X applications. Carbon uses a more traditional C API, is generally lower-level, and is intended to ease the process of porting software from other platforms.
After evaluating both alternatives I decided to go with Carbon. The .NET CLR includes a facility for calling C functions in shared libraries, so I can write my platform layer without the need for bridging tricks or third-party libraries. And the more traditional API style makes it a little easier on people trying to develop Windows and Linux ports in parallel (like me).
If you want to learn more about Carbon, Learning Carbon from O’Reilly is a great place to start. If you are interested in .NET programming for Cocoa, take a look at Cocoa#.
Comments
Carbon deprecated.
The problem with Carbon is that it is no longer supported in 64 bit, and is therefore deprecated. If you are “just starting out,” I would suggest that you reconsider your carbon decision
Re: Carbon deprecated
Thanks for the information; I saw that announcement as well. When I get back to my game development (I’m currently trying to finish up a new version of Premake) I will try to figure out a Cocoa-based solution and update this guide accordingly.