Восемнадцать месяцев Джонсон потратил на то, чтобы сконструировать такую систему: разрабатывал базовые методы взаимодействия программ в рамках новой технологии. После завершения работы он написал бизнес-план и отнес его в компанию, занимающуюся рисковыми инвестициями в технологии. "Вначале проект им очень понравился,— вспоминает Джонсон,— однако, узнав, что за этим стоит Apple, они сказали: "Мы знаем, как Apple поддерживает свою молодежь", и попросили принести документ, подтверждающий участие компании в проекте, а также ее инвестиционный план. Apple к тому времени уже забыла про АЕ, завалив этой работой своих компаньонов из малых фирм". Поскольку Джонсон все свои силы и сбережения отдал АЕ, он остался практически ни с чем, без средств к существованию — воспоминания о Apple у него весьма горькие. (Позже Apple де-факто включила AppleEvents в System7, но это запоздалое решение не помогло Джонсону расплатиться с долгами.)
Слишком многим разработчикам Макинтоша пришлось столкнуться с таким пренебрежительным отношением, поэтому неудивительно, что большинство предпочли сотрудничать с Microsoft и заниматься разработкой Windows, особенно после выхода первой версии Windows в 1990 году. В конце концов, потребительский рынок, на который работала Microsoft, был раз в десять больше. Что касается перспективных разработок, здесь Билл Гейтс не был беспечным игроком, впрочем, как и Apple, так что поворачиваться к нему спиной было бы опасно, особенно если вы занимаетесь проектами, способными составить серьезную конкуренцию продукции Microsoft. Билл всегда оставался самим собой. Он распахнул двери своей компании перед инженерами, предлагая им самые современные средства технической поддержки и инструменты для программных разработок, в общем все, что необходимо для того, чтобы делать высококлассные программы для Windows.
Без инструментов, превращающих программирование в своего рода колдовство, компьютерная индустрия развиваться не могла. Нерасторопность Apple в разработке таких инструментов для PowerPC могла поставить под угрозу весь проект перехода на Power Мас.
Инструменты для разработки программ можно сравнить с системой канализации в доме: вы не обращаете на нее никакого внимания, пока все работает исправно, но если что-то там ломается, в доме жить становится невозможно. Так и в программировании. Программисты корпят денно и нощно над каждой строчкой кода — набором конкретных машинных инструкций. Однако, чтобы этой программой можно было пользоваться, код должен последовательно пройти всю систему средств разработки программ.
Два таких ключевых инструмента — компилятор и отладчик. Компилятор использует программный код, написанный на одном из языков программирования, например С или C++, и преобразует его в язык машинных инструкций, чтобы он был "понятен" компьютеру. На техническом жаргоне это называется "сборка". Затем за работу принимается отладчик: он помогает выявить неочевидные ошибки. Такие неполадки, не отслеживаемые компилятором, могут нарушать работу программ, приводя к ошибкам в вычислениях, внезапным "зависаниям" процессов, могут даже вывести компьютер из строя.
Разработка программистских инструментов считается самой прозаической работой, грязной, рутинной. Но кто-то же должен ею заниматься! Для Microsoft инструменты всегда были делом первостепенной важности, возможно, без них создание программ для Windows и DOS было бы делом безнадежно трудоемким. Apple также требовались инструменты для написания программ, работающих под Мас.
Решающее значение имеет также создание среды программирования. Удобство среды программирования сопоставимо с преимуществами сборной перегородки для домашнего ремонта. Вам не надо идти на лесосклад и подбирать доски необходимого размера или гвозди. Вы просто обращаетесь в строительную компанию и получаете сборную стенку. Сэкономив время, вы сможете сосредоточиться на более важных задачах, таких как планирование квартиры в целом или внутренняя отделка.
В компьютерном деле среда программирования оперирует уже готовыми программными блоками, что позволяет создавать программы под определенную операционную систему, не отвлекаясь на проработку отдельных, наиболее трудоемких и, в сущности, стандартных блоков программ. Программист получает возможность сконцентрироваться на чем-то конкретном, например на создании самой быстрой в мире программы проверки орфографии, не отягощая себя изобретением велосипеда, т.е. разработкой той части кода, что уже включена в среду программирования. У Microsoft была среда программирования для Windows, у Apple — для Мас.
Однако создание среды программирования для Power Мас шло безобразно медленно, на грани провала, в результате чего разработка программистских инструментов оказалась сорвана. Здесь то и начался весь тот кошмар, который получил название Bedrock.
Одной из причин этого было сотрудничество в начале девяностых многих разработчиков Мас в проекте Windows. Такая тенденция вызывала серьезную обеспокоенность в верхних эшелонах Apple. Система Мас по-прежнему в техническом плане превосходила Windows, однако в 1992 году Microsoft, выпустив на рынок Windows 3.1, оказалась близка к тому, чтобы уменьшить разрыв. В этой последней версии были исправлены многие недостатки Windows 3.0, ее сделали более удобной для пользователя. Другими словами, Windows стала более "макинтошевской".
Разработчики, имеющие дело с Windows, столкнулись с необходимостью переписывать свои программы, первоначально созданные для Макинтоша, под среду Windows, т.е., по сути, вынуждены были писать вдвое больше программ. Общий результат не оправдывал затраченных усилий. Но отказаться от преимуществ сотрудничества с Windows они не могли. Становилось все более очевидным, что позиции Windows на рынке уже нельзя недооценивать. Остановить Windows оказалось невозможно. В 1993 году в мире было продано более 30 млн. компьютеров, поддерживающих Windows,— в десять раз больше, чем Макинтошей.
Это стало для корпорации Apple проблемой номер один. Чем больше времени программисты отдавали Windows, тем меньше они занимались разработкой новых программ для Мас; задержки с выходом новых версий программ приводили к падению спроса. К тому же в один прекрасный день программисты могли и вовсе забросить Мас, чтобы целиком переключиться на Windows. Apple пришлось искать способы сохранения своей команды.
Стив Вайл, директор отдела разработки новых инструментов программирования фирмы Apple, долго размышлял над этой проблемой и в 1992 году пришел к выводу о необходимости создания какого-то технического средства, которое позволяло бы программисту писать программу один раз, а потом конвертировать ее по своему желанию или в формат Windows, или в формат, поддерживаемый операционной системой Мас. К разработкам в рамках подобной технологии уже вплотную подошли три крупнейшие компании — Adobe (известная своей технологией универсального формата для принтеров — PostScript, а также рабочими редакторскими программами, такими как Illustrator), Aldus Corporation (редакторская программа PageMaker) и Symantec Corporation (программа для организации рабочего места Norton Utilities). Их проекты были нацелены на создание межплатформной среды программирования. Во всех этих фирмах, однако, проекты подобной среды программирования имели статус служебных проектов, нацеленных не на индустрию программирования в целом, а на поддержание собственных программных разработок для тех же Windows или Мас.
Независимая от платформы среда программирования предполагает дальнейшее развитие концепции модульного подхода в построении программ, когда вам не надо каждый проект начинать с нуля. Межплатформная среда программирования представляет собой гигантский шаг вперед: один и тот же программный код можно потом использовать в разных целевых проектах, в одном случае для создания программы под Windows, в другом — под Мас. В такой среде программирования сегодня вы можете генерировать программу для Windows, а завтра, используя тот же самый исходный код, попросить вашу программную оболочку создать программу для Мас. Не нужно никаких исправлений в исходном коде, обо всем позаботится среда программирования.
Эта идея становилась все более привлекательной по мере того, как Windows шла в гору. С другой стороны, ее оживленно обсуждали все участники рынка компьютерной индустрии: появилась надежда на создание "абсолютно" универсальных программ, которые можно будет запускать на любом персональном компьютере. Но в те годы это было еще преждевременным: проблема приобрела глобальные черты лишь в 1995 году, с первыми шагами по планете Интернета. Тогда фирма Sun Microsystems и разработала новый язык программирования, названный Java, с помощью которого программисты смогли создавать программы, работающие через Интернет практически со всеми типами компьютеров.
Сопоставляя различные программные оболочки — межплатформные среды программирования, Вайл пришел к выводу, что вариант Adobe представляет собой не совсем то, что нужно, а проект фирмы Aldus слишком дорог. Тогда он решил проконсультироваться с Лонни Миллетом, инженером Apple из отдела разработки инструментов программирования. Вайл сообщил Миллету, что Aldus просит миллион долларов за передачу Apple прав на свой проект Vamp. Миллет уговорил Вайла не идти на такие расходы, а обратиться к стартовавшему год назад проекту Bedrock фирмы Symantec.
Директором Symantec, расположившейся по соседству с Apple в Купертино, был Гордон Эвбанкс, которого среди компьютерщиков все знали как человека Билла Гейтса: он уже давно и совершенно без тени смущения пользовался поблажками и подачками со стороны короля Microsoft. Компания Эвбанкса специализировалась на разработке вспомогательных программ — утилит, которые Обычно встраиваются в операционную систему и выполняют такие, например, функции, как автоматическое сохранение копий файлов. Параллельно Symantec ванималась средствами разработки программ. Приверженность Symantec компании Microsoft объяснялась просто: львиная доля всей программной продукции Symantec выпускалась для использования совместно с операционными системами, разрабатываемыми в Microsoft. Это несколько проясняет все то, что случилось с Apple, с ее проектом Bedrock и, позднее, с проектом разработки программных инструментов Rainbow.
Эвбанкс поддерживал и Мас, по крайней мере, до тех пор, пока это не стало обходиться ему слишком дорого. Пытаясь избавить свою компанию от бремени разработок для Мас, он в 1987 году убедил руководство Symantec приобрести небольшую компьютерную компанию Think Technologies, расположенную в Бедфорде, штат Массачусетс. Она занималась разработкой среды программирования на языке Think Pascal для Макинтоша (Pascal до сих пор широко используется как базовый язык для разработок в области программного обеспечения Макинтоша). Позже, в 1991 году, Эвбанкс открыл для себя новые возможности уменьшения расходов: он поручил людям, прежде входившим в Think, разработку программной среды, в которой возможно создание программ, ориентированных как на Windows, так и на Макинтош. Это и был проект Bedrock.
В начале 1992 года Вайл со своими инженерами посетил штаб Symantec в Купертино. Он ознакомился с проектом Bedrock, который, по словам разработчиков, был почти завершен, и дал согласие на совместную разработку межплатформной среды программирования, что позволило бы программистам составлять программы, не заботясь о их совместимости с той или иной платформой. Если говорить точнее, этот совместный проект означал для Symantec сохранение всех своих прав в проекте Bedrock, включая право на продажу, т.е., если Apple намерена воспользоваться Bedrock, она должна была платить за него на общих правах.
Лонни Миллет скептически отнесся к этой сделке Вайла. Единственное, что на тот момент было известно о Bedrock, это о совместимости с Windows, лишь эта часть хоть какого работала. А часть, совместимая с Макинтошем, находилась еще в зачаточном состоянии. Таким образом, в то время Bedrock мог создавать лишь программы под Windows, и ни подо что другое. Это половина проекта, причем та половина, в которой была заинтересована исключительно Microsoft. Более того, настаивал Миллет, как бы к этому ни подходить, сделка сулит выгоду Symantec. Все права на Bedrock остаются у Symantec, за любое его использование Apple должна будет платить. Чертовски выгодная сделка — для Symantec. "Я счел своим долгом сообщить, что такие уступки — это слишком",-вспоминает Миллет.