О Xerox, Apple и прогрессе
Оригинальная статья 1996 года была переведена мной и опубликована с разрешения автора оригинала — Брюса Хорна. Брюс работал в Xerox PARC в 70x и в Apple начала 80х (разрабатывая интерфейс Macintosh). Человек буквально "держал свечку", когда Джобс и его команда посещали Xerox, поэтому имеет уникальную позицию, чтобы комментировать тему взаимоотношения этих двух компаний.
Сноски с комментариями я добавил уже сам, чтобы легче было понимать контекст.
С чего всё началось
Уже больше десяти лет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 год.
Оригинал статьи опубликован в 1996 году. Я наткнулся на нее на сайте Энди Хертцфельда Folklore, своего рода онлайн-музее, где собрано более 100 заметок и воспоминаний от людей, работавших в Apple над созданием первого Macintosh. Отменный ресурс на котором можно надолго застрять. По собранным на нем историям в 2004 году Энди выпусти книгу Revolution in the Valley.↩
Абсолютно легендарный исследовательский институт, основанный в 1970-м году компанией Xerox, и подарившей человечеству: графические интерфейсы, манипулятор "мышь", лазерные принтеры, ethernet и многое другое. Несколько лет назад "Ксерокс" передали PARC некоммерческому НИИ SRI International.↩
Один из первых объектно-ориентированных языков программирования.↩
Файловый менеджер Finder — одно из основных приложений в макОС, начиная с ее самых первых версий.↩
Это проприетарная графическая библиотека / подсистема оригинальной macOS.↩
Xerox Star (1981 год) стал первым коммерческим компьютером, имевшим графический интерфейс. Его программное обеспечение основано на наработках концептуальной системы Xerox Alto (той самой, что вы можете видеть на обложке к этой статье), разработанной в PARC. Когда я пишу "коммерческий", вы представляете себе продающееся в магазинах устройство, но у "Ксерокса" была другая стратегия. Они продавали эти машины крупным корпоративным партнерам за баснословные деньги (75 тысяч долларов вступительный взнос за базовую систему + 16 тысяч за каждый дополнительный компьютер. Чтобы вы понимали, с учетом инфляции, сейчас это эквивалентно 260 и 57 тысячам долларов соответственно). Сами же Alto, хоть к 79 году их и насчитывалось в офисах Xerox около 1000 штук, никогда не планировалось продавать. Поэтому за пределы офисов компании они так и не вышли.↩
В 96 году, когда персональные компьютеры все еще были диковинкой, а доступ в интернет имел 1% населения земли, это заявление имело куда больше веса, чем сейчас. Время бежит быстро, а технологии развиваются невероятными темпами. Видел бы господин Хорн, какая производительность у современных процессоров В ТЕЛЕФОНАХ, видел бы он современные LLM и хитрые VR технологии — он бы сошел с ума.↩
ООП уже почти 50 лет и оно не собирается на пенсию в обозримом будущем)↩
Вот уж удивительно, потребовалось всего 11 лет, и Apple выкатили на рынок iPhone. Мне кажется можно смело называть его тем самым идеальным вычислительно-информационно-коммуникационным устройством о котором писал Брюс.↩
Copland — это проект новой версии macOS после System 7 (той ОС, которая стояла на маках в начале-середине 90х). Проект был отменен, а на его замену Apple стали искать другие программные продукты. Так в компанию вернулся Джобс и его наработки в компании NeXT. В том числе операционная система Nextstep, на базе которой, по итогу, возникла macOS X.↩