О Xerox, Apple и прогрессе

Материал переведен и опубликован с разрешения автора оригинала — Брюса Хорна. Брюс работал в Xerox PARC в 70x и в Apple начала 80х (разрабатывая интерфейс Macintosh). Человек буквально "держал свечку", когда Джобс и его команда посещали Xerox, поэтому имеет уникальную позицию, чтобы комментировать тему взаимоотношения этих двух компаний.

О Xerox, Apple и прогрессе

С чего всё началось

Уже больше десяти лет1 я слышу споры о том, откуда появился пользовательский интерфейс Macintosh. Большинство людей считают, что он был напрямую заимствован у Xerox после того, как Стив Джобс посетил Xerox PARC2 (Исследовательский центр в Пало-Альто). Этот «факт» повторяют снова и снова, как те, кто не знает лучше, так и те, кто должен бы знать! К сожалению, это не так — между интерфейсом Apple и различными интерфейсами Xerox действительно есть сходство, но различия куда более существенны.

Стив действительно видел Smalltalk3 во время визита в PARC. Он видел интегрированную среду программирования Smalltalk с мышью для выделения текста, всплывающими меню, окнами и так далее. Группа Lisa в Apple создала систему, основанную на собственных идеях, смешанных с тем, что они запомнили из демонстрации Smalltalk, а команда Mac создала ещё одну систему. Между использованием Mac и Smalltalk есть значительная разница.

В Smalltalk не было Finder4, да и не было в нём особой нужды. Перетаскивание файлов появилось в группе Mac, как и многие другие уникальные концепции: ресурсы и файлы с двумя потоками для хранения макета и международной информации отдельно от кода; процедуры определения; перетаскивание для расширения и настройки системы; типы и создатели файлов; прямое редактирование имён документов, дисков и приложений; дублированные типизированные данные для буфера обмена; множественные представления файловой системы; аксессуары рабочего стола и панели управления, и многое другое. Группа Lisa также изобрела некоторые фундаментальные концепции: выпадающие меню, модели отображения и окон на базе QuickDraw5, буфер обмена и программное обеспечение, легко поддающееся интернационализации.

В Smalltalk использовалась мышь с тремя кнопками и всплывающие меню, в отличие от строки меню и однокнопочной мыши Mac. В Smalltalk даже не было самовосстанавливающихся окон — нужно было кликать по ним, чтобы они перерисовывались, а программы не могли рисовать в частично перекрытых окнах. Билл Аткинсон этого не знал, поэтому он изобрёл области как основу QuickDraw и Window Manager, чтобы быстро рисовать в перекрытых окнах и обновлять части окон, выведенных на передний план. Одна из функций Macintosh, идентичная Smalltalk, — это основанное на выделении, немодальное редактирование текста с вырезанием и вставкой, созданное Ларри Теслером для его редактора Gypsy в PARC.

Как вы, возможно, уже поняли, разница между архитектурой систем Xerox и Macintosh огромна; гораздо больше, чем между Mac и Windows. Это неудивительно, ведь Microsoft увидела немало дизайна Macintosh (API, примеры кода и прочее) во время разработки Mac с 1981 по 1984 год; целью было помочь им писать приложения для Mac, а также предоставить их системным дизайнерам шаблон для создания Windows. В отличие от этого, дизайнеры Mac и Lisa были вынуждены изобретать свои собственные архитектуры. Конечно, в группах Lisa и Mac были бывшие сотрудники Xerox, но концепция этих машин настолько отличалась, что мы не использовали наши знания о системах Xerox так сильно, как думают некоторые.

Аппаратная часть также была огромным шагом вперёд. Она предлагала всё-в-одном, четырёхголосый звук, компактный корпус, часы, авто-выброс дискет, последовательные порты и так далее. Маленький, портативный и привлекательный корпус был серьёзным отходом от уродливых коробок ПК, благодаря Джерри Маноку и его команде. Даже упаковка отличалась креативностью и страстью — помните ли вы, как распаковывали оригинальный 128K Mac? Сам Mac, инструкции по распаковке, прекрасно иллюстрированные и написанные руководства и анимированная обучающая программа с аудиокассетой были аккуратно упакованы в картонную коробку с графикой в стиле Пикассо на боку.

Оглядываясь назад

На мой взгляд, архитектуры программного обеспечения, разработанные в Xerox для Smalltalk и Xerox Star6, были значительно более продвинутыми, чем у Mac или Windows. Star был выдающимся достижением с функциями, которые современные системы даже не начали реализовывать, хотя я считаю OpenDoc серьёзным шагом вперёд по сравнению с системами Xerox. Я испытываю большое уважение к выдающимся компьютерным учёным из Xerox PARC, которые проложили путь инновациям, которые мы сейчас воспринимаем как должное, и у которых я многому научился в проектировании программного обеспечения.

Apple могла бы создать более сложную, изощрённую систему, соперничающую с архитектурами Xerox. Но Mac нужно было выпустить, и он должен был быть относительно недорогим — мы не могли позволить себе время или расходы на «наилучший» дизайн. Как «младший брат» Lisa, Macintosh не имел многозадачности или защиты — у нас не было места для дополнительного кода или стека. У оригинального Macintosh были крайне жёсткие ограничения по памяти и диску; например, Resource Manager занимал менее 3000 байт кода в ПЗУ, а Finder — всего 46 КБ на диске. Мы приняли множество решений, о которых потом сожалели — даже тогда некоторые из нас были разочарованы компромиссами, на которые пришлось пойти — но если бы мы поступили иначе, выпустили бы мы продукт вообще?

Прошлое и будущее

Во многих отношениях мир вычислительной техники сделал удивительно мало шагов вперёд с 1976 года7, и мы постоянно изобретаем велосипед заново. Smalltalk имел хорошую байткодовую мультиплатформенную виртуальную машину задолго до Java. Объектно-ориентированное программирование сейчас в моде, а ему почти 30 лет (см. язык Simula-67)8. Среды разработки тоже мало изменились: я считаю, что среды Smalltalk конца 1970-х были самыми приятными, чистыми, быстрыми и плавными из всех, что я когда-либо использовал. Хотя CodeWarrior вполне хорош для разработки на C++, я не видел ничего, что бы сравнилось со Smalltalk-системами, которыми я пользовался почти 20 лет назад. Современные Smalltalk-системы, на мой взгляд, уже не такие чистые, простые и хорошо спроектированные, как оригиналы.

Мы даже не близки к идеальному вычислительно-информационно-коммуникационному устройству9. Нам предстоит ещё много работы над архитектурой систем и пользовательскими интерфейсами. В частности, проектирование интерфейсов должно определяться глубокими архитектурными вопросами, а не просто новыми графическими образами; интерфейсы — это структура, а не картинка. Ни Copland, ни Windows 95 (ни даже NT) не являются последним словом в операционных системах. К сожалению, рыночные силы замедляют развитие следующей революции. Тем не менее, я думаю, вы можете рассчитывать на то, что именно Apple принесёт эти улучшения в системы следующего поколения.

Я уверен, что некоторые вещи, которые я помню как появившиеся в Apple, были независимо разработаны и в других местах. Но именно Mac принёс их миру.

Брюс Хорн, 1996 год.

__________________

Эта и многие другие статьи о прошлом, настоящем и будущем компании Apple в моем Telegram-канале.

Начать дискуссию