Rambler's Top100
DeepHome
31.05.2007  00:00
Maybe I'm a Leo - 4: Инструментарий разработчика
Предлагаем вашему вниманию четвертую часть "нетипичных заметок" Олега Свиргстина по системе Mac OS X 10.5. И читая эту статью, не забывайте, что сам Олег является программистом, который очень любит Макинтоши. ;-)

Нетипичные заметки о Леопарде, продолжение
----

"Новшества"

Не забыли в "Леопарде" и разработчиков. Нас ждут новые технологии и новшества в уже привычных, нас порадуют новым поколением интегрированной среды разработчика Xcode 3.0 и полностью переработанным (надеюсь, в лучшую сторону) "строителем интерфейсов" по имени Interface Builder 3.0. Objective-C, один из самых главных языков Mac OS X, станет Objective-C 2.0, что сделает его еще интереснее...

Я не уверен, насколько читающей публике интересны детали изменений в Objective-C. Новый язык, благодаря странному стечению обстоятельств, хоть это и не афишируется Apple, не подпадает под ограничения на распространение детальной информации про "Леопард"... А в сети есть даже исходный код компилятора Objective-C 2.0, и примеры использования на практике его новшеств.

Новшества... все они берут начало из сегодняшнего и вчерашнего дня.

"Где начинается Мак"

Mac OS X построена из нескольких самостоятельных и весьма успешных операционных систем, таких как классическая Mac OS, несколько юникс-подобных операционных систем из клана BSD и операционной системы NeXTstep/OPENSTEP/Rhapsody. Потенциалы всех этих систем соединились и достигли критической массы. И началась цепная реакция невероятной силы - с каждой новой версией на свет появляются все более и более необычные технологии, а в распоряжении Мак-разработчика оказывается материал невероятной мощи и силы...

И эту мощь уже невозможно игнорировать. Маки наступают. Они все более заметны, в том числе и в прежде чуть ли не запретных для них ролях - и успешно со всем этим справляются. И все большее число разработчиков приходит на Mac OS X - то, о чем еще года два назад нельзя было даже мечтать, происходит. Все более массово. И путь неофитов не увит розами. На пути к потрясающей мощи их ждут многочисленные препятствия.

Прежде всего, препятствия в самих себе. Привычки, навыки... Средства разработки далеко не идеальные (зато вполне приличные, и бесплатные). Скажу больше: переход из классической Mac OS в Mac OS X едва ли был проще. Когда "десятка" с боем прорывалась в огромный мир, документация хронически не поспевала за вносимыми в самую суть системы изменениями, а интегрированная среда разработки, унаследованная от NeXTstep, была отнюдь не подарком... по сравнению с тем же CodeWarrior от Metrowerks...

Какими бы передовыми мы себе не казались, в душе мы все ужасные ретрограды. Овладев каким-то непростым ремеслом, мы попадаем в рабство к собственным навыкам и привычкам. Неудивительно, что приходя из классической Mac OS или из Windows в Mac OS X, многие выбирают Carbon. Это комплекс библиотек, основу которых составляет наследие Маковской классики, существенно дополненное и переработанное, абсолютно современное, и более чем дееспособное.

Вот только одна беда: при всех достоинствах Carbon'а, он если и лучше "несущих" библиотек других операционных систем, то не на порядок. Обычные неплохие библиотеки... А хочется чуда!

"Cocoa и Objective-C"

Однажды и я начинал свое знакомство с Cocoa. И это было нелегко.

В девичестве эту технологию звали Rhapsody. Это классовые библиотеки NeXTstep/OPENSTEP, посаженные на общую с остальными элементами Mac OS X базу (Core Foundations), о которых в конце прошлого века ходили буквально легенды. В середине 90-х только две операционных системы в мире удостоились почетного звания "операционная система 21-го века" - Pink (так никогда и не вышедшая на рынок) и NeXTstep, намного опередившая свое время. Прежде чем стать одной из двух основных технологий Mac OS X, библиотеки NeXTstep в течении 12 лет активно эксплуатировались, улучшались и модернизировались.

Сложностей на пути новичка в этом самом Cocoa не перечесть. Библиотеки написаны на особенном диалекте объектно-ориентированного Си, самом компактном и самом бескомпромисно объектно-ориентированном Си в мире. Имя ему - Objective-C. В те дни весь мир писал программы на Си++ (изредка - на Java), а тут вдруг... В 1997 году почти все были уверены, что Apple споткнется об этот язык, и уже точно не встанет.

В наши дни, когда даже по ту сторону межплатформенной границы многие увлечены C++, не менее динамичным и удивительным вариантом Си, врядли все еще необходимо кого-то убеждать в необходимости таких языков и в их преимуществах перед традиционными средствами программирования. И почти мистические способности библиотек, опирающихся на таланты таких языков, тоже уже широко известны и общепризнаны.

Objective-C - комбинация стопроцентного Си с почти стопроцентным набором объектно-ориентированных механизмов фантастического языка "Смолтолк". Objective-C почти ровесник Си++. В силу ряда причин, в 80-е и 90-е у этого языка почти не было шансов стать массовым языком программирования, но в академических кругах он пользовался заслуженной любовью не самых глупых представителей человечества. В конце 80-х самая оригинальная компьютерная компания NeXT Computer выбрала Objective-C для написания самой оригинальной операционной ситемы в мире. Которой тоже не суждено было стать массовой... в 20 веке.

Самое удивительное, Objective-C невероятно прост в освоении. Владеющий чистым Си осваивает его недели за полторы-две. Для тех, кто потратил годы на изучение тонкостей Си++, и у кого это единственный язык, задача несколько усложняется. Но ненамного.

А вот библиотеки освоить сложнее... Но чудо - оно именно в них.

"Парадокс Cocoa"

Осваивать Cocoa непросто. Сначала рекомендуется просто забыть все, чему новичок научился и к чему привык за годы (а то и десятилетия) работы с классовыми библиотеками, написанными на Си++. Забыть не навсегда, но прочно. Не удивляться, если какое-то простое в иных культурах действо обставлено непонятными ритуалами. Со временем понимание придет. И ни в коем случае не пытаться гладить Cocoa против шерсти - вплоть до того момента, когда в этом уже почти не будет необходимости.

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

Однажды, когда чувствуешь себя уже почти как рыба в воде (первые несколько раз это чувство обманчиво), вдруг понимаешь, в какое волшебное царство попал. Это что-то отличается, наверное, от всех других библиотек мира, не менее, чем средний Мак в конце 80-х отличался от среднего же IBM PC XT/AT тех же времен.

И только тогда вдруг понимаешь, как люди могут терпеть далеко не самые лучшие и не самые удобные средства разработчика, и быть чуть ли не фанатиками своего дела (про фанатиков - иносказание, на вяский случай уточняю). Когда я осваивал Cocoa, среда разработчика еще называлась Project Builder, и она оставляла, мягко говоря, желать лучшего.

Xcode, пришедший на смену Project Builder в "Пантере" (Mac OS 10.3), был одновременно и прекрасен (какой интерфейс!!!) и ужасен. Первые две его версии любили без каких-либо внешних причин впадать в забытье. Иногда они калечили чувствительную информацию, восстановление которой занимало часы. Очередной кризис... Но уже Xcode 1.2 вел себя вполне пристойно - а по сравнению с мрачным средневековьем Mac OS X (до Пантеры) это был настоящий праздник души.

Второе поколение Xcode дебютировало в "Тигре" (10.4), и было намного удачнее. Едва ли это самая лучшая среда разработки в мире - но точно одна из лучших. Переход из Xcode в Visual Studio не менее мучителен. Почему-то считается, что люди, которые сами пишут программы, отнесутся к несуразностям и сложностям своего инструментария с большей терпимостью, чем простые обычные пользователи. И видимо, это действительно так. Кроме всего прочего, и сам инструментарий очень непрост.

Третье поколение... обещает сделать процесс разработки более увлекательным. Достоверно известно, что команда, которая пишет Xcode и другие средства для разработчиков, в последние два года была значительно увеличена. Новые инженеры прошли непростой процесс адаптации, и третье поколение - первенец этой очень сильной и интересной команды. В любом случае, это будет интересно.

"Ангар 51"

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

Совсем не похоже...

Maybe I'm a Leo - 4: Инструментарий разработчика
Источник/Source: Олег Свиргстин
(495) 933 6737 | sales@deepapple.com deepapple.com | deepstore.ru | griffintech.ru | macally.biz | xtrememac.ru | wacomstore.ru | ipodcentre.ru
Rambler's Top100 Индекс цитирования