Статья
Версия для печати
Обсудить на форуме
Mac OS X - UNIX от Apple



"С выпуском Mac OS X (10), Apple заявила о своём лидерстве на поприще передовых технологий и создании удобного для пользователей дизайна, что является необходимой чертой для любой крутой операционной системы..."
Apple Computer about Apple Mac OS X.

"Сохранив известную простоту использования своей предшественницы, Mac OS X является промышленно мощной, современной операционной системой, которая спроектирована, как надёжная, устойчивая, расширяемая, с феноменальной производительностью. Таким образом, она является фундаментом для следующих инноваций"
Apple Computer about Apple Mac OS X.


Для начала, Mac OS X - это Darwin ядро, собранное под PowerPC, и куча надстроек, имеющих одну генеральную линию - создать "UNIX с человеческим лицом"

Вот схема, которую эплы называют архитектурой Mac OS X:
Код:
-----------AQUA----------
CLASSIC-CARBON-COCOA-JAVA
QUARTZ--OPENGL--QUICKTIME
----------DARWIN---------

AQUA - это всего лишь пользовательский интерфейс.
CLASSIC - это эмуляция Mac OS 9, ничего общего с AQUA не имеет (по внешнему виду)
CARBON - модифицированный Mac OS API, с помощью которого можно создавать native Mac OS X программы.
COCOA - модифицированный NexT API (базированный на Objective C), с помощью которого можно создавать другие native Mac OS X программы.
JAVA - ну, вы в курсе.
QUARTZ - OPENGL - QUICKTIME - графические подсистемы
QUICKTIME - старый, но обновлённый эпловый брэнд
OPENGL - я ещё никогда не видел такой плотной интеграции юзер-интерфейса с Open GL, не только при создании "украшений";
QUARTZ - Вам лучше самим почитать об этом на эпловом сайте

В один ряд с Classic, Carbon и Cocoa можно добавить появившийся недавно X11.

Таким образом, на Mac OS X вы имеете возможность создавать native программы на трёх языках: C (Carbon), Objective C (Cocoa), Java. Но на ряду с этим у эплов есть понятие AHIG (Aqua Human Interface Guidelines) и они очень сильно хотят видеть на своей операционке софт соответствующий этому AHIG. Надо сказать, что с помощью JAVA сделать это практически невозможно, Carbon требует для этого больших усилий, и только Cocoa позволяет сделать это быстро и качественно (о Classic я даже не вспоминаю).

Что же касается оболочек для разработки, то не смотря на большое разнообразие этого всего на UNIX платформах, на Mac OS X Вам выбирать не приходится. Стандартные, свободно распространяющиеся Apple Developers Tool и старый добрый CodeWarrior - это пока что всё что позволит Вам быстро создать юзер-итерфейс и наполнить его смыслом. Но если CodeWarrior пока что не успевает за всеми нововеяниями и на данный момент является нестабильным и баговым, (это касается также и встроенных компилятора и линкера), то Developers Tools ведут себя не очень дружественно по отношению к C++ разработчикам:
  • страдает скорость компиляции;
  • компилятор не успевает за последними C++ стандартами (виноват в этом правда gcc);
  • runtime не соответствует потребностям C++ - по умолчанию в runtime'е порядок загрузки/выгрузки модулей организован как очередь, а не как стек.

Но не смотря на все недостатки, то даже имея опыт работы на Windows и Linux, я считаю Mac OS X единственной операционкой, которая имеет средства не только быстро создавать качественный софт , а ещё и получать от этого процесса эстетическое удовольствие.

А что касается передовых технологий - может быть, в следующий раз расскажу.


* dyld формат использующийся в Darwin подразумевает произвольный порядок загрузки, который может быть задан разработчиком (задаётся runtime'ом), по дефолту модуль может быть загружен и проинициализирован только при первом к нему обращении - например, при первом вызове функции или при обращении к данным.

Shaman
Версия для печати
Обсудить на форуме