Mac OS X — 8 лет спустя…

Оказывается, мало выпустить продукт, после этого столько всего еще надо сделать (ха-ха, как будто я этого не знал), что 24 часа в сутках становится катастрофически мало. И если раньше хотелось их количество увеличить хотя бы до 28-30, то после релиза их надо было увеличивать вдвое. Но сейчас вроде все устаканивается, поэтому появилось несколько минут написать заметку.
Собственно, позавчера была большая дата в истории Apple — ровно 8 лет назад, 24 марта 2001 года вышла в свет первая релизная версия операционной системы нового поколения для компьютеров Apple, Mac OS X 10.0. Apple традиционно этот исторический факт проигнорировала, поскольку Джобс смотрит больше вперед, чем оглядывается назад, ну а мы не будем уподобляться Джобсу и вспомним, как это было 8 лет тому назад.

Собственно, когда я позавчера “неожиданно” для себя вспомнил, что же вчера за дата, кто-то в Твиттере попросил написать заметку о том, “как это было”. Не секрет, что большинство пользователей на Маках сегодня “присоединились к культу” совсем недавно, очень часто — уже после перехода на процессоры Intel, и они, конечно же, не сталкивались с многочисленными “переходами” Apple, которых было немало за те 15 лет, на протяжении которых я пользуюсь Маками. Например, переход с процессоров Motorola 68k на PowerPC (которые разрабатывали совместно Apple, IBM и Motorola), или тот же переход с “классической” Mac OS на новую Mac OS X, о которой я говорил в начале заметки. Каждый из этих переходов требовал либо от разработчиков, либо от пользователей (а чаще всего — и от тех, и других) определенного терпения и усилий, чтобы через него прорваться.
Чтобы понимать, почему Mac OS X была настолько важной для Apple, нужно перенестись в то время и вспомнить, в каком положении тогда была Apple. На протяжении 90-ых годов Apple стремительно загибалась, несмотря на все прорывы вроде PowerPC, выпуска первого портативного коммуникатора Newton (Palm и прочие были уже потом) и тд. Wintel активно шагал по планете, выталкивая Apple из компьютерного мира, и к 1997 году компания скатилась к жалким 3-4% доли рынка. Управляемая “корпоративными костюмами”, компания выпускала скучные серые коробки с разноцветным яблоком с невероятно высоким ценником, решения, принимаемые компанией, как правило, запаздывали (взять хотя бы возможность выпуска клонов Маков), и будущее выглядело довольно неуверенно. Настолько неуверенно, что руководство компании вело переговоры с различными потенциальными покупателями, которые могли бы приобрести компанию и что-то с ней сделать — среди них фигурировали не только IBM и Sony, но даже Sun и Disney.
Одно из основных отличий Маков — их операционная система — тоже находилась в плачевном состоянии. На 1997 год это была, если не ошибаюсь, Mac OS 8, но внутри, “под капотом”, это была все та же Macintosh System, которая тянулась корнями в далекий 1984 год, когда вышел самый первый Macintosh. Тогда, напомню, это была простенькая, маленькая оболочка, которая позволяла работать одному пользователю на компьютере с одним запущенным приложением. Соответственно, все дополнительные возможности операционной системы “прикручивались сбоку” — та же возможность запускать несколько приложений одновременно, или поддержка работы нескольких пользователей в системе.
Но это все не решало главной проблемы — устаревших внутренностей операционной системы, которые не позволяли реализовать несколько важных задач. В первую очередь, это должна была быть полноценная многозадачность системы, чтобы одна программа, выполняющая какую-то “тяжелую” задачу, не вызывала блокировку всех остальных программ. А во вторую очередь, надо было добавить защиту пространства памяти, чтобы “упавшее” приложение не “валило” за собой всю операционную систему. Всего этого у классической Mac OS не было, и этого сильно не хватало, даже несмотря на всю простоту и удобность ее в работе. Что толку от того, что система была проще Windows, если любое зависание приводило к потере данных не только в активном приложении? А новые версии Windows становились все дружелюбней и проще, и Mac OS теряла свои позиции.
К счастью, всю сложность ситуации понимали и в Apple — уже с 1994 года Apple начала искать пути решения этой проблемы, как с внутренними резервами (“переписать все нафиг!”), так и с внешними партнерами (“давайте организуем стратегический альянс с кем-нибудь и напишем вместе систему” — так было в случае с IBM). “Стратегический альянс” не выгорел, а переписывание внутри занимало слишком много времени и сил (если интересно, можете поискать в интернете по ключевому слову Copland), поэтому компания решила прикупить “на стороне” операционную систему и на ее основе сделать свою новую. Варианты сузились до BeOS (разработчик — Be, Inc, организованная Жаном-Луи Гассе, выходцем из Apple) и NeXTSTEP (разработчик — NeXT, организованная Стивом Джобсом, выходцем известно откуда). Не вдаваясь в подробности, скажу лишь, что в 1996 году Стив Джобс “продал” всю компанию NeXT за 429 млн долларов Apple, и на основе NeXTSTEP Apple представила в 1997 году стратегию дальнейшего развития своей операционной системы. По этой стратегии Apple “сливала” (вовсе не от фразы “слив защитан) вместе Mac OS и NeXTSTEP, и получившийся Франкенштейн и должен был вывести Apple в светлое будущее. В принципе, план удался, и мне кажется, что большая заслуга в этом именно Mac OS X.
[ad#intext-inside]
Первым релизом стала Mac OS X Server 1.0 где-то в 1999 году, и это действительно был Франкенштейн — фактически это была NeXTSTEP, на которую натянули “маковский” интерфейс (причем интерфейс обычной Mac OS, красивенького Aqua тогда еще не было), вкрутили возможность запускать приложения для Mac OS посредством эмуляции — и “получите!”. До сих пор помню свое первое впечатление от той ОС — настороженность и интерес. И еще то, что “внутри все другое!” — ни тебе System Folder, ни тебе Extensions, ни Control Panels и прочих привычных штук. Зато очень понравилась возможность просмотра файлов колонками, как это сейчас можно делать в Mac OS X — в “классике” этого не было, и, как оказалось, зря, потому что очень удобная штука. А в остальном мир Unix скорее пугал — я был типичным Мак-пользователем, привыкшим делать все с помощью мышки, и командная строка вызывала отторжение (да она и сейчас восторга не вызывает — ну не умею я думать ключами -f, -a и прочими) 🙂 Но было понятно, что тут еще много чего развивать, и поэтому основная работа шла все равно на Mac OS 9.
macosxserver1
Mac OS X Server 1.0 — Mac OS с терминалом
Следующий контакт с этим инопланетным созданием был уже в 2000 году, когда я перешел в компанию, которая занималась разработкой ПО под Мак. Туда приходили версии для разработчиков, и там была возможность посмотреть на то, что Apple готовила — все знали, что Mac OS X Server 1.0 это только начало. Первым звоночком стала версия Mac OS X DP3 (Developer Preview 3), в которой Apple наконец-то включила новый интерфейс под названием Aqua. Вот эти полупрозрачные кнопочки, которые заполненные водой, голубенькие скроллеры, новый полупрозрачный интерфейс “в полосочку” (любовно названный нами “матрас”), Док с огромными (на то время) иконками (представьте себе скачок от 32х32 пикселя до 128х128 пикселей. Это было тааааак прикольно и необычно. Тут же хотелось взгромоздить это все на рабочий компьютер — и начиналось самое неприятное.
Вся эта красота, прозрачности, тени, водичка и проч, страшно тормозила на той технике, которая существовала на тот момент — PowerPC G3 и G4. Это сейчас техника значительно мощнее и позади годы оптимизации и придумывания новых технологий, призванных ускорить процесс (да и памяти сейчас побольше будет — тогда совершенно нормально было работать на 64, а то и 32МБ оперативки, а вся установленная система умещалась мегабайт в 150-200). А тогда элементарный процесс прокрутки окна превращался в мучение, так как на экране все дергалось и притормаживало при отрисовке. А про изменение размера окна даже и не вспоминаю — это сейчас выглядит шустро и красиво, даже с перерисовкой контента в режиме реального времени. А тогда Mac OS X могла это делать только рывками, что выглядело странно и неприятно, особенно после Mac OS 9, которая умела шустренько ресайзить окна. Правда, она для этого использовала хитрость в виде ресайза аутлайном (вначале изменялась только рамка окна, а затем, когда пользователь отпускал кнопку мышки, отрисовывалось окно целиком). Было понятно, что это — “наколка туристов”, но ощущения от работы “старой” ОС были именно такие: тут все работает быстро, а там — “тормозааааа”. Ощущения примерно как пересесть с Windows XP на Vista.
Это ощущение “тормозов” не покидало меня (да и пользователей — я не был одинок в этом) до появления Mac OS X 10.2 (Jaguar), которая стала более-менее “юзабельной”, да и обросла различными фичами, которые были в Mac OS 9, но не вошли в первые версии Mac OS X, например, просмотр DVD или запись дисков. Именно в 10.2 Apple впервые использовала технологию Quartz, позволявшую разгрузить процессор от выполнения графических задач и перебросить их на видеоакселлератор, после чего стало легче работать с интерфейсом. Но я перепрыгиваю вперед.
000921_osx-1jpg
Вот так выглядела Public Beta
Предварительные версии Mac OS X — и DP3, и DP4, и Public Beta, которую выпустили осенью 2000 года, и даже бета-версии релизной 10.0 — настолько тормозили, что многие пользователи просто не верили, что Apple всерьез собирается выпустить “ЭТО” на рынок. Ходили даже слухи, что якобы есть секретная версия, которая работает быстро, а медленную версию Apple показывает для того, чтобы запутать Microsoft (вот такие фантазии, да — и кто-то в них даже верил). Однако, выход 24 марта 2001 года релиза 10.0 развеял все эти надежды — 10.0 как раз и походила на бета-версию, с отсутствующей функциональностью и тормозами. Забавно, что, как потом мы узнали, кодовое имя версии 10.0 было Cheetah — гепард, которое, как известно, самое быстрое животное на планете. Вот такая ирония судьбы.
[ad#intext-inside]
Что-то больше похожее на релиз Apple выпустила через полгода, в виде 10.1 под кодовым названием Puma, которая была более оптимизированная по производительности, ну а дальше производительность только улучшалась. Сравнение с переходом с XP на Vista еще актуально и по другому поводу — система работы с “железками” полностью изменилась, и драйвера под все устройства “протухли”. С приложениями ситуация была тоже похожая — те приложения, которые существовали под Mac OS 9, в Mac OS X работали только в режиме эмуляции “классической” Mac OS, а для того, чтобы избавиться от эмуляции, приложения надо было серьезно обновлять или переписывать. В зависимости от подхода программистов, обновленные приложения на Mac OS X могли выглядеть очень страшно, а переписывать с нуля приложения вроде Photoshop, с миллионами строк кода, конечно же, никто не собирался. Так и приходилось мучаться с ужасно выглядящими приложениями, а в первые годы после выхода Mac OS X — еще и с тем, что многие программы работали в режиме эмуляции, что приводило к своим собственным глюкам. Ну и при всей тормознутости нативного, “водяного” интерфейса Mac OS X, он все равно оставался красивыми и приятным, и любое столкновение со старым интерфейсом было неприятным.
А вообще, сейчас, оглядываясь на тот период, я понимаю, что превалировал тогда в настроении и восприятии новой системы прежде всего страх, страх неизведанного, и страх того, что все мои старые знания окажутся ненужными. Как же так, я до этого много лет занимался Mac OS (с 1994 года), я ее знал всю насквозь как свои 5 пальцев, а тут приходит что-то новое, чего я не знаю, как же быть, что делать, и куда девать бесполезные теперь знания??? 🙂 Но оказалось, что достаточно окунуться в тот интересный мир изучения нового — и там будет тоже весело. Mac OS 9 -> Mac OS X, Carbon -> Cocoa, PowerPC -> Intel, интересно, что дальше?