My copy of Mac OS 10.4 arrived Friday, right on schedule. I spent the weekend backing up my laptop, doing a clean install, and then restoring my data, which also fixed the problem I've been having where applications take a really long time to launch. No problems so far and performance is noticeably faster. You gotta love an OS where each update makes your existing hardware faster.
First impressions: Spotlight searching really is as fast as they claim, Dashboard is neat in a gee-whiz sort of way, but I'm not sure how much I'll actually use it. The built-in dictionary and thesaurus are welcome additions. I'm sure with time I will come to use smart folders in both the Finder and Mail. But for me the real juice in this version is underneath the hood in the development tools.
I've had a few secret hopes for Tiger, for things which have not been announced, but might be slipped under the door. Three of them were: NSOutlineView gaining support for varying row height (to make it easier to write applications like OmniOutline), improved Cocoa support for QuickTime, and being able to round-trip Nibs to text format and back via nibtool. Well, two out of three ain't bad. The NSOutline now supports row height via it's delegate method heightOfRow:ofItem:, the QTKit framework provides excellent support for QuickTime media from Cocoa (and thus from PyObjC), but alas, nibs cannot be created from text input via nibtool (or any other tool that I'm aware of), although the nibtool man page does at least list this deficiency as a known bug.
But there is more good news in the Core Image, Core Audio, and Core Data frameworks. Core Image gives fast, powerful graphic processing and pipelining tools for both still images and video. Core Audio does the same for sound. And while Mac development in the Model-View-Controller (MVC) has been supported via Interface Builder (View), NSArrayController and NSObjectController (Controller), now with Core Data the Model portion is fully supported as well. Bill Bumgarner has a welcome example on his blog of how to use CoreData from Python.
But wait, there's more! There's an NSTreeController to go along with the NSArrayController and friends. There are hooks and documentation for many more of the Apple-supplied applications, including the new Sync Services. And PyObjC now has wrappers for Core Data, Automator, XGrid, and Sync Services. And that's not to mention the improved WebKit, new features of NSTextView, and much more. It's a great time to be a Mac developer, and being able to do all this from Python really ices the cake for me.