Почему Apple использует Objective C? - PullRequest
30 голосов
/ 29 июля 2009

Почему Apple решила использовать Objective-C для iPhone SDK, а не C ++?

Мне кажется странным, что они не выбрали бы язык более популярный, чем Objective-C. Это потому, что хотел иметь что-то уникальное в своем приложении, которое иначе не используется в общем?

Ответы [ 5 ]

51 голосов
/ 29 июля 2009

Apple объединилась с NeXT в 90-х, а Mac OS X была сделана из операционной системы NeXT, NeXTSTEP. Objective-C был официальным языком каркасов приложений NeXTSTEP, который стал Mac OS X's Cocoa. Mac OS X была затем адаптирована под iPhone OS, а Cocoa была превращена в Cocoa Touch. Objective-C довольно хорошо держался на протяжении всего пути, и многие функции Cocoa было бы трудно перевести на C ++.

По сути, все это исходит от NeXT.

20 голосов
/ 07 ноября 2012

Objective C начал свою жизнь в 1983 году, я думаю, он был создан Брэдом Коксом и Томом Лавом. Идея Objective-C состояла в том, чтобы взять контроль чистоты и низкоуровневый контроль над C и объединить его с истинно объектно-ориентированными функциями, которые позволили бы компаниям настраивать системные библиотеки, которые могли бы взаимодействовать с уровнем OOP Obj-C. По сути, это сработало. Obj-C является строгим надмножеством C, в отличие от C ++, который является большей частью C, но со многими отличиями.

Когда Стив Джобс основал NeXT Computer (1985), он привел некоторых из своей бывшей команды Apple и других. Его лучшие программисты были заинтересованы в использовании языка, который расширился на C с теми же преимуществами в скорости и управлении системой. Они выбрали Objective-C. В итоге NeXT написал много библиотек и методов для базового языка. Все это начинается с NS для следующего шага. Это было название ОС NeXT. К 1989 году ОС Next Step считалась значительно превосходящей MS Windows или Mac OS, и многие компьютерные компании хотели сильно ее лицензировать. Джобс просто не хотел идти в этом направлении.

Как только Apple придумала и вернула Стиву Джобсу обратно в свои ряды (1996), внедрение Next Step OS в новую Mac OS X стало ключом к возрождению Apple своего программного обеспечения и стратегии программирования.

Хотя C ++ остается действительно превосходным и мощным языком, я обнаружил, что в Objective C есть меньше недостатков (только мое мнение), и продолжающаяся работа Apple над библиотеками Cocoa сделала язык Obj-C по-настоящему современной мощью с поддержкой C. Это лучше чем Java? Точно сказать не могу. Но для того, для чего он в первую очередь предназначен (Mac OS, iOS), это удивительно хорошо, хотя и слишком многословно.

Самая большая критика Obj-C - это синтаксический стиль, но любой программист, который действительно изучает язык, быстро поймет его удивительную мощь и, кажется, не подойдет ко всем вещам Mac, iPhone, iPad.

Будут ли какие-либо другие платформы в конечном итоге использовать Obj-C? не уверен, но сомнительно Но библиотеки Какао действительно замечательны.

4 голосов
/ 29 июля 2009

Это потому, что Objective C был де-факто языком для разработки Mac OS X до того, как он стал Mac OS X. Когда Джобс покинул Apple, чтобы настроить NeXT, язык Objective C был разработан как особый язык, который не был C ++ и избежал многих его подводных камней. Поэтому имеет смысл, что любое портативное или потребительское оборудование (включая Apple TV) использует Objective C в качестве основного языка разработки и переключается на базовый уровень C, когда это необходимо для проблем производительности или интерфейса.

2 голосов
/ 29 июля 2009

Objective-C добавляет объектно-ориентированное программирование в C. Он использовался для NeXT, на основе которого получено много OSX. Он поддерживает все C и проще, чем C ++.

http://discussions.apple.com/thread.jspa?threadID=2091191

1 голос
/ 30 июля 2009

Обратите внимание, что Objective-C не является новым языком. Это было с 1986 года - задолго до Java или C #!

Он широко используется со времен NeXT, многие приложения реального мира используют его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...