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

Steven Majewski sdm7g@mac.com
Sun, 20 Oct 2002 15:11:51 -0400


On Friday, October 18, 2002, at 08:32  PM, Jacob Kaplan-Moss wrote:

... Good summary: just a couple of additions:

>
> 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...
>

Also (I hope I've got the Framework/Bundle distinction right!) :
Frameworks are packaged in a Bundle (which replaces the old Classic Mac
resource forks with a directory with a special structure.) Applications
are also packaged as a Bundle. ( XXX.app is actually a directory with a
bundle bit set so that the os treats it like a single file in some cases.)
A lot of the AppKit and InterfaceBuilder/Nib functionality seems to be
dependent on running out of an Application Bundle -- this was one reason
it was hard to get the earlier pyobjc to do a real app with menu's and
all of the user interface stuff.



> 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.

mach-o is indeed inherited from NeXT --  NeXT has it because it's part
of the mach microkernel that underlies both OSX and NeXTStep. OSX, like
NeXT is a BSD derived unix, but there are a few differences that are largely
due to the mach subsystems. Along with mach-o comes a rather different
dynamic linking scheme than bsd's a.out / dl* ( or linux elf, et.al. )
( And on 10.1 there were quite a few places where the bsd man pages were
not yet fixed to indicate that they were incorrect for OSX -- I hope that'
s
finally been fixed in 10.2 ! )


-- Steve Majewski