Алан Кэй (Alan Curtis Kay; род. 17 мая 1940) — американский учёный в области теории вычислительных систем. Один из пионеров в областях объектно-ориентированного программирования и графического интерфейса.
Разработал язык программирования Smalltalk, где впервые был применен объектно-ориентированный подход.
Лауреат премии Тьюринга 2003 года за работу над объектно-ориентированным программированием, Премии Киото (2004).
Я придумал термин «объектно-ориентированный», и вот что я вам скажу, я не имел ввиду С++.
Кей Алан
Один из создателей проекта One Laptop Per Child.
Алан Кей родился в начале сороковых годов. Его мать была профессиональной певицей, поэтому в воспитании доминировало гуманитарное начало и значительное место уделялось музыке. В 1961 за участие в протесте против введения процентной квоты для студентов-евреев он был исключен из колледжа, стал джазовым музыкантом и преподавателем музыки по классу гитары.
Но другой талант, принесший ему гораздо большую известность, неожиданно обнаружился у Кея тогда, когда, поступив добровольно в армию, он прошел тест на способность к программированию, был высоко оценен и направлен в ВВС США для работы на компьютере IBM 1401. После службы в армии была учеба в университете штата Колорадо по специальности «математика и молекулярная биология» и в 1966 — переход в университет штата Юта, где произошло знакомство с работами Айвэна Сазерленда, одного из создателей виртуальной реальности.
Дизайн Smalltalk — и его существование вообще — обусловлен тем, что все, что мы можем описать, возможно представить рекурсивной композицией отдельных видов поведенческих строительных блоков, которые внутри самих себя скрывают свою текущую комбинацию состояния и процессов, и могут взаимодействовать друг с другом только посредством обмена сообщениями.
Кей Алан
Кей начал программировать на языке Симула, и вот, сочетая идеи, идущие от программирования, со знанием биологии, он сформулировал принцип биологической аналогии. Он утверждал, что идеальный компьютер должен быть подобен живому организму, где каждая клетка индивидуальна, но вместе они могут образовывать единую систему, способную к перегруппировке и изменению структуры.
Осенью 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.
Между прочим, с возрастом Алан Кей изменился не только внешне, теперь классическая музыка привлекает его больше, чем джаз.