[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