Andrew M. Duncan
Date: Tuesday, October 28
Time: 10:45am - 11:30am
Location: Stevens Creek
With the introduction of Apple's Mac OS X comes a new library called Cocoa: foundation classes and an application framework for improving developer productivity. Apple recommends that all new applications use the Cocoa library and associated tools. But Cocoa is based on a language unfamiliar to many programmers: Objective-C. This session will introduce Objective-C to programmers who have some experience with Java, C++, or other object-oriented languages.
It has been said that C++ adds objects to C without slowing down the machine; by contrast Objective-C adds objects to C without slowing down the developer. Although Objective-C adds just a few constructs to C, the extensions are so chosen as to make natural a wide range of design patterns and program architectures. In many cases the design of an Objective-C program will be considerably simpler than the analogous ones in C++ or Java.
In brief, Objective-C is very dynamic--that is, program properties may be left unspecified until runtime. For example, method calls are dispatched based on what methods an object has (at runtime) rather than what it declares (at compile time). Programmers can add methods to already-existing classes without subclassing, customize forwarding of unhandled messages, modify the inheritance hierarchy at runtime, and even manipulate the message dispatch mechanism itself. This session introduces the simple syntax that Objective-C uses to express these concepts and the rich semantics that result.
Adds Duncan, "This session focuses not on the nuts and bolts of writing code, but the conceptual motivation for creating (and using) a language like Objective-C that rejects some of the long-held truisms about 'proper' programming. Beginners with Objective-C will be able to use it, and hence the Cocoa libraries, for their projects. More experienced users will learn better the 'why' of programming with Objective-C."
Download presentation file