Алан Кей: из гитаристов в пророки
Леонид Черняк
Откуда пошел персональный компьютер?
Бытует каноническая, почти рождественская история о том, как двое юных энтузиастов собрали в гараже первый персональный компьютер, — ну надо же, сошлись два умных парня в папином гараже и собрали. Потом они создали компанию и по имени секретарши назвали свое детище Liza. Первый блин был не совсем удачен, зато второй, на этот раз нареченный по местному сорту яблок Macintosh, пришелся по вкусу: хотя он был недешев, завоевал Америку на многие годы. Однако через некоторое время появился еще один человек, который сумел упаковать основные Мас’овские идеи в IBM PC, назвал это Windows и “осчастливил” все человечество, не забыв и самого себя.
Известна фраза, что революция пожирает своих героев. Если говорить о компьютерной революции, то ее подлинные герои не оказались съеденными, но и не стали в массовом сознании первыми лицами. Вся история информационных технологий — это история поглощения гениев-изобретателей гениями-предпринимателями. В природе есть растения, есть животные-вегетарианцы и есть хищники, читатель сам может найти аналогии.
Отцы-основатели Apple не могли бы сделать свое изобретение — персональный компьютер — с чистого листа, не имея предшественников. Для его появления необходимы были два типа предпосылок: философские и технологические. Совершенно очевидно, что в первые десятилетия развитие компьютеров подчинялось задачам, наиболее актуальным для того времени, — задачам создания расчетных устройств и устройств для систем управления. Благодаря этому была создана технология, а наиболее важным для рождения ПК событием оказалось появление процессора Motorola 68000. Хотя на базе этого процессора велось множество разработок, но ПК сделали в Apple Computers — прежде всего потому, что была подготовлена философская база, которой и воспользовались молодые дарования. Сейчас о технологических предпосылках говорить пока не будем.
Великие предшественники
Среди людей, подготовивших философию персонального компьютера, можно назвать несколько замечательных личностей. Прежде всего это Ванневар Буш (Vannevar Bush), сформулировавший эту идею еще в 1945 г. на основе современных ему фотомеханических принципов. В шестидесятых годах у Буша появилось два преемника: Теодор Нельсон (Theodor Nelson) и Дуглас Энглебарт (Douglas Englebart). Первый развил теорию неиндексированного доступа к данным и стал изобретателем гипертекста. А второй прочитал знаменитую статью Буша As we may think в Atlantic Monthly еще во время службы в армии, где он был специалистом по радарам. В отличие от Нельсона Энглебарт увидел в этой статье нечто другое — возможное интерактивное начало. В своих воспоминаниях он пишет, что мысль о подключении электронной трубки к компьютеру для вывода текстов и изображений родилась у него мгновенно, а на то, чтобы нарисовать блок-схему будущего интерактивного компьютера, ушло менее получаса. Наибольшую известность Энглебарт получил как изобретатель компьютерной мыши. О нем и его работах следует поговорить отдельно.
В данном случае нашим героем является еще один удивительно интересный человек, который и стал наставником отцов-основателей Apple; его зовут Алан Кей (Alan Kay). Уже после появления Macintosh он перешел в Apple Computers, где проработал вплоть до 1996 г. Став совершенно историческим персонажем, Кей и по сию пору активно трудится в компании Walt Disney.
Однако возвратимся в 1979 г. — за несколько лет до появления компьютера Liza. Тогда Стив Джобс, Джефф Раскин и другие первооснователи Apple посетили исследовательскую группу, возглавляемую Аланом Кеем в Xerox PARC, где в ту пору Кей работал над проектом Dynabook, своего рода прототипом современного ноутбука, и одновременно над языком Smalltalk. Именно здесь они переняли философию Кея, его понимание функции компьютера и языков программирования. Собственно, от него они вынесли ведущую постановку задачи на будущее — создание персонального компьютера. Но прежде чем переходить к работам Кея, немного расскажем о нем самом и об уникальном месте под названием Xerox PARC.
Алан Кей и Xerox PARC
Алан Кей родился в начале сороковых годов. Его мать была профессиональной певицей, поэтому в воспитании доминировало гуманитарное начало и значительное место уделялось музыке. В 1961 г. за участие в протесте против введения процентной квоты для студентов-евреев он был исключен из колледжа, стал джазовым музыкантом и преподавателем музыки по классу гитары. Но другой талант, принесший ему гораздо большую известность, неожиданно обнаружился у Кея тогда, когда, поступив добровольно в армию, он прошел тест на способность к программированию, был высоко оценен и направлен в ВВС США для работы на компьютере IBM 1401. После службы в армии была учеба в университете штата Колорадо по специальности “математика и молекулярная биология” и в 1966 г. — переход в университет штата Юта, где произошло знакомство с работами Айвэна Сазерленда, одного из создателей виртуальной реальности. Кей начал программировать на языке Симула, и вот, сочетая идеи, идущие от программирования, со знанием биологии, он сформулировал принцип биологической аналогии. Он утверждал, что идеальный компьютер должен быть подобен живому организму, где каждая клетка индивидуальна, но вместе они могут образовывать единую систему, способную к перегруппировке и изменению структуры.
Осенью 1968 г. у Кея произошла еще одна знаменательная встреча, которая во многом повлияла на его будущее. Он познакомился с Сеймуром Пайпертом (Seymour Papert) и некоторое время проработал вместе с ним в лабораториях искусственного интеллекта в Массачусетском технологическом и Стэнфордском университетах. Пайперта называют отцом языка программирования Logo.
Наблюдая, как Пайперт работает с детьми, Кей сделал для себя весьма существенные выводы относительно форм и методов взаимодействия человека с компьютером. Пайперт и ставший его соратником Дуглас Энглебарт пытались либерализовать, очеловечить компьютер, превратить тяжеловесную индустриальную машину (в то время, кроме мэйнфреймов, ничего и не было) из “поезда”, движущегося по лимитированным компанией путям, в ”автомобиль”, обладающий свободой передвижения.
С таким багажом Кей в 1972 г. перешел в качестве руководителя группы перспективных исследований (Learning Research Group) в Xerox Palo Alto Research Center (PARC).
Xerox PARC — место совершенно уникальное. С одной стороны, вполне капиталистическое: практически добившись монополии на рынке копировальной техники, компания Xerox стремилась расширить свою деятельность. С другой — весьма нетривиальное по форме. Период конца шестидесятых — начала семидесятых для Америки был совершенно особым. Поколение бэби-бума своим буйным движением протеста изменило картину мира не только в Европе, но и в США — стране, совсем недавно абсолютно консервативной. Это эпоха левого студенческого движения, выступлений против войны во Вьетнаме, начала движения хиппи. Руководство Xerox проявило определенную прозорливость, воспользовавшись методикой, которую однажды удачно применила ARPA при создании глобальных компьютерных сетей, — но в новом исполнении. Идея почти тривиальна: финансировать университетских умников, дать свободу, но результаты их деятельности направить в нужное для себя русло. В данном случае Xerox вознамерилась дать прибежище тем, кто был не согласен с государственной политикой.
Известно, что тогда же стартовала мощнейшая правительственная научная программа. Напуганная успехами СССР в освоении космоса и фундаментальных научных исследованиях, американская администрация стремилась собрать коллективы ученых для решения важных задач, прокламируемых как стратегические и прикладные, а по сути военные. Пошли туда законопослушные граждане, коих, как известно, большинство. Результаты этой кампании — начиная с полетов “Аполлонов” и заканчивая программой “Звездных войн”, известны, и они действительно стали в значительной мере базисом современной американской индустрии. Но “левакам”, к которым принадлежал Алан Кей, это было не по душе. Они принадлежали к движению протеста, выражая его и в науке, и в музыке, и в литературе. На память приходят такие имена, как Боб Дилан, Джоан Байес, Джером Сэлинджер. Участникам этого движения нужна была альтернативная научная среда, вот ее-то и предоставила компания Xerox в виде Исследовательского центра. Xerox PARC осталась уникальной научной лабораторией, но, по многим оценкам, компания Xerox не сумела воспользоваться полученными там результатами в полной мере.
Сверхзадача, поставленная перед Кеем, выглядела следующим образом. Тогда казалось, что близок финал бумажной технологии (заметим, что все же количество используемой сегодня бумаги не сильно сократилось). На смену ей должна была прийти другая — но какая? При том уровне аппаратных средств, какой был в начале семидесятых годов, можно было только строить гипотезы, хотя понятно, что в основе должен быть компьютер. Поэтому в Xerox PARC были созданы исследовательские группы, которым была предоставлена полная свобода использования существовавших в то время компьютеров. Ученые могли строить астрологические прогнозы или создавать системы обработки текстов для печатания антивоенных листовок. Совершенно естественно, что множество решаемых задач служило гуманитарным целям и заметно повлияло на информатизацию системы здравоохранения, но об этом в другой раз. Главное — создание супербумаги. Именно этим и занималась группа под руководством Алана Кея.
О работе этой группы и обстановке, ей сопутствовавшей, писал журнал Rolling Stones Magazine (обратите внимание на название!). Группе была посвящена статья “Фанатическая жизнь и символическая смерть среди компьютерных охламонов” (Fanatic Life and Symbolic Death among Computer Bums. Более точный перевод слова Bum можно найти в специализированных словарях ненормативной лексики). В ней, в частности, говорилось: “Это было сочетание безумного энтузиазма безответственных юнцов и головной боли администрации, и было великолепно”.
Как ни странно, атмосфера богемы способствовала удивительной работоспособности в творческой обстановке. Возможно, именно в таких условиях смогли зародиться предпосылки явления, получившего название “персональный компьютер”. Сегодня, когда сменилось несколько поколений ПК, рассуждения, занимавшие в ту пору лучшие умы, могут показаться наивными. Но именно из них выросли идеи графического пользовательского интерфейса и объектно-ориентированного программирования. Не только технический прогресс принес на индивидуальное рабочее место вычислительную мощность мэйнфрейма шестидесятых годов. Необходимо было решить ряд проблем отнюдь не технического свойства, в том числе проблему соотношения между сообщением и носителем информации. Первое, что удалось, — интерпретировать компьютер как супербумагу. Ныне тривиальная мысль о том, что компьютер, изначально предназначенный для вычислений, может стать медией, носителем информации, должна была быть озвучена. Работая над соотношением между семантикой сообщения и носителем, Кей писал: “Любое сообщение в том или ином смысле моделирует некоторую идею. Оно может быть представительным или абстрактным. Свойства носителя в значительной мере определяют то, как сообщение может быть увидено, изменено и вложено. Хотя компьютеры были изобретены для арифметических вычислений, их способность воспроизводить детали любой описательной модели позволяет сам компьютер рассматривать как носитель информации, он может совместить в себе свойства других носителей.
Исторически человечество развивается в двух направлениях. Первое — изобретение средств, усиливающих его возможности: колеса, телескопа, языка письменности, математики. Второе — подчинение этих процессов целевым установкам и управление деятельностью отдельного человека и коллективов (религии, культуры, государства, различные формы организации для совместного труда).
В конце пятидесятых годов ученые осознали, что компьютер является не только инструментом счета, но и носителем, который можно использовать для взаимодействия с человеком. Основная масса людей сегодня представляет себе компьютер в его внешних интерфейсных формах.
Большая часть известных методов интерфейсов, в том числе идея окна, вышли из Xerox PARC. Эти методы и подходы учитывают ограниченность человеческой психологии. Вероятно, за последние несколько тысяч лет наш интеллект сильно не вырос, но понятно, что соответствующий контекст усиливает логические возможности. Поэтому эффективность работы человеческой мысли в немалой степени зависит от качества предоставляемого интерфейса”. С результатами работы Алана Кея в Xerox PARC наиболее часто связывают два названия — Dynabook и SmallTalk.
Dynabook — прототип ноутбука
Если Буш для выражения своих взглядов построил гипотетическую машину memex, то Кей создал виртуальную машину Dynabook. Свою концепцию он изложил в статье Personal Dynamic Media (IEEE Computer, 1977, v. 3, № 10, p. 31). Совершенно новым было то, что Dynabook рассматривалась не как вычислительное устройство, а как медиасредство для пользователя-непрофессионала. Кей описал ее как портативное интерактивное устройство с плоскопанельным сенсорным экраном, беспроводной системой коммуникации и мультимедийными возможностями. Здесь предполагался принцип WYSIWYG (what you see is what you get), текстовые редакторы и система рисования.
Говорят, что Кей был очень увлекающимся человеком: он настолько увлекся Dynabook, что по важности приравнивал ее к изобретению Гутенберга.
Для этой машины будущего был спроектирован и смоделирован графический интерфейс Star GUI, включивший все знакомые нам сегодня элементы — окна, пиктограммы, меню и многое другое. Графический интерфейс Star стал прототипом интерфейса Macintosh.
Проект Dynabook так никогда и не был завершен, однако оправданность его существования была доказана воздействием, которое он оказал на будущее. Правда, была одна попытка реализации “в железе” — под именем Alto на базе миникомпьютера Nova, а затем Dorado.
Наиболее близкими практическими преемниками Dynabook стали Knowledge Navigator (Apple, 1987 г.) и Newton, разработанный бывшим сотрудником Apple Джоном Скалли (John Sculley).
Язык программирования Smalltalk
Самым значительным практическим результатом работы Алана Кея в Xerox PARC стало создание языка Smalltalk (название можно перевести как “непринужденная беседа”). Необходимость в его разработке возникла ввиду того, что существовавшие в то время языки программирования в основном были ориентированы на решение вычислительных задач. Они обладали необходимыми средствами для работы с символами, но были слишком профессиональными и не соответствовали проекту Dynabook. Поэтому был отдан высокий приоритет разработке нового языка. Некоторые его идеи были заимствованы у Пайперта, который строил язык Logo на основе работ французского психолога Жана Пиаже.
Изначально предполагалось, что Smalltalk как инструмент программирования Dynabook будет совсем простым, доступным для детей. Его первая версия была смоделирована несколькими тысячами операторов на Basic в октябре 1972 г., через четыре месяца появилась версия на языке ассемблера (Smalltalk-72), и позже, в 1974 г., когда ее установили на Alto, можно было начинать экспериментальную работу с детьми. До 1980 г. работы по Smalltalk-72, а затем и Smalltalk-74 носили исключительно локальный характер. Версию Smalltalk-80 решено было сделать публичной, для чего предполагалось выпустить несколько типов документов, от статей до книг (последовательно “Синяя”, “Оранжевая” и “Зеленая”). В этой работе значительную роль сыграл Дан Ингаллс (Dan Ingalls).
Чтобы язык можно было использовать на различных платформах, его реализовали в виде виртуальной машины (Virtual Machine, VM) и виртуального образа (Virtual Image, VI). VI представляет собой коллекцию классов, где закодирована функциональность Smalltalk, включая определение структур данных, методов работы с текстами и графикой, компиляторы, декомпиляторы, отладчики. Компилятор генерировал код на промежуточным языке, названном byte codes. VM обеспечивала интерпретацию байт-кодов на любой платформе. У современного читателя названия байт-код и виртуальная машина вызывают совершенно определенные ассоциации с Java.
Будущее Smalltalk и его связь с Java чрезвычайно интересны, но эти вопросы не входят в тематику статьи.
После Xerox PARC
С уходом из Xerox PARC заканчивается романтический период жизни Алана Кея. С 1984 по 1996 г. он имел статус свободного исследователя (Fellow) в Apple, затем перешел на должность вице-президента по исследованиям и разработкам в компанию Walt Disney. Сейчас он ведет подразделение Walt Disney Imagineering Lab., где разрабатываются самые новые аттракционы для парков Disney World.
Между прочим, с возрастом Алан Кей изменился не только внешне, теперь классическая музыка привлекает его больше, чем джаз.