Есть ли в Objective-C стандартная библиотека? - PullRequest
8 голосов
/ 14 мая 2010

В большинстве современных языков программирования есть стандартная библиотека? У меня сложилось впечатление, что для Obj-C нет стандартной библиотеки приличного размера, скорее, она в основном / полностью опирается на Какао и что (плюс люди, не желающие использовать GNUstep), именно поэтому Obj-C используется только на Mac )?

Это правда / до какой степени? Существуют ли стандартные коллекции obj-c?

(заметьте, я не занимался программированием на Obj-C и вряд ли опробую его в ближайшем будущем, мне просто любопытно). Постскриптум Существуют ли приличные библиотеки без какао / гнустеп? они не Apple, они с открытым исходным кодом, хорошо документированы?

Ответы [ 3 ]

26 голосов
/ 14 мая 2010

Вопреки ответу Outis, Objective-C изначально не разрабатывался в NeXT. NeXT принял Objective-C в качестве языка выбора в середине и конце 80-х. Objective-C был создан Брэдом Коксом и Томом Лавом в Stepstone в начале 80-х.

Относящийся к вопросу, когда Кокс и Лав создали Objective-C, одной из их основных целей было создание языка, который мог бы поддерживать полностью компонентные программные модели. То есть вы сможете купить программный компонент где-нибудь и подключить его к своему приложению для добавления функциональности.

Исходя из этого, был разработан ICPak 101 и IIRC, 102 (или 201, если честно, не помню), который был чем-то вроде стандартной библиотеки для Objective-C. Это никогда не завоевывало популярность.

Очевидно, что NeXT и Apple были основными движущими силами Objective-C, и, таким образом, сегодня Фонд Какао является самой популярной стандартной библиотекой для Objective-C. Это не единственный; Есть все еще версии ICPak в активном использовании, и есть проекты не-NeXT / не Apple Objective-C, которые на самом деле довольно большие. Кроме того, Objective-C продолжает использоваться несколькими проектами в Linux, в основном через GNUStep.

В общем, Objective-C предназначен для простого и небольшого языка. Из этого вытекают относительно простые и небольшие библиотеки (сравните, скажем, размер STL или Boost to Foundation).

Если вы ищете «переносимый объектный компилятор stes», вы найдете продолжение Дэвида Стеса всего того, что сделал Stepstone, включая реализацию ICPak (опять же IIRC - я давно не изучал этот материал).

3 голосов
/ 14 мая 2010

Поскольку Objective-C является расширением C (и довольно небольшим), стандартная библиотека C доступна. Кроме этого, основная библиотека - это то, что предоставляет платформа, что в основном означает исходную библиотеку NeXTSTEP и ее потомков: OPENSTEP, Cocoa, GNUstep, несуществующую Coconut . Это потому, что Objective-C изначально разрабатывался в NeXT и был передан Apple . В настоящее время нет даже официального стандарта, только документация Apple.

По моему мнению, отсутствие других библиотек не является причиной того, что Objective-C в основном используется в разработке для Mac, а является следствием последних.

1 голос
/ 14 мая 2010

Я думаю, что этот раздел ( философские различия между Objective-C и C ++ ) записи в Википедии довольно хорошо освещает эту проблему.

...