Command Palette

Search for a command to run...

position in category
#7

Object-oriented superset of C that adds Smalltalk-style message passing and a dynamic runtime. Inherits C syntax, primitives, and flow control while adding classes, methods, protocols, and categories. Designed for deferred binding and runtime introspection, so many decisions happen at runtime rather than compile time.

Apple adopted it when acquiring NeXT and made it the primary language for macOS and iOS development for decades. Cocoa and Cocoa Touch frameworks are built on Objective-C, and the language remains central to Apple platforms despite Swift. It still powers much of the system and third-party app ecosystem, and interoperates with Swift through the Objective-C runtime.

Key capabilities:

  • Full C compatibility: mix procedural and object-oriented code in the same project
  • Dynamic message passing and late binding via the Objective-C runtime
  • Categories and class extensions to add behavior to existing classes without subclassing
  • Protocols for defining messaging contracts and optional methods
  • Automatic Reference Counting (ARC) and manual memory management options
  • Tight integration with Cocoa and Cocoa Touch, Key-Value Coding, and Grand Central Dispatch

Developers use Objective-C to build and maintain native macOS and iOS apps, maintain legacy codebases that predate Swift, implement frameworks and shared libraries consumed by Swift code, and access lower-level APIs exposed through the Objective-C runtime. Xcode provides full tooling support including ARC, debugging, and Swift interoperability.

GitHub Repositories
6.1K
-8.6%
Trending down this week
Removed in 575 repos