Objective-C runtime

From GNUstepWiki

Revision as of 18:52, 22 October 2009; view current revision
←Older revision | Newer revision→
This article or section is a stub (i.e., in need of additional material).
You can help us by expanding it

The Objective-C runtime provides C functions and data structures required to execute an Objective C program. It is low-level code that makes your applications work. Every Objective-C program links to the runtime, and the runtime manages objects, looks up methods, and implements the features of Objective-C.


The first Objective-C runtime was created by NeXT in the 1980s for their implementation of Obj-C and NeXTSTEP. The GNU project started to re-write it in 1992. This runtime was significantly modified in 1993 by Kresten Krab Thorup. Since then, there have been two runtimes evolving in parallel.

When Jobs returned to Apple, he brought with him NeXTSTEP's code. The Obj-C runtime used in Apple's Mac OS X is inherited from NeXT. Apple has made many changes to it. The biggest change Apple has made is supporting Objective-C 2.0.

The Etoile project maintained its own extension to the GNU runtime for a few years. This updated runtime added support for many of the features that Apple added. However, David Chisnall added all the features from the Etoile runtime into a framework that runs on top of the GNU runtime. This framework, ObjectiveC2.framework obsoletes the Etoile runtime and makes it easier for regular GNUstep applications to use.

Choosing a runtime

The GNU runtime supports everything needed by traditional Objective-C applications. Apple calls this Objective-C 1.0.