Rambler's Top100
DeepHome
25.07.2007  00:00
Черная метка-III: А почему, собственно, Cocoa?
А почему, собственно, Apple выбрала Cocoa? Не разумнее ли было бы следовать стандартам отрасли? Например, в 1998 году сконцентрироваться всей своей мощью на разработке и доводке Carbon, и выйти на рынок уже в 1999 или 2000 году, с операционной системой, не уступающей Windows, а чем-то и превосходящей конкурента...

"Что было бы, если бы..."

Представим себе на минутку, что вместо публичного аутодафе летом 1996 года, Apple (тогда еще Apple Computer) повела бы себя "по-джобсовски". То есть, красиво (с картинками и увлекательными презентациями) объяснила бы собравшимся, что у Apple есть то, чего они все хотят (и хотели всю жизнь, просто боялись себе в этом признаться), что операционная система будет в разы лучше и совершеннее, чем все ожидали... но такая вот незадача - выйдет она в свет несколько позже.

И что в 1997 году (например, в августе, на Бостонском MacWorld), в тот самый день, в который в реальной жизни вышла "несовременная Mac OS 8", вышла бы именно та Mac OS 8, которую обещали. Которую давно уже ждали, на которую надеялись, и которая действительно могла эти надежды оправдать...

При таком развитии событий ситуация в 1996-97 годах радикально отличалась бы от той, что сложилась в реальной истории. Отличалась бы настолько, что почти невозможно "вычислить", куда и как распрямилась бы пружина эволюции.

С одной стороны - агрессивное наступление Windows 95, с другой - у Apple все еще незапятнанная репутация (уже случились неприятности с "горящими" лаптопами, но вообще, компания выглядела солидно и неколебимо).

Новая операционная система, вызывающая любопытство у потенциальных клиентов была бы вполне симметричным ответом Windows 95. На волне интереса к новой ОС, затея с клонами могла бы быть очень успешной (в реальной жизни они чуть не привели Apple к катастрофе).

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

Вообще, публичное покаяние (вместо новой операционной системы) было серьезной ошибкой, которая едва не стала роковой, и Apple пришлось очень долго и дорого за нее платить. Я думаю, если бы не эта ошибка, Apple продолжала бы удерживать 10-15 процентов мирового компьютерного рынка, а Mac OS, благодаря клон-мейкерам, была бы установлена на каждом четвертом (а то и третьем) персональном компьютере в мире.

В положенное время, в 1998 или 1999, "сверхсовременная Mac OS 9" столкнулась бы с не менее "сверхсовременной Windows 98", которая тоже была бы намного интереснее Windows 98 из нашей реальности...

После аутодафе все возможности для мирного эволюционного развития Mac OS были утрачены. У Apple было много альтернатив, но по сути - только две. Совершить чудо из чудес, и выжить - или повесить на дверь офиса амбарный замок. Отныне никакая нормальная операционная система, пусть даже самая идеальная, компанию бы не спасла. Ни Copland, ни Carbon...

"Ненормальная ОС - закваска"

В 1985 году Джобс был изгнан из Apple. За безумие образа мысли и грубейшие ошибки, повлекшие тяжелый финансовый и репутационный ущерб для компании. Наверное, он вполне заслужил свою депрессию.

Мстительное чувство помогло Джобсу справиться с переживаниями. Представьте: вы создали компанию из ничего, вы фактически создали на пустом месте многомиллиардный мировой рынок персональных компьютеров, вы превратили свою компанию в одного из важнейших игроков на этом рынке, вы столько вложили в нее сил и страсти - и вдруг... вам показали на дверь. Отныне смыслом жизни стало доказать и показать...

А еще, в 1984, или в начале 1985, Джобс впервые услышал о сокровенной мечте университетов и исследовательских институтов того времени, о персональной компьютерной станции класса "3M". То есть, станции:, у которой один мегапиксель экранного пространства, один мегабайт оперативной памяти и один мегафлоп (миллион операций над числами с плавающей запятой в секунду) вычислительной производительности. Тогдашний Мак можно было бы назвать компьютером 0.3 M - по каждому из этих параметров он был раз в десять слабее.

Не только Мак был столь немощен. "Писишки" тех эпических дней тоже были далеки от требуемого уровня. Налицо - интересная задача. Хорошая цель для "следующего безумно великого проекта". А еще - незабываемый визит Джефа Раскина, Стива Джобса и инженеров компании в Исследовательский Центр корпорации Xerox в Пало Альто (Xerox PARC) в 1979 году. В 1979 году, по словам Джобса, его больше всего интересовал графический пользовательский интерфейс. Он, и его спутники, были увлечены этой темой и ослеплены ею - а между тем, им были продемонстрированы еще два "чуда", на которые они почти не обратили внимание.

Это были локальные сети персональных рабочих станций (в скором будущем они стали вотчиной корпорации Sun Microsystems) и настоящее объектно-ориентированное программирование (ООП).

Придумывая страшную кару для обидчиков, Джобс вспомнил про одно из этих чудес - про ООП. Красота и мощь этого направления раскрылась перед ним во всем ее великолепии. У направления было ослепительное будущее.

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

Не менее важно было собрать "могучую кучку" первоклассных инженеров, и загипнотизировать ее своим искаженным видением мира (в этих искажениях проступали черты реального мира - реального мира послезавтрашнего дня).

Из пестрого вороха невероятных чудес послезавтрашнего дня, обрушившихся на его голову, Джобс выбрал еще два. PostScript (универсальный язык описания страниц, который разрабатывала корпорация Adobe) и Mach - микроядро для гибких и мощных операционных систем.

Изначально "следующий безумно великий проект" задумывался как программная технология для операционной системы, или систем, разработанных другими компаниями. Компанию назвали NeXT Software, и приступили к работе...

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

Наподобие картин великих мастеров прошлого, каждая из которых сегодня оценивается в целое состояние. Их авторы умерли в нищете и безвестности.

"Ненормальная ОС - следующий шаг"

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

Пришлось разрабатывать свою собственную платформу, и операционную систему, и дорабатывать разрозненные части великого замысла (например, совместно с Adobe Corporation, реализовывать экранный Post Script (DPS), вопреки скепсису гигантского и очень успешного партнера), и решать множество других задач.

Название компании изменилось - теперь она называлась NeXT Computer. С английского это переводится как "следующий компьютер". На мой взгляд, очень удачно: смысл проекта сразу становился очевиден и понятен любому, узнавшему о нем. Джобс продолжал совершать грубейшие ошибки. По мнению одного из его тогдашних соратников, на каждые десять идей девять были вредными и чуть ли не смертельно опасными. Зато одна из каждых десяти была не просто хороша, но красива и гениальна.

Операционная система взаимодействовала с железом рабочей станции через умное и "прочное" микроядро, Mach. Чтобы не изобретать скучный и небезумный "велосипед" в сто-тысячный раз, над ядром расположили проверенную и заведомо хорошую юникс-подобную операционную систему с открытым исходным кодом. Free BSD. Все остальное было большой и объектно-ориентированной насквозь библиотекой, написанной на Objective-C.

Objective-C и C++ - почти ровесники. В 1985/86, когда будущая ОС только придумывалась, оба языка уже существовали, и хотя ни один из них еще не был всемирно популярен (самыми популярными языками тех дней были С, Паскаль и Фортран), было ясно: С++ завоюет мир.

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

И С++, и Objective-C - языки гибридные. В первом, объектно-ориентированные парадигмы применяются только на этапе разработки программ. Затем исходный код переводится на родной диалект аппаратных средств, привращаясь в бескомпромисно быстрый и эффективный "линейный код". Для исполнения этого кода на другом компьютере совместимой архитектуры не требуется устанавливать никаких вспомогательных программ.

С точки зрения исполняющего программу компьютера, нет никакой разницы, написана ли программа на обычном С, на Паскале или на С++. С точки зрения потребителя разница была: написанные на С++ программы, в большинстве своем, были намного умнее и совершеннее написанных на С или Паскале. (Объектный Паскаль тоже хорош).

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

Но вот беда: для реализации этих достоинств, программы на Objective-C требуют наличия в операционной системе специального программного обеспечения, "среды времени исполнения", иначе говоря, runtime. Из-за нее, и из-за относительной слабости тогдашнего "железа", получить широкое распространение этот замечательный во всех прочих отношениях язык программирования не мог.

Но если вы пишете свою собственную операционную систему, и проектируете свое собственное железо (стараясь выжать из него максимально возможную производительность), и достоинства этого языка вам необходимы - это совсем другое дело. Так Objective-C стал языком операционной системы фирмы NeXT.

Время показало, что этот выбор был не только странным и неожиданным (по мнению специалистов), но и на редкость удачным.

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

А почему, собственно, 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 Индекс цитирования