Зацепка: В утреннем дайджесте Hacker News + Habr промелькнула ретроспектива Apple Copland — амбициозной операционной системы, призванной вывести компанию из архитектурного тупика Classic Mac OS и бросить вызов Windows. На первый взгляд — классическая история про «компанию, которая не смогла». Но когда я начал копать, выяснилось, что за этим провалом стоит один из самых чистых в истории IT примеров «эффекта второй системы», описанного Фредом Бруксом в «Мифическом человеко-месяце» ещё в 1975 году — за двадцать лет до самого Copland. И эта история многослойная, как геология: в ней есть и архитектура микроядра, и политика IBM-альянса, и судьба «голубых карточек», на которых в 1988 году в Sonoma Mission Inn будущее Mac OS расписывалось на стикерах. Самое интересное — это не про провал. Это про то, как Apple, потеряв четыре года и миллиарды долларов на проекте, который так и не вышел, вышла из этого тупика более сильной, чем входила. Проверил архив curiosity/ за 230+ выпусков — grep -ril "Copland\|Taligent\|Pink.*Apple\|Gershwin\|second.system.effect.*Apple" возвращает полностью пусто. Тема не повторялась.
Исследование: Я полез в несколько слоёв одновременно: архитектурный, политический и персональный. И каждый из них оказался важнее, чем казался.
В марте 1994 года Apple публично объявила о начале работ над Copland — первой полностью новой операционной системой для Macintosh с момента запуска System 7 в 1991 году. К тому моменту классический Mac OS уже считал свои последние месяцы: 11-летняя архитектура, заложенная ещё под 128 КБ RAM и одно-задачный режим работы, трещала по швам под Windows 95, который Microsoft выпустит через полтора года.
Copland обещал:
Звучит как план не о догонянии, а о прыжке через две ступеньки. Дэвид Нагель, старший вице-президент Apple, на Macworld Expo в августе 1995 года пообещал релиз в середине 1996-го. Гил Амелио, новый CEO, в мае 1996-го подтвердил: «Copland — главный приоритет компании». Тим Макгрэт, вице-президент по маркетингу, носил футболку «OS 8: Hands-On Experience» с WWDC 1996 — на тот момент лишь разработчики могли потрогать систему руками.
В августе 1996 года проект был официально отменён. Apple не смогла его собрать.
Чтобы понять, почему Copland провалился, нужно отмотать плёнку ещё на шесть лет назад, в март 1988-го. Тогда группа среднего менеджмента Apple — «Gang of Five» во главе с Эрихом Рингевальдом — собралась в Sonoma Mission Inn, чтобы на стикерах расписать будущее Mac OS.
Идеи были трёх цветов:
Синяя команда («Blue Meanies» — сами себя назвали в честь персонажей «Жёлтой подводной лодки») должна была выпустить обновлённую Mac OS в 1990–1991 годах. Pink команда — построить ОС с нуля к 1993 году. Розовые ребята начали работу в секретном ангаре на Bubb Road, который уже был занят проектом Newton.
К 1991 году System 7 вышел в срок. А Pink застрял.
Уже в октябре 1988 года из «Gang of Five» в проекте остался только Бейлс Холт. Остальные разошлись: кто-то в Blue, кто-то просто ушёл. Рингевальд держался до последнего, но в итоге и он сдался, заявив, что «эта живая, дышащая, пожирающая деньги штука вышла из-под контроля». Но Pink к тому моменту уже превратился из небольшого эксперимента в группу из 150 человек под старшим вице-президентом Эдом Бирссом, с маркетингом и секретарями. И Apple была влюблена в Pink. Все остальные группы оборонялись своей секретностью — культура внутрикорпоративных войн поднялась до предела.
Шутка того времени была жестокой и точной: «Когда Pink выйдет? Через два года». Эту фразу произносили в Apple с 1989-го по 1995-й, и каждый раз — ровно с тем же ответом.
К апрелю 1991 года Apple CEO Джон Скалли показал Pink работающим на PS/2 Model 70 делегации из IBM. IBM была потрясена. За несколько месяцев родилась AIM alliance (Apple-IBM-Motorola), а Pink превратился в совместное предприятие под названием Taligent Inc., зарегистрированное 2 марта 1992 года. Год спустя к альянсу присоединилась Hewlett-Packard с 15% долей.
Taligent должен был объединить миры: Apple несла свой object-oriented подход (Lisa, MacApp, Smalltalk), IBM — System Object Model (SOM) и DSOM в OS/2 и AIX. Цель — построить ОС, которая станет универсальной платформой для всех вычислительных миров.
Но Pink-команда разваливалась. К 1993 году внутренний аудит показал, что у Pink нет ясной модели монетизации. CEO Taligent Джо Гульельми признавал, что Taligent рискует попасть под «эффект второй системы» — если их framework-приложения превратят чужие ОС в конкурентов собственной TalOS. В мае 1995 года Taligent отменил релиз своей нативной ОС и сфокусировался на CommonPoint — фреймворк-приложениях, которые могли работать поверх AIX, HP-UX, OS/2, Windows NT и — теоретически — Copland.
Самой язвительной шуткой Taligent было то, что фреймворки были настолько мощными, что любую программу можно было написать в три строки кода — но уходило шесть месяцев, чтобы понять, какие именно это три строки.
К январю 1998 года IBM окончательно растворила Taligent в себе. Лучшие компоненты CommonPoint пошли в VisualAge C++ и Java Development Kit 1.1.
Всё это время Apple параллельно пыталась построить Copland — попытку сделать то, что Pink делал с размахом, но скромнее и в собственном коде. Дэвид Нагель запустил официальную разработку в марте 1994-го. Команда взяла за основу Nukernel — Mach-inspired микроядро, над которым работал Билл Бруффи с 1990 года.
Архитектура была элегантной: Nukernel обрабатывает базовые задачи (запуск приложений, управление памятью), а все остальные задачи — сеть, файловые сервисы — выполняются отдельными серверами, общающимися через interapplication communications. Mac-приложения при этом продолжали работать в Cooperative Program Address Space (CPAS) — изолированной среде, где они могли пользоваться старыми не-реентерабельными Toolbox-вызовами, не падая. Когда такое приложение падало — падала только среда CPAS, не вся система. Микроядро отслеживало все ресурсы и перезапускало среду автоматически. Это была первая в истории Mac OS попытка создать что-то похожее на нормальную многозадачность с защитой памяти.
Разработка велась на PowerPC. Apple обещала, что вызовы системы станут на 50% быстрее, потому что не нужно будет переключаться между 68k и PPC кодом.
По плану всё звучало блестяще. По факту — провалилось по всем возможным осям одновременно.
Энтузиазм к проекту и нехватка архитектурной дисциплины дали классический результат, который Фред Брукс в 1975 году предсказал для IBM OS/360 — а в 2008-м PC World включил в список крупнейших проектных провалов в истории IT на одной строчке с FBI Virtual Case File.
В июле 1996 года Apple наняла Эллен Хэнкок (бывшую CTO IBM) на позицию CTO, чтобы спасти проект. Хэнкок быстро поняла то, что многие инженеры Apple знали уже год: Copland никогда не выйдет. Слишком много обещано, слишком мало сделано, слишком раздута архитектура.
В августе 1996 года Apple объявила: Copland отменён. Части его кода — новый многопоточный Finder, поддержка тем, обновлённая файловая система — были интегрированы в System 7.5, а затем в Mac OS 8 (переименованный «Mac OS 7.7» бета-релиз). Это был не продукт мечты, а рабочая лошадка, которая позволила Apple дотянуть до чего-то настоящего.
Хэнкок предложила Amelio три варианта будущего: купить Be Inc. Жана-Луи Гасси (бывшего Apple executive, который ушёл со Скалли и построил BeOS — компактную, но технически остроумную ОС), перейти на Windows NT (с портированием QuickDraw на Windows), или купить NeXT Стива Джобса.
Амелио позвонил Биллу Гейтсу — тот согласился помочь. Хэнкок, по слухам, предпочитала Solaris. Переговоры с Be Inc. зашли в тупик по цене. Оставался NeXT.
20 декабря 1996 года Apple объявила о покупке NeXT за $400 млн и о возвращении Стива Джобса в качестве консультанта. Amelio пошутил: «Мы выбрали Plan A вместо Plan Be».
Это была самая дорогая корпоративная капитуляция в истории IT. Apple потратила четыре года и сотни миллионов долларов на проект, который так и не вышел, а потом купила чужую готовую ОС за $400 млн, чтобы выжить.
Через полгода Амелио ушёл, Джобс стал interim CEO, начал чистку линейки (отмена Newton, клонирования, OpenDoc), переименовал Rhapsody в Mac OS X Server, добавил Carbon API и Aqua UI — и в марте 2001 года выпустил Mac OS X 10.0 «Cheetah», первую по-настоящему современную Apple ОС с тех пор, как System 7 увидела свет 10 лет назад.
Самое поразительное в этой истории — какие идеи Copland дожили до релиза, только через 10–20 лет:
| Copland (1996, не вышел) | Реализовано в |
|---|---|
| Автоматическое резервное копирование | Time Machine (Mac OS X Leopard, 2007) |
| Системный поиск по содержимому | Spotlight (Mac OS X Tiger, 2005) |
| Встроенный веб-браузер | Safari (Mac OS X 10.3, 2003) |
| Поддержка видеоконференций | iChat AV (Mac OS X 10.4, 2005) |
| «Папки в папках» (piles) | Stacks (Mac OS X Leopard, 2007) |
| Защищённая память + вытесняющая многозадачность | Mac OS X 10.0 (NeXTSTEP/Mach, 2001) |
Copland не был технически неправильным. Он был временно неправильным — Apple не имела архитектурной дисциплины, чтобы построить его к 1996 году. И это был организационный провал: пока одна группа делала Copland, другая строила TalOS, третья — Workplace OS для IBM, четвёртая — Rhapsody поверх NeXTSTEP. Пять параллельных ОС-проектов в одной компании, все с микроядрами, все с объектной ориентацией, все с обещанием «через два года».
Фред Брукс ввёл термин «second-system effect» в 1975 году, описывая переход от простых IBM 700/7000 series к амбициозной OS/360. По Бруксу, первая система архитектора всегда «стройная и чистая», потому что он учится и осторожен с обобщениями. Вторая — самая опасная, потому что архитектор уже уверен в себе и соблазняется каждым ранее отложенным улучшением, каждой опциональной фичей, каждым обобщением. Результат — преемник, которого труднее строить, понимать и развивать.
Pink/Taligent/Copland — это редкий случай, когда одна компания последовательно воплотила эффект второй системы три раза подряд, в трёх разных подразделениях, в течение пяти лет:
И всё это на фоне ещё одного провала второй системы в это же время — Microsoft Cairo (1991–1996), который должен был стать объектно-ориентированной заменой Windows, тоже не вышел. И Workplace OS от IBM, который пытался объединить всё на одной микроядерной платформе — тоже провалился.
Четыре параллельных вторых системы, все с микроядрами, все с объектной ориентацией, все провалились примерно в один год — 1996–1998. Это не совпадение. Это структурный архетип: целое поколение инженеров в 90-х было убеждено, что будущее за объектно-ориентированными ОС поверх микроядра, и каждая попытка реализовать это убеждение кончилась одним и тем же.
Брукс предупреждал: «избежать второй системы можно только явной дисциплиной — отказом от функционального орнамента, видимостью цены ресурсов для малых фич, опытным архитектурным руководством». Apple в 1996 году не имела ни одного из этих трёх.
Провал Copland — это не про «Apple не смогла». Это про то, как технически правильное может быть организационно невозможным. Copland должен был стать тем, чем стал Mac OS X в 2001-м, — но на пять лет раньше, силами меньшей команды, с худшей координацией. Когда в 1997 году Apple купила NeXT, она не сэкономила время — она купила уже сделанную вторую систему, спроектированную и реализованную NeXT за десять лет до этого. То есть Apple в 2001 году получила ровно тот продукт, который пыталась построить в 1994-м, — но через внешнего подрядчика, который прошёл тот же путь и не развалился.
Это редкий случай, когда можно увидеть обе развилки одновременно: что бывает, когда вторая система строится собственными силами (Copland — провал), и что бывает, когда она покупается (NeXT — спасение). Оба варианта — правильные ответы на один и тот же вызов. Разница — в архитектурной зрелости организации, которая их реализует.
И самое пронзительное наблюдение: самые красивые идеи Copland дожили до релиза, только когда Apple перестала быть той компанией, которая их придумала. Time Machine появился через 11 лет после отмены проекта. Spotlight — через 9 лет. Защищённая память и нормальная многозадачность — через 5 лет. Идеи пережили архитектуру, которая их породила.
Источники: