Характеристики и предимства на използването на Objective-C?


На практика не съм запознат с езика за програмиране Objective-C и бих искал да чуя вашето мнение за неговите възможности в сравнение с други популярни езици днес.


По-конкретно, интересувам се от следните точки:

  1. Защо Apple избра този език като основен език за своята платформа?
  2. Кои елементи от езиковия дизайн отразяват дизайна на самата платформа Cocoa?
  3. Какви елементи на дизайна Objective-C лично харесвате, се оказват много полезни/незаменими в работата ви и които липсват в някои други езици, с които също работите?


Моля, обърнете внимание, че бих искал да чуя отговор по отношение на силните страни на Objectove-C. Разбирам, че езикът, както всяка друга софтуерна система, със сигурност има своите предимства и недостатъци, но бих искал да чуя преди всичко за предимствата.


Благодаря предварително за вашите отговори.

> 1. Защо Apple избра този език като основен език за своята платформа?

Защото Джобс дойде за втори път в Apple от Next, в който езикът беше в основата на платформата. И там той беше в основата на платформата, защото беше по-добър от останалите (в средата на края на осемдесетте). Джобс, който дойде в Apple, откри нереална бъркотия в операционната система (Mac OS 8, 9), която с години изоставаше от конкурентите си (Windows, Linux), нямаше нормална многозадачност и т.н. Затова той завлече половината от софтуерния компонент на Next, за да започне да пише операционна система не от нулата. По времето, когато Джобс се присъедини към Apple (1997), C ++ не беше много по-добър от Objective C (проблеми с ABI, проблеми с метапрограмирането и т.н.), така че дори тогава нямаше смисъл да сменяме шилото на сапун.

> 2. Кои елементи от езиковия дизайн отразяват дизайна на самата платформа на какаото?

Простота (едно наследяване) и документация.

> 3. Какви елементи от дизайна на Objective-C харесвате лично вие, се оказват много полезни/незаменими във вашата работа и които липсват в някои други езици, с които също работите?

Цел C е най-добрият C език за работа в екип. Изричните имена на аргументи увеличават четливостта на кода и намаляват неотложността и/или свежестта на документацията. Единично наследяване, без претоварване на оператора, липса на метапрограмиране премахват разликата в стиловете между членовете на екипа (когато единият не разбира другия). Прегледът на кода е опростен.

2
Какаото е рамка Objective-C, която използва всички характеристики на езика.

По отношение на възможностите той практически не отстъпва на C #, но синтаксисът в началото може да причини отхвърляне.

1. Скорост (без междинен код) - затова имат по-добра графика. tonsky вероятно също е прав
2 и 3 - отговори arielf, Съгласен съм с него.

1. Не, където е необходима производителност (ядро), се използват C ++ (IOKit) и C (Mach/BSD).

По-специално, поради едно и също динамично писане и динамично предаване на съобщения.