Design Element
Comment on "Mike Lee on Cocoa"
by Mike Lee — Nov 08
implies that there's a reference point of some sort for something that is not broken

Yes, there is a reference point: the rest of Cocoa. By broken I mean inconsistencies within the interface, which are, by definition, parts of Cocoa that don't match the rest of Cocoa. Methods returning errors as other than NSError, Address Book returning its own collection class, the old DOM classes that tried to make Objective C look like C so it would match the DOM spec -- these are all things that would be perfectly fine by themselves, but which stick out like misaligned floorboards, ready to trip anyone new to Cocoa.

You mean tree controller

Right, my bad: NSTreeController

Such as what, kind sir? And I mean Leopard, specifically.

I think we see a lot of this in Core Animation, but since I've not worked with it for a while, let me give you a more boring example: Calendar Store.

Calendar events work great in demo mode, but in reality have a lot of surprising limitations. For example, attendees are read-only. It's happy convenience that in the demo they don't bother trying to set attendees, but in real life you almost always would. Certainly you can do this from the iCal UI, from Sync Services, and from AppleScript.

Or the Scripting Bridge. They always demo this with iTunes, which is the most thoroughly scriptable (and scripted) program on the system. Even now on the mailing lists people are running into limitations on using the scripting bridge in real life, with real programs. And these edge cases are not that edgy!

I don't consider setting attendees on an event to be an edge case, but clearly Apple does. So, I have to ask myself: what is this the edge of? The demo? According my most reliable source on the matter: signs point to yes.
Back to "Mike Lee on Cocoa"
Design Element

Copyright © Scott Stevenson 2004-2015