Objective-C is a general-purpose, object-oriented programming language that adds object-oriented features and a dynamic runtime to the C language. It has historically been the primary language for building applications and frameworks on Apple platforms such as macOS and iOS. Developers commonly describe it as a C superset that mixes C syntax with Smalltalk-style message sending.
Key characteristics
- Language model: Objective-C extends C, so C code and libraries are usable directly from Objective-C sources.
- Messaging and runtime: Methods are invoked using a message-passing style rather than pure function calls, and much behavior is resolved at runtime by the Objective-C runtime library.
- Common constructs: The language uses @interface and @implementation for classes, id for a dynamically typed object pointer, selectors (SEL) for method identities, and @property for declared accessors.
- Modern features: It supports blocks (closures), categories for adding methods to existing classes, protocols (similar to interfaces), and automatic memory management options such as ARC in current toolchains.
Origins and development
Objective-C was created in the early 1980s and later gained prominence when it became the language of choice for NeXTSTEP and then Apple's developer ecosystem after Apple acquired NeXT. Over decades it evolved through compiler and runtime improvements and toolchain updates. In the 2010s Apple introduced Swift as a modern alternative, but Objective-C remains widely used for existing projects and lower-level system code.
Because it is a thin layer over C, Objective-C is frequently used where direct access to C APIs is needed or to interoperate with legacy code. Its runtime-oriented design allows patterns such as dynamic method resolution, introspection, and message forwarding that are harder to emulate in purely statically dispatched languages.
For developers new to the platform, Objective-C contrasts with newer languages by emphasizing dynamic dispatch and lightweight runtime extensibility. It can be learned alongside or bridged to Swift: many codebases mix the two languages and use interoperability features provided by Apple toolchains. Learn more about the language and ecosystem at Objective-C resources and Apple platform guides at Apple platforms.