Copland: путешествие в сослагательное наклонение

Иногда нестерпимо хочется представить себе, что бы произошло, если бы не случилось то или иное событие. Занятие бессмысленное, никто не знает всех обстоятельств ситуаций, и с вероятностью близкой к единице все было бы по другому. И все-таки, позволим себе…

Copland: путешествие в сослагательное наклонение. Фото.

Что было бы, если бы в августе 1996 года Apple Computer не убила Copland? С проектом надо было что-то делать, он вышел из под контроля и “завис”. Поэтому вариант “в августе 1996, в конференц-зале кампуса Apple, представители компании увлекательно рассказал о перспективах разрабатываемой системы, о сложностях и проблемах, и о переносе выхода DR1 (Developer Release, бета-версии системы) на более поздний срок” рассматривать мы не будем. Он тривиален. Скорее всего, было бы еще хуже.

Представим себе, что было бы, если бы кто-то (хотя бы та же самая Эллен Хэнкок), вернул проект в адекватное состояние, определил приоритеты – пусть даже не совсем удачные, и, в общих чертах, говоря только правду, без слова лжи, описал ситуацию и предложил план выхода из неё. Амбициозный, но реалистичный и конкретный. Выполнение которого легко проверить, по пунктам.

Основная аудитория выступления – разработчики. Те, кто отлично знает, как впиваются в самые нежные зоны души острые грани “мягкой рухляди” (основным переводом слова software, на протяжении веков, был именно этот), они бы поняли. Момент бы удачный, у компании было новое руководство – и признаться в очевидном можно было без потери лица. Врали.

Делаем долго… Но системы, которые пишутся без труда, не доставляют удовольствия.

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

Особенно на ядре системы.

Ядерная метафизика

Подчеркивая относительную несложность концепций (например, тех на которых основана технология Core Data), говорят “это не ядерная физика”. То есть, что-то понятное простым смертным.

Про микроядро системы этого не скажешь. В 1998-99 команда, занимавшаяся микроядром Mac OS X (тогда еще Rhapsody), поручала рассказывать о своей работе инженеру, который или закончил “цирковое училище” (не знаю, как такие заведения называются в США), или фокусы были его хобби – но свои выступления он (не помню его имени!!!) предварял серией манипуляций с шнурами.

Вот длинный прочный шнур. Вот он завязывается в узел, и… распадается на два шнура. И обратно – длинный прочный шнур, без следов разрыва. “Это и есть суть ядра системы, оно должно быть прочным и невидимым”. И, кроме всего прочего, “выдержанным”. Оно играет в системе очень важную роль, от него зависит её судьба.

Это одна из самых консервативных частей операционной системы. Когда в неё нужно что-то добавить, следует очень хорошо поискать все возможные варианты не делать этого, а если вариантов нет – тестировать и отлаживать эти изменения в течении лет, до полной и абсолютной уверенности в надежности и целостности ядра.

Любое подозрение на проблему должно тщательно расследоваться. Это не программное обеспечение, это магия. Или акробатика на тоненькой струне над пропастью.

Это я к тому, что самой главной и болезненной проблемой DR0 было ядро NuKernel.

У Джефа Робина и его небольшой команды не было никаких шансов создать, на основе Mach 3.0, своё собственное микроядро, вызывающе необычное, меньше чем за год. Это было первое микроядро в их жизни. Они отлично разбирались в теме, они просто бредили ей – но не наделать ошибок, нарушая законы написанные кровью предшественников, они не могли.

Нескольких лет на отладку ядра до идеального состояния у них просто не было. NuKernel в DR0 был ранней альфа-версией, NuKernel в DR1, который, за пределами Apple никто не увидел, был бы не более чем еще одной альфа-версией. Но след чуть более продвинутая версия NuKernel в истории оставила. Зафиксированный документально.

19 марта 1996 года разработчики NuKernel подали заявку на патент. Суть заявки: “Система и методы обмена объекто-ориентированными сообщениями”. 31 декабря 1996 года патент был выдан. US Patent 5 590 334.

В “альтернативном” августе 1996 года, NuKernel стал бы самой приоритетной задачей, на его тестирование и отладку были бы выделены силы и средства, отвечающие важности этой задачи. Адекватный руководитель проекта уговорил бы опытных “ядерщиков” со стороны вступить в команду, может быть даже поставив их над Джефом Робином. Вторая альфа-версия в DR1 была бы заметно ближе к идеалу.

Сроки

Операционные системы создаются долго. От первых строчек в техническом задании до первого “боевого” релиза, который почти всегда становится публичной бета-версией, чаще всего, проходит примерно пять лет. Если система создается с нуля.

Copland: путешествие в сослагательное наклонение. Сроки. Фото.

Административные подвиги вроде “поднажать”, “кровь из носа”, и прочие подобные, могут ускорить разработку, ненадолго – но ценой этого ускорения будут проблемы, которых без него не возникло бы, и устранение которых отнимет намного больше времени, чем кто-то сэкономил. Такое ускорение запросто может поставить проект под угрозу срыва, а то и убить его.

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

С мая 1994 года по август 1996 прошло 2 года и 2 месяца. Три четверти этого времени не пошли системе впрок: эффект от управления проектом был резко отрицательный. Люди делали то, что должны, вопреки указаниям руководства. Их за это наказывали.

В 1997 году, даже если бы в августе 1996 все радикально изменилось, и даже в режиме “кровь из носа”, выпустить Copland 1.0 (или Mac OS 8) было невозможно. Современная ОС могла появиться у Apple в 1999 или 2000 году.

Назвать 1999 сроком выпуска Copland в 1996 году было бы жестоко. System 7.5, все еще, была единственной операционной системой у Apple. Производителей клонов интересовала BeOS, превосходившая Mac OS по всем пунктам, кроме одного: для BeOS практически не было программного обеспечения.

Занявшись современной ОС, руководство Apple совершенно перестало интересоваться “старой”. По мнению руководства, в этом не было смысла – еще одно или два усилия, и рынок будет нокаутирован новой системой…

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

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

А в 2000 или 2001 году Copland 1.0, более или менее триумфально, вышла бы в свет.

А в чем тогда разница?

В каком году Apple Computer выпустила Mac OS 10.0? Версию, которой невозможно было пользоваться. Не говоря о реальных багах, которые могли повредить данные, в ней очень медленно перерисовывались окна.

В том же 2001 году, примерно через полгода после Mac OS 10.0, Apple выпустила 10.1.

Компания не могла не выпустить релиз в начале года (но фактически, это была еще одна публичная бета-версия), а 10.1 можно считать третьей бета версией. Временами, именно политика диктует что и как надо делать. В 10.0, рассказал Стив, из-за бага в оконной системе, окна перерисовывались по три раза.

В 10.1 с перерисовкой стало намного лучше, но она все равно была очень медленной. Вот он, этот Quartz! В 10.2 Quartz, наконец, заработал как надо.

На разработку Mac OS X, официально, ушло 4 года. Если посчитать по факту, включая год бета-тестирования пользователей (проверялось наше терпение) в время создания системы, оно заняло 5 лет.

Copland 1.0 вышла бы в 1999 или 2000 году, только Apple не пришлось бы пережить:
резкое падение спроса после объявления о закрытии Copland;
гигантские убытки из-за падения продаж;
массового ухода разработчиков на другие платформы, из-за падения спроса и неверия в способность Apple Computer что-то исправить;
еще большее снижение продаж после заявлений важных для платформы разработчиков о прекращении разработки программного обеспечения для Mac OS;
падение кредитного рейтинга и авторитета в индустрии.

Полный список того, чего не было бы, занял бы не одну страницу.

У Apple была темная полоса, и проблемы. Но не отчаянные. Решаемые. Для решения этих проблем совет директоров пригласил Гила Амелио, вообще-то физика (неумных физиков не бывает), с опытом реанимации компаний…

Даже если бы Copland вышел в свет в 2002 году, альтернативная Apple пережила бы это.

И, возможно, что-то похожее на iPhone появилось бы году в 2030…

Еще раз, о точности альтернативной версии событий

Фантазировать как все было бы, если бы Ленин утонул в Женевском озере в 1916 году, катаясь по его берегу на велосипеде, если бы Адольфа Г. приняли в художественное училище в Вене, а Copland не закрыли – легко и интересно.

Только вот беда: даже если перечитать абсолютно все источники по рассматриваемой теме, правильно оценить их достоверность, процентов 99 происходившего в то время останется за пределами нашего знания. А именно в этих 99 процентах неизвестной нам реальности, на самом деле, все и происходит…

Тема про Copland закрыта.

История AppleКомпьютеры AppleОперационные системы Apple