Apfelschorle. Мысли про Apple.

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

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

Сноски с комментариями я добавил уже сам, чтобы легче было понимать контекст.

about-xerox-apple-progress-2

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

Уже больше десяти лет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. Нам предстоит ещё много работы над архитектурой систем и пользовательскими интерфейсами. В частности, проектирование интерфейсов должно определяться глубокими архитектурными вопросами, а не просто новыми графическими образами; интерфейсы — это структура, а не картинка. Ни Copland10, ни Windows 95 (ни даже NT) не являются последним словом в операционных системах. К сожалению, рыночные силы замедляют развитие следующей революции. Тем не менее, я думаю, вы можете рассчитывать на то, что именно Apple принесёт эти улучшения в системы следующего поколения.

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

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

  1. Оригинал статьи опубликован в 1996 году. Я наткнулся на нее на сайте Энди Хертцфельда Folklore, своего рода онлайн-музее, где собрано более 100 заметок и воспоминаний от людей, работавших в Apple над созданием первого Macintosh. Отменный ресурс на котором можно надолго застрять. По собранным на нем историям в 2004 году Энди выпусти книгу Revolution in the Valley.

  2. Абсолютно легендарный исследовательский институт, основанный в 1970-м году компанией Xerox, и подарившей человечеству: графические интерфейсы, манипулятор "мышь", лазерные принтеры, ethernet и многое другое. Несколько лет назад "Ксерокс" передали PARC некоммерческому НИИ SRI International.

  3. Один из первых объектно-ориентированных языков программирования.

  4. Файловый менеджер Finder — одно из основных приложений в макОС, начиная с ее самых первых версий.

  5. Это проприетарная графическая библиотека / подсистема оригинальной macOS.

  6. Xerox Star (1981 год) стал первым коммерческим компьютером, имевшим графический интерфейс. Его программное обеспечение основано на наработках концептуальной системы Xerox Alto (той самой, что вы можете видеть на обложке к этой статье), разработанной в PARC. Когда я пишу "коммерческий", вы представляете себе продающееся в магазинах устройство, но у "Ксерокса" была другая стратегия. Они продавали эти машины крупным корпоративным партнерам за баснословные деньги (75 тысяч долларов вступительный взнос за базовую систему + 16 тысяч за каждый дополнительный компьютер. Чтобы вы понимали, с учетом инфляции, сейчас это эквивалентно 260 и 57 тысячам долларов соответственно). Сами же Alto, хоть к 79 году их и насчитывалось в офисах Xerox около 1000 штук, никогда не планировалось продавать. Поэтому за пределы офисов компании они так и не вышли.

  7. В 96 году, когда персональные компьютеры все еще были диковинкой, а доступ в интернет имел 1% населения земли, это заявление имело куда больше веса, чем сейчас. Время бежит быстро, а технологии развиваются невероятными темпами. Видел бы господин Хорн, какая производительность у современных процессоров В ТЕЛЕФОНАХ, видел бы он современные LLM и хитрые VR технологии — он бы сошел с ума.

  8. ООП уже почти 50 лет и оно не собирается на пенсию в обозримом будущем)

  9. Вот уж удивительно, потребовалось всего 11 лет, и Apple выкатили на рынок iPhone. Мне кажется можно смело называть его тем самым идеальным вычислительно-информационно-коммуникационным устройством о котором писал Брюс.

  10. Copland — это проект новой версии macOS после System 7 (той ОС, которая стояла на маках в начале-середине 90х). Проект был отменен, а на его замену Apple стали искать другие программные продукты. Так в компанию вернулся Джобс и его наработки в компании NeXT. В том числе операционная система Nextstep, на базе которой, по итогу, возникла macOS X.