Rambler's Top100
DeepHome
01.08.2007  00:00
Черная метка-IV: От Carbon к Cocoa
Итак, никакая нормальная основа ОС, сколь угодно аккуратно написанная и идеально отлаженная, не спасла бы Apple от неминуемой гибели. В неминуемой гибели компании не сомневался почти никто. Спасти ее могло только чудо - а кто в наши дни всерьез верит в чудеса?

Если перечислить все, что привело Apple к нынешнему успеху, нельзя не признать: это не компания, это какой-то неуемный генератор чудес. Если вернуться лет на 7-8 назад, и изложить произошедшие в реальности события, как если бы это был план вывода Apple из кризиса, никто на свете бы не поверил в его реальность. Автора такого проекта перестали бы пускать на страницы солидных изданий, и ославили бы сумасшедшим...

Cocoa - всего лишь одно из этих чудес...

"В чем ненормальность ненормальной ОС?"

Действительно ли Cocoa представляет из себя что-то "такое-эдакое"? Почему множество умнейших людей, пишущих программы для Маков едва ли не с 1984 года, продолжают упорно его игнорировать? В прошлых частях нашего повествования мы упоминали какую-то "пирамиду" - помните? - а слово это в наши дни очень нехорошее... Уж не "разводка" ли это для простаков?

Подобные вопросы возникают у каждого, кто начинает освоение Cocoa. Язык... Новый для большинства приходящих язык изучить придется. С некоторых пор, Cocoa на Java прекратила свое развитие, и уже заметно отстает от Cocoa на Objective-C. Ее еще поддерживают - но по большому счету, необходимость в ней отпала еще несколько лет назад.

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

Некогда на этом языке была написана целая оперативная система. NeXTstep. Практически вся, кроме входящих в нее Free BSD и микроядра Mach. Исходный код этих библиотек не был открытым, но зато все файлы заголовков (описание содержимого библиотек и правил доступа к этому содержимому) мог прочитать любой, имеющий средства разработки. Благодаря одной из способностей Objective-C, поведение любой части системы можно было легко и аккуратно подстроить под себя. В других ОС подобное потребовало бы опасных трюков, и заметно снизило бы уровень безопасности - между тем, жизнь есть жизнь, и заранее предсказать, что она потребует от "мастера", просто невозможно.

Изобретательность и оригинальность мышления отборной команды разработчиков, а также вмешательства Джобса в процесс разработки библиотек, превратили их в шедевр. Сам Джобс не программист, но, по словам очевидцев, очень быстро схватывает суть и начинает генерировать "гениальные идеи", 9/10 из которых вредны и опасны, но оставшаяся десятая часть бурного потока идей и в самом деле почти гениальна.

В результате, получился невероятный комплекс из операционной системы и средств разработки программного обеспечения для нее, которые в 1996 году (8 лет спустя) журнал "Открытые системы" назвал одной из двух реально существующих операционных систем 21-го века. В диагнозе журнала была одна неточность: другая ОС будущего, Taligent, на самом деле еще не существовала. А ее разработка уже была прекращена.

Лозунг NeXTstep был прост и приятен слуху: "ОС, дружелюбная к разработчикам". Про "дружелюбие к пользователю" в начале 90-х говорили многое и разное, но в основном - хорошее. За кадром оставался маленький, но неприятный, момент: чем дружелюбнее становилась какая-то операционная система к пользователю, тем враждебнее и беспощаднее она была к разработчику. Тем дольше и труднее писались для такой системы программные продукты. Казалось бы, все справедливо: за все хорошее в этом мире надо платить. И вдруг: "дружелюбная к разработчику"...

Как и во всех лозунгах мира, в лозунге NeXT было преувеличение. На самом деле, ремесло разработчика программ (это искусство и ремесло "в одном флаконе") никогда не будет простым и легким. Но была и доля правды. В руках квалифицированного специалиста, эти библиотеки превращались в удобное и послушное оружие невероятной мощи.

Лионель Коста, программист из Франции, до и после появления на его жизненном пути с NeXTstep/OPENSTEP, работал в Windows NT. Освоившись в OPENSTEP, ради спортивного интереса, он попытался воссоздать средствами этой среды функциональность нескольких (нетривиальных) упражнений для Windows NT.

OLE, распределенные в сети программные комплексы, тысячи и тысячи строк очень непростого кода - с одной стороны.

И не более ста строк (большей частью простых и легко обозримых) на каждый такой проект в OPENSTEP, при эквивалентной, или даже более продвинутой, функциональности. По мнению Лионеля, Apple (это было в 1997 году, вскоре после приобретения Apple корпорации NeXT Software) должна была сделать именно эти гениальные библиотеки главной темой всех ее рекламных компаний, потому что это было бы, с точки зрения программиста, беспроигрышно.

"Чем лучше, тем хуже"

Реализация гениальных и "гениальных" идей Джобса довольно часто приводила к срыву сроков.

Однажды, в ответ на упреки партнеров (выход окончательного релиза операционной системы опять откладывался, еще на несколько месяцев), Джобс гордо ответил: "операционная система, опережающая мир на 5 лет, задерживается на несколько месяцев - в чем проблема?". Джобс ошибся. На самом деле, разработанная в 1988 году ОС опережала свое время лет на 20 - ее время только-только наступает, буквально в наши дни. В 90-х ее мало кто мог оценить по достоинству, и ее коммерческий неуспех был предрешен.

Ареал распространения NeXTstep/OPENSTEP в мире никогда не был слишком большим. Несколько десятков тысяч копий. Операционная система и ее среда разработки стоили дорого (десятки тысяч долларов), и далеко не всем были по карману. За эти огромные деньги ее, тем не менее, покупали - транснациональные корпорации (для применения на самых ответственных направлениях, где ошибка могла привести к многомиллиардным потерям, чуть ли не к войнам между странами и народами), спецслужбы США и ряда других стран. Унивеситеты и научно-исследовательские центры, которые приобретали NeXTstep/OPENSTEP на льготных условиях, использовали ее в самых разных непростых проектах... Среди покупателей, правда, практически не было "случайных людей". Получился, своего рода, "элитный клуб".

На примерно 20 тысяч копий ОС, трудившихся в мире, работало более 3 тысяч разработчиков, чуть ли не влюбленных в эту ОС. Аномалия!

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

Выдающиеся качества NeXTstep/OPENSTEP, превозносимые апологетами, воспринимались как лженаучный миф. Когда останки Джордано Бруно догорали на площади, ни у кого из собравшихся посмотреть эту развлекательную программу не возникло ни малейшего сомнения в том, как устроено мирозданье: естественно, и солнце и луна и прочие светила вращаются вокруг Земли, это известно всем, да и как может быть иначе?

Чтобы понять аргументы Коперника, Галлилея и Джордано Бруно, требовались знания. Человеку из толпы легко внушить какую-нибудь ерунду - но только не истину. То же самое случилось и с NeXTstep/OPENSTEP. Познание истины - преодоление препятствий. Победа над собой.

Когда NeXTstep/OPENSTEP уже была частью Mac OS X, и называлась Cocoa, полку скептиков прибыло. Пронесясь "галопом по Европам", почти невозможно разглядеть в великом великое. В глаза бросаются недостатки - настоящие и мнимые. И - возмутительная непохожесть на все, что было до сих пор.

Появились и новые недовольные - из числа прежних апологетов. Нет больших святош в мире, чем раскаившиеся грешники, вставшие на путь аскетизма и воздержания. Чтобы Cocoa и Carbon смогли дополнять друг друга, чтобы миллионы человеко-часов, вложенных в разработку классической Mac OS и ее неродившихся потомков (Copland и Gershwin) не пропали даром, Apple превратила Cocoa из "собственно операционной системы" в фактически "обычные библиотеки" - подложив под нее целый пласт псевдо-объектно-ориентированного кода на "чистом Си", назвав его Core Foundation.

Core Foundation формально - часть Carbon. Снижения статуса любимой "игрушки" было воспринято болезненно. Как если бы от этого пострадала бессмертная и прекрасная суть полюбившегося ими предмета. Пишу об этом с полным пониманием и состраданием. Сам страдал...

"Это религия?"

Сравнивать модели персональных компьютеров и среды разработки - занятие неблагодарное. Если всерьез. Слишком разные "калибры". Чтобы понять и оценить стоящий перед ним ПК, пользователю не требуется тратить приличный отрезок бесценной и неповторимой жизни на изучение толстых томов документации. Это изделие, рассчитанное на массового потребителя.

И тем не менее, сравнение Cocoa с компьютерами платформы Макинтош, которые вызывают чуть ли не нездоровую привязанность, симпатии и едва ли не любовь, не лишено смысла.

В годы всеобщего сметения (в 2002-2003), когда процессоры PowerPC жестоко отставали от требований сегодняшнего дня, Mac OS X была еще мучительно недоработанной - про ее потенциал приходилось рассказывать, и это сравнение звучало на самых разных форумах. Казалось, Apple постоянно делает что-то не то, постоянно упускает что-то важное и необходимое, размениваясь на всякие никому не нужные мелочи (тот же iPod, например)...

Преодолевшие "барьерный риф", отделяющий волшебную планету Cocoa от привычного и обычного, застывали пораженные неземной красотой обнаруженного ими "затерянного мира". Как пользователь конца 80-х, испытывавший перед враждебными и непонятно бесчеловечными компьютерами страх и неуверенность, обнаруживавший вдруг, что Мак ему не враг, а наоборот...

На одном из форумов тех дней я прочитал о том, что Apple владеет технологией, ценность которой в разы превосходит ценность самой этой компании, и что необходимо озаботиться на тот случай, если компания вконец "сойдет с рельсов", чтобы "великое и прекрасное" не погибло.

Как утверждал один из героев "Приключений бравого солдата Швейка", "внутри Земли есть еще одна Земля, намного превосходящая первую своими размерами". Герой этот находился в сумасшедшем доме, и был изрядно измучен своим гениальным открытием. В начале 20-го века еще казалось, что все в этом мире можно осмыслить и понять...

Примерно то же самое говорит Бьярн Страустроп, автор языка Си++, про свое детище. "Внутри C++ есть еще один язык...".

Начиная с 2003 года, острота проблем спала. Критический накал форумов тоже пошел на спад. Некоторые поступки компании, время от времени, вызывают яростные вспышки и перепалки... На то мы и люди, чтобы иногда озвереть от какой-нибудь, казалось бы, ерунды.

Cocoa, при всем при этом, никакая не религия. Это, как и Макинтош, всего лишь еще один инструмент познания и изменения мира. Но инструмент, в который талантливые и неравнодушные люди вложили крупицы своей бессмертной души...

Казалось бы, держа в руках инструмент, который настолько опережает время, можно было бы сидеть и радоваться - но в последние годы в Cocoa произошли настолько радикальные изменения, что о них просто нельзя не рассказать - тем более, что именно они, а не злая воля неизвестного менеджера на Apple, стали причиной приговора, вынесенного Carbon.

Продолжение следует...

Черная метка-IV: От Carbon к Cocoa
Источник/Source: Олег Свиргстин
(495) 933 6737 | sales@deepapple.com deepapple.com | deepstore.ru | griffintech.ru | macally.biz | xtrememac.ru | wacomstore.ru | ipodcentre.ru
Rambler's Top100 Индекс цитирования