Objective-C

Objective-C is an object-oriented programming language used for developing software for OS X and iOS. It is a superset of the C programming language, with dynamic runtime and object-oriented capabilities. It gives users the possibility to compile any C program with an Objective-C compiler and to freely include C language code within an Objective-C class. This language follows the syntax, primitive types and flow control statements of the C language, while adding syntax for defining classes and methods. Objective-C also adds language-level support for object graph management and object literals, while providing dynamic typing and binding, deferring many responsibilities until runtime. The programming language was originally developed in the early 1980s and it was the main language used by NeXT for its NeXTSTEP operating system, from which OS X and iOS are derived.

Advantages

  • Dynamic typing and optional static typing
  • Categories allow developers to adapt existing classes to the requirements of the framework they want to use or create
  • Expressive message syntax
  • Dynamic run-time of Objective-C allows for dynamically created classes and added methods to existing classes
  • Automatic garbage collection feature which targets priority memory zones that are more likely to be garbage
  • Because Objective-C is an object-oriented extension of the C language, the C libraries can be accessed directly
  • Access to Apple technologies

Disadvantages

  • Cross-platform portability is a big disadvantage because Objective-C relies heavily on the Cocoa framework and is not a good choice for developing applications for other platforms besides Apple
  • Dynamic typing adds a performance penalty
  • It has no namespaces
  • Objective-C has no function overloading
  • There are no templates available

Components

  • Messages
  • Interfaces
  • Forwarding
  • Notes
  • Categories
  • Garbage collector
  • Non-fragile instance variables

Development tools

  • Xcode
  • Rhodes
  • Titanium
  • PhoneGap
  • DragonFireSDK
  • Unity
  • Corona SDK
  • GNU Compiler Collection