В современной информационной повестке есть несколько известных мифов о создании первых персональных компьютеров. Как правило, в них идет речь о том, как несколько человек сидят в гараже в Калифорнии и собирают свои первые прототипы компьютеров. Однако у этой истории есть своя большая предыстория и ее герои, которые сейчас известны достаточно узкому количеству людей. Одним из них является Алан Кей — теоретик информатики и человек, который придумал философию современных персональных компьютеров и термин объектно-ориентированного программирования. Подробно рассказываем о жизни Алана Кея и том, что он сделал для современного мира.
- Глава I. Музыкальная
- Глава II. Биологическая
- Глава III. Бумажная
- Глава IV. Объектно-ориентированная
- Глава V. Настоящее время
Алан Кей был одним из основателей современного персонального компьютера и наставником создателей Macintosh. В 1979 году Стив Джобс и другие основатели Apple посещали исследовательскую группу в Xerox PARC, которую возглавлял Алан Кей, работая там над первым объектно-ориентированным языком программирования Smalltalk и проектом Dynabook — прототипом современного ноутбука. Кей был первым, кто говорил, что пользователь должен общаться с компьютером не текстом или кодом, а через визуальные интерфейсы — метафоры алгоритмов и внутренних процессов, которые происходят внутри устройства.
Глава I. Музыкальная
Алан Кей родился в городе Спрингфилд, штате Массачусетс — в очень консервативное время: в начале сороковых годов. Его мать была профессиональной певицей и художником, поэтому он рос в музыкальной среде, а его жизнь строилась в основном по гуманитарному пути. В детстве он пел в хоре и с раннего возраста играл на гитаре.
Когда Алан Кей дает интервью о своем детстве, он рассказывает, что был очень одаренным ребенком: «Когда я пошел в школу, то уже прочитал пару сотен книг. Я знал в первом классе, что все вокруг мне лгали — ведь у меня уже была своя точка зрения. Учителям не нравилась идея существования различных точек зрения, так что это была настоящая и трудная битва».
После окончания школы Кей даже стал джазовым музыкантом и преподавателем музыки по классу гитары — в 1961 году его выгнали из колледжа за участие в протестах против введения процентной квоты для студентов-евреев, и ему пришлось идти и искать себе работу. Какое-то время он поработал композитором и театральным постановщиком, но в итоге ушел в армию, которая радикально изменила его жизнь.
Сейчас — спустя полвека — Алан Кей до сих пор продолжает любить музыку, однако теперь его больше привлекает классическая музыка, а не джаз.
Глава II. Биологическая
Алану Кею пришлось отправиться добровольцем в армию, но еще во время тестирования его способностей и знаний — так в то время оценивались все призывники — выяснилось, что у него есть таланты к программированию. Поэтому его отправили в BBC США для работы с IBM 1401 — десятичным компьютером с переменной длиной слова. Потенциально он создавался в качестве замены оборудования для записи единиц и обработки данных, хранящихся на перфокартах, а также для выполнения различных задач для больших компьютеров.
Служба в армии была для Кея достаточно бесполезна: «Я износил пару ботинок, неся недисциплинированную службу», — говорил он, однако именно в это время музыкант узнал, что имеет способности в области программирования. После окончания службы Кей был направлен Национальным Центром Атмосферных Исследований в Университет Колорадо — на специальность «математика и молекулярная биология». В 1966 году — после окончания университета — он перешел в Университет Юта на факультет электроники.
В Университете штата Юта Алан Кей познакомился с работами Айвэна Сазерленда — одного из создателей виртуальной реальности, пионера интернета, энтузиаста информатики и — в последствии — большого друга Кея. Тогда Сазерленд работал в Университете Юты профессором, обучая не только Алана Кея, но и других пионеров технологической сферы — Анри Гуро, придумавшего метод тонирования Гуро, Франклина Кроу, разработавшего методы антиалиасинга, и Эдвина Катмулла — соучредителя Pixar и бывшего президента студий Walt Disney и Pixar Animation. Позже Сазерленд перейдет на работу в Калифорнийский университет и откроет там кафедру компьютерных наук.
Читайте также
Именно Сазерленд вдохновил Кея на размышления о программировании и объектах. Тогда же Кей начал самостоятельно программировать на языке SIMULA и полностью похоронил идеи стать профессиональным музыкантом, поскольку все его мысли были окончательно заняты разработкой.
С 1967 года Кей на языке SIMULA работал над созданием проекта FLEX, постепенно формируя принципы биологической аналогии в информатике. Он утверждал, что идеальный компьютер должен работать по принципам живых существ, где каждая клетка — индивидуальна, однако вместе они образовывают единую большую систему, способную масштабироваться, изменяться и модифицироваться.
В рамках этого проекта Кей создавал компоненты, которые повышали производительность компьютера, и с ними должен был взаимодействовать сам пользователь устройства. Однако выяснилось, что пользователи не были готовы изучать язык, на котором нужно взаимодействовать с устройством — он был очень сложен и требовал специальной математической подготовки. Тогда Кей впервые пришел к выводу, что языки программирования должны идти не в сторону ускорения взаимодействия с машинами, а в полностью противоположную — в направлении, которое облегчит взаимодействие человека с компьютером.
В 1968 году Кей знакомится с Сеймуром Пайпертом и работает с ним в лабораториях искусственного интеллекта в Массачусетском технологическом и Стэнфордском университетах. Там Кей учится работать с языком программирования Logo —диалекте Lisp, приспособленного для обучения. Это привело его к изучению работ Жана Пиаже, Жерома Брюнера, Льва Выготского, а также теории конструкционизма в обучении. В дальнейшем это очень сильно повлияло на его взгляды в работе компьютеров и создания вычислительных систем.
В Массачусетском университете Сэймур Пейперт с коллегами обучал программированию детей на языке LOGO. Пайперт и ставший его соратником Дуглас Энглебарт пытались очеловечить компьютер, сделать его свободным и более простым. Именно тогда Кей придумал сделать первый в истории персональный компьютер «Динамическая книга» (Dynamic Book), с помощью которого можно интерактивно обучать детей в любой точке Земли и полностью отказаться от бумаги. В этом проекте Кей понял, что люди намного лучше усваивают знания и обрабатывают информацию, полученную через визуальные источники и звуки, нежели чем через просто текст.
При разработке алгоритмов для работы своего компьютера Алан Кей выделил три основных метода возможного обучения детей через гаджеты. Первый представлял собой запоминание поучительных историй, например, через афоризмы, пословицы, сказки или мифы. Второй — метод логических рассуждения и изучения причинно-следственных связей, такой путь математики и формальной логики. Третий — метод системной динамики, когда в мозгу человека формируются интуитивные картины поведения тех или иных систем, которые принадлежат внешнему миру.
Глава III. Бумажная
С такими идеями Алан Кей в 1972 году перешел на работу в Xerox Palo Alto Research Center (PARC) в качестве руководителя группы перспективных исследований (Learning Research Group). В то время Xerox PARC представляла собой огромную корпорацию, которая финансировала разные университетские инициативы и давала практически полную свободу в их исследованиях. По сути, благодаря средствам Xerox в те времена появилась альтернативная наука, в противовес огромным вливаниям властей США в фундаментальные и экспериментальные области физики, а также в исследования с двойным назначением для того, чтобы перегнать СССР.
Руководство Xerox поставило перед Кеем сверхзадачу — придумать, что придет на место традиционной бумаги, на взаимодействии с которой и строилась копировальная империя корпорации. При этом на том уровне развития, на котором находилась сфера в начале 70-х годов прошлого века, было невозможно точно сказать, какое именно направление в развитии компьютерной отрасли станет основным.
В Xerox тогда работало несколько исследовательских групп, которые придумывали, как мы в дальнейшем будем пользоваться компьютерами. Одной из таких групп было подразделение Кея, который занимался созданием супербумаги.
В основе работы группы Кея был его проект DynaBook, который мог стать аналогом супербумаги. Журнал Rolling Stones Magazine даже написал об этой исследовательской группе большую статью «Fanatic Life and Symbolic Death among Computer Bums», где рассказывал «об удивительно богемной атмосфере в научных лабораториях, где сочетание безумного энтузиазма безответственных юнцов приводит к изменению мира».
Именно там выросли все идеи графического пользовательского интерфейса, принципов объектно-ориентированного программирования и подхода к созданию персональных компьютеров.
Все люди, которым удалось поработать с Кеем, рассказывают, что он — очень увлекающийся человек, практически до фанатичности любивший свою работу. Например, свою супербумагу Dynabook он сравнивал с изобретением Гутенбергом книгопечатания. При этом Кей называл Dynabook не вычислительным устройством, какими тогда были абсолютно все компьютеры, а медиасредством для обычного пользователя с принципом WYSIWYG (what you see is what you get), текстовыми редакторами и системами рисования.
По сути, все дальнейшее создание компьютеров шло именно по этому пути, несмотря на то, что Кею не удалось реализовать собственный проект Dynabook. Наиболее близкими практическими преемниками Dynabook были Knowledge Navigator и Newton, которые создал бывший сотрудник Apple Джон Скалли в 1987 году.
Глава IV. Объектно-ориентированная
В это же время Кей работал над языком Smalltalk, который бы позволил смоделировать созданную им биологическую модель для компьютеров. Благодаря этому языку также можно было бы создать массивы знаний, которые будут передаваться методом системной динамики и легко усваиваться даже детьми.
После выхода Smalltalk на широкий рынок в 1983 году он быстро стал очень популярным и получил титул «одного из первых объектно-ориентированных языков программирования», благодаря которому можно создавать параллельные системы и базы данных.
Многие называют Smalltalk самым главным практическим результатом работы Кея в Xerox PARC. Почти все существовавшие на тот момент языки программирования были в основном ориентированы на решение конкретных вычислительных задач, либо на решение определенных проблем, связанных сугубо с работой больших компьютеров. Некоторые идеи в Smalltalk были заимствованы у языка Logo — изначально Кей считал, что он будет использоваться как инструмент программирования Dynabook и должен быть доступным для детей. Однако с 1972 года, когда появилась первая версия Smalltalk с несколькими тысячами операторами на Basic, до 1983 когда, когда он стал публичный, возможности языка значительно увеличились.
Читайте также: Ричард Столлман: евангелист свободного программного обеспечения, революционер, изгой
Для того, чтобы Smalltalk можно было реализовать на различных платформах, его реализовали в виде виртуальной машины (Virtual Machine, VM) и виртуального образа (Virtual Image, VI). По сути, VI — коллекция классов, где закодирована функциональность этого языка программирования, в том числе все его возможности. Этот компилятор генерировал на промежуточном языке byte codes, а VM обеспечивал интерпретацию этих байт-кодов на любой платформе.
Примерно в это время Кея и посетили основатели Apple — они были поражены идеей оконного интерфейса и гибкостью языка Smalltalk. По сути, из работ Кея вырос Арple Macintosh, а в будущем на его системе появилась и операционная система Microsoft Windows.
Во время работы в Xerox Алан Кей работает не только над будущими компьютерами. Его исследовательская группа разрабатывала, в том числе, части технологии Ethernet, лазерной печати и сетевой клиент-серверной модели ARPANet.
Глава V. Настоящее время
В 1984 году Кею пришлось уйти из Xerox PARC — сначала в Apple, где он занимал должность свободного исследователя, а в 1996 году он перешел на должность вице-президента по исследованиям и разработкам в компанию Walt Disney. Сейчас он работает в подразделении Walt Disney Imagineering Lab., где создаются самые новые аттракционы для парков Disney World. Еще у Кея есть своя школа в западном Голливуде в Калифорнии, где он занимается обучением детей компьютерной грамотности.
В нескольких интервью Кей рассказывал, что занимается изучением агент-ориентированных систем и разрабатывает новый машинный язык, который бы мог создавать систему искусственного интеллекта внутри компьютера. Однако на сегодняшний день новостей по этому проекту пока никаких нет, как и планов по массовому производству DynaBook.