Objective-C

Материал из Абсурдопедии
Перейти к навигацииПерейти к поиску
Что он курит?
~ Бьерн Страуструп про создателе Objective-C

Objective-C (он же Objective C, Obj C, а также «Нифигасе !»)

История[править]

В начале 1980 года мужика со странным именем Брэд Кокс особенно пёрло. Все существующие языки программирования казались ему жалким подобием конопелечки и не доставляли прежнего удовольствия. Частые видения, иногда прерываемые фундаментальной ломкой, порождали в мозгу данного пижона концепцию нового языка программирования, фундамент которого составлял табун квадратных скобок. С другой стороны, в редкие моменты просветления, мистер Кокс понимал то, что язык, состоящий из одних квадратных скобок, будет понятен только таким же неадекватам, как и он. Данное открытие привело его к понятию того, что в качестве имен методов придется использовать английские слова. Так как сокращения слов не было коньком этого торчка, он решил использовать не только полные слова, но и целые предложения (см. раздел Синтаксис). Необходимо упомянуть, что Кокс иногда практиковал совместные попойки с неким Тедом Кэглером, который в одном из коротких разговоров уговорил Коксика использовать в своем новом языке некоторые наиболее значимые извращения языка Smalltalk, а именно — посылку сообщений. Некоторые источники утверждают, что после этого предложения Кокс с начала послал самого Кэглера, но затем, накатив 150, согласился. Спустя несколько дней, эта дружная компания позвала на очередную пьянку господина Денниса Ритчи, который, приговорив самолично 0.5 литра какого-то мутного зелья и взглянув на концепцию нового языка, воскликнул: «В натуре — Си !» (в английском варианте: «Objective-C !»)

Данная фраза имела немалые шансы закрепиться в качестве названия этого языка программирования, но по причине того, что мистер Кокс постоянно находился в одном из следующих состояний, а именно: под коксом, срочно нужен кокс, похорошело после литра, хреново после литра, отпустило после пива и не мог полностью выговорить эту фразу, наиболее часто употребляемыми являются термины «упс си» и «обж си».

Данный язык имел все шансы повторить судьбу таких же зачатых на наркотиках и алкоголе языков, как Fort, Intercal и др., но в дело вмешался случай. Однажды Кокс напросился на закрытое прослушивание наиболее неадекватных песен Боба Марли, проходившему в подвале одного из офисов компании Apple. Упившись и обколовшись, как свинья, кокс залез на сцену и стал орать, что обж си — это следующий шаг (next step — англ.) в превращении программирования в удел наркош и хронических алкашей. Руководству компании, которое в это время дружно нюхало клей в одном из углов подвала, понравился данный понт и Обж си был утверждён в качестве основного языка программирования Apple.

Синтаксис[править]

Как упоминалось выше, основой синтаксиса Обж си составляют табуны квадратных скобок и английские предложения. Взглянем на пример: строка [self VodkaWant:NO Will:YES]; ([сам ВодкуХочешь:НЕТ Будешь:ДА]) является классическим примером конструкций в Обж Си. Причем, вызов данного метода в виде [self VodkaWant:NO Will:NO]; породит исключение на этапе компиляции, так как вызовы виртуальных методов запрещены самим мистером Коксом.

Очень мощным средством Обж Си является возможность сцепления (concatenation — англ.) одиночных квадратных скобок в табун (herd — англ.)

Пример: имеем фрагмент программы (для улучшения восприятия мы напишем его на русском языке)

[ты метнисьЗаВодкой];

[ты возьмиДве];

[ты наливай];

[ты междуПервойИВторой];

[ты меняУважаешь];

Как вы видим, данный код посылает последовательность сообщений (метнисьЗаВодкой, возьмиДве и т. д.) обьекту ты. Данная форма записи, в целом, является нефиговой, но Коксик пошел дальше и, ввел более простую и легкую для восприятия форму записи. Перепишем данный метод, предварительно хлебнув 100—150 чистого спирта, в следующем виде:

[[[[[ты метнисьЗаВодкой] возьмиДве] наливай] междуПервойИВторой] меняУважаешь] ;

Помимо легкости восприятия данной строки мы можем увидеть в ее начале появление табуна квадратных скобок, что так веселило (наравне с розовыми слониками) мистера Кокса.