Objective-C

Objective-C, известен още като ObjC и Objective C, е обектно ориентиран, рефлективен език за програмиране с динамична типизация. ObjC е създаден от Брад Кокс за корпорацията StepStone през 1980 година. През 1988 е възприет като език за програмиране на NEXTSTEP а през 1992 започва да се разпространява под GNU лиценз заедно с компилатора GCC. Основно се използва като език за програмиране при Mac OS X и GNUstep.

Objective-C е създаден основно от Брад Кокс и Том Лов в тяхната компания Степстоун, в началото на 80-те години на 20 век. И двамата са запознати със Smalltalk, докато работят в центъра по програмни технологии на ITT Inc. Най-ранните разработки с Objective-C са създадени по това време.

В началото на 80-те години на ХХ век структурното програмиране се възприема като широко застъпена практика при разработването на софтуер с цел да се „разбие“ програмния код на по-малки и по-лесни за поддържане части. С течение на времето обаче, размерите на програмния код започват да нарастват и това води да появата на така наречения спагети код и повторна използваемост на вече съществуващия код.

По това време на обектно ориентираното програмиране се гледа като на едно от възможните решения на този проблем. В същност по това време Smalltalk до голяма степен предлага известна функционалност в това отношение (някои от сложните решения в света тогава са базирани на Smalltalk).

Основният недостатък на Smalltalk е, че той е базиран на виртуална машина, която има огромни за времето си хардуерни изисквания. Това става причина за по-нататъшните успехи на ObjC.

Официалното описание на ObjC (в неговата първоначална форма) може да се намери в книгата на Брад Кокс „Object-Oriented Programming, An Evolutionary Approach“ (1986). Кокс се опитва да покаже, че проблемът с повторната използваемост на програмния код е нещо повече от просто въпрос на синтаксис на даден език за програмиране, но до голяма степен той остава неразбран.

Тази програма извежда на екрана следното съобщение: Hello, world

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])
{
@autoreleasepool{
NSLog (@"Hello, World!");
return 0;