[Pythonmac-SIG] I think I'm in buzzword hell...

Jacob Kaplan-Moss jacobkm@cats.ucsc.edu
Fri, 18 Oct 2002 17:32:24 -0700


At 5:52 PM -0500 10/18/02, Skip Montanaro wrote:
>Cocoa, Carbon, Macho Python, MacPython, AquaTk, Frameworks, ...

I don't know of any centralized site for definitions (especially 
because some terms were invented on this list), but I'll try to 
summarize for you...

Cocoa: A set of object-oriented frameowrks for native Mac OS X 
development that OS X inherited from NeXT.  Cocoa is writian in 
Objective-C, but bindings for other languages are available, 
including the PyObjC module for Python.  See 
http://developer.apple.com/cocoa/.

Carbon: APIs for developing for Mac OS X or for earlier Mac OS 
versions with the Carbon libraries (MacOS 8.1 and later).  Basically, 
Carbon is the what's left of the old-style ("Classic") MacOS 
development APIs that are available on both OS 9 and OS X.  Mac 
versions of Python have a fairly comprehensize set of bindings to the 
Carbon APIs (check out the Carbon module).  See 
http://developer.apple.com/carbon/.

(And just to be complete:)

Classic: the APIs available on pre-MacOS X systems.  These APIs are 
no longer supported under OS X, but the Classic emulation layer built 
into OS X can run most apps targeting Classic.

Frameworks: MacOS X's cool way of providing resources, inherited from 
NeXT.  Frameworks allow all files related to one resource to live in 
one place, so adding/removing frameworks is very easy.  Frameworks 
also allow things like transparent versioning and ease of updating. 
Cocoa is a set of frameworks (that live in 
/System/Library/Frameworks/), the Java that Apple provides is a 
framework, QuickTime is a framework...

AquaTk: the (still-experimental) Framework build of Tk which allows 
Tk to use native Aqua widgets and run on MacOS X without an X server 
installed.

Given all that, MachoPython and MacPython are two different "flavors" 
of Python available on MacOS X:

MachoPython: Mach-O is the MacOS X-native binary file format 
(inherited from NeXT, I belive), so MachoPython is the MacOS X native 
version of Python, which can be built from source with Apple's 
developer tools, and basically provides a version of Python which is 
just like the Python you'd get on any *nix.  MachoPython can also be 
built as a Framework (see below) which is more NeXT-like (and allows 
some other nifty things).  This version of Python runs only on MacOS 
X, and does not include the nifty Mac-only stuff that MacPython does.

MacPython: this is the Mac-specific port of Python, which requires 
CodeWarrior to build, and includes all the Mac-specific modules (the 
Carbon package, among others) and the nifty MacPython IDE.  This 
build of Python will run both on MacOS X and on MacOS 8.1 - 9.2.

I'm sure I made some mistakes in the above, so more knowledgable 
folks than me -- please correct them!

Hope this helped,

Jacob