A library of objects
A set of development tools
An object-oriented programming language and support library
The Objective-C language is a programming language designed to enable sophisticated object-oriented programming. Objective-C is defined as a small but powerful set of extensions to the standard ANSI C language.
Objects, Classes, and Messaging
The Objective-C language defers as many decisions as it can from compile time and link time to runtime.
Why Objective-C?Objective-C is a fundamentally simple language. Its syntax is small, unambiguous, and easy to learn.
Objective-C is very dynamic.
Objective-C supports an open style of dynamic binding, a style that can accommodate a simple architecture for interactive user interfaces. Messages are not necessarily constrained by either the class of the receiver or even the method name, so a software framework can allow for user choices at runtime and permit developers freedom of expression in their design. (Terminology such as dynamic binding, message, class, and receiver are explained in due course in this document.)
Dynamism enables the construction of sophisticated development tools. An interface to the runtime system provides access to information about running applications, so it’s possible to develop tools that monitor, intervene, and reveal the underlying structure and activity of Objective-C applications.