On May 19, 2008, at 4:33 PM, Alex Kac wrote:
2) Many of the examples you're looking for are not so much in people's apps, but in AppKit itself meaning that AppKit would have had to be far more complex, big, and clunky if not for this feature.
Don't underestimate the utility of being able to make use of Objective- C's dynamic features outside of the core frameworks like AppKit and Core Data.
There's a long history in the Cocoa community of building new dynamic functionality atop the core frameworks. For example, NSUndoManager itself only became part of the Foundation framework with Mac OS X. Prior to Mac OS X, it was EOUndoManager and was implemented in the Enterprise Objects Framework (EOF), which was a separate product.
(EOF was originally created by Jack Greenfield, of current Microsoft "Software Factories" fame, while he was at NeXT.)
One of the things I did several years back was implement a mechanism whereby -can<Action>: methods were invoked automatically by a generic - validateMenuItem: implementation. It can be done in Java or C# (I actually did it for a Cocoa-Java application) but it was much easier to prototype and get the bugs out of in Objective-C.
Also several years back -- on Jaguar, before Cocoa bindings existed -- I implemented my own bindings-like mechanisms atop key-value coding and property change notifications. (That I did in Objective-C.) Again, this was very easy thanks to the combination of rich information at runtime and a type system that didn't get in the way.
So while the dynamism and reflection supported by Objective-C are useful to the frameworks that make up Cocoa, they're also very useful when writing software atop Cocoa. Using the same design patterns and functionality as the frameworks helps ensure your own software will fit in well and be approachable by those who work on it next.
-- Chris _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]