is an O'Reilly stand selling Unix and Apple books outside the conference room. Later I will
learn that they are discounted by 25%, but by then it will be too
late. There is a "free" CD on each chair, containing the latest
version of the Apple Developer Tools.
There are maybe 100 people, just over half the seats are
occupied. I overhear someone observe that there is only one woman.
An unusually low male to female ratio for an Apple event, apparently.
The presentation will be delivered using Apple hardware, but
initially there is a problem with feedback from the radio mic.
System Architecture and UNIX
The first presentation is an overview of the OS X System
Architecture. They talk about how Quartz uses PostScript, and
how well Quartz Extreme integrates with hardware acceleration.
The go on to talk about the wide selection of languages available
to the developer, and how the POSIX compatibility is "mostly done",
and that Apple are now committed to Open Standards. For graphics /
UI development there is OpenGL, GLUT, X11, and of course
Carbon and Cocoa. They noted that AliasWavefront used X11 as
a way to rapidly port Maya to OS X, and went on to get 20% new sales
on the platform.
There was mention of Fink, which pretty much got
an official recognition, despite Apple admitting that they were
looking into doing their own BSD style "Ports" system.
Developers moving from UNIX need to be aware that HFS (native
file system) is case insensitive (but case preserving), and that
resource forks are still supported, but should be thought of as
Developers can of course use ".dot" files for configuration, but
that OS X comes with its own XML based system for this.
There was talk about Frameworks, and all the places that they can
live. For example Safari
has two unfinished frameworks, "webcore" and "webscript", which are
currently bundled into the application. When the APIs are stable
Apple will move these frameworks into /System/Library/Frameworks/
where they can be used by everybody.
Java 1.4.1 is now
available for Mac OS X. Apple's Java engine is now based on Cocoa,
which is closer to the Java model than Carbon, which was the
framework 1.3.1 was written with, and so the Java VM is tighter and
less bloated (300 implementation classes as opposed to 900
previously). 1.4.1 also has better Safari and Keychain integration.
The new JVM also has the new shared system library technology, which
reduces the overhead in running multiple Java apps on one system.
Apple are clearly very happy with the new JVM, with claims that it
is "the best JVM implementation in the world".
Cocoa, the Objective-C API for OS X is a "proved" RAD
environment. The Apple developers use it, and Project Builder to do
their internal development, and the quality and quantity of the
output of the software division of Apple has measurably increased.
On a personal note I was very sceptical about Objective-C, but
have to say I was impressed by what Apple had to say about this. A
lot of people claim this or that about whatever development
language, environment, or methodology, but very few have actually
done any genuine productivity studies to back up their claims.
Anyway, they talked a lot about how Objective-C worked, but it's
not something I want to try to go into details here - I wrote a lot
of notes, but I don't think it would make very good reading. If you're
interested there are lots of good books. The demo was very very
impressive, in that they wrote a simple application from scratch in
front of us, then delved into the application bundle, and changed
one of the GUI widgets from a text entry box to a slider-bar and the
app worked with the new UI without recompilation.
The final presentation was on AppleScript. Apple
considers AppleScript to be a first class citizen of the developer
tool world, and something that you can use to write real
applications. It's not just Yet Another Scripting Language. It is a
Mature Language that they have done a lot of research into and done
a lot of work on and in.
You can embed shell scripts in apple script, and you can script
Java apps with it. Basically any GUI app on the Apple platform
"supports" AppleScript, because AppleScript support is built into