Дэн Инголлс
Дэн Инголлс (англ. Dan Ingalls; род. 1944, Вашингтон, округ Колумбия, США) — американский учёный в области информатики, инженер-программист и изобретатель. Наиболее известен как один из ключевых разработчиков языка программирования Smalltalk, создатель концепции виртуальной машины для этого языка, а также как автор ряда фундаментальных технологий, используемых в современных объектно-ориентированных системах. Инголлс внёс значительный вклад в развитие графических пользовательских интерфейсов, оконных систем и технологий динамической компиляции.
Биография
Ранние годы и образование
Дэниел Генри Холмс Инголлс-младший родился в 1944 году в Вашингтоне. Его отец, Дэниел Х. Х. Инголлс-старший, был физиком, работавшим в области ядерной энергетики, что повлияло на ранний интерес сына к науке и технике. Инголлс получил степень бакалавра по физике в Гарвардском университете в 1966 году. В 1967 году он поступил в Стэнфордский университет, где начал изучать информатику, однако не завершил формальное обучение, сосредоточившись на практической работе.
Работа в Xerox PARC (1970–1984)
В 1970 году Инголлс присоединился к исследовательскому центру Xerox PARC (Palo Alto Research Center), где стал одним из центральных участников группы, разрабатывавшей язык Smalltalk. Под руководством Алана Кея Инголлс реализовал первую версию Smalltalk-72, а затем — Smalltalk-76 и Smalltalk-80. Именно он создал первую виртуальную машину для Smalltalk, которая позволяла исполнять код на разных аппаратных платформах, что стало прообразом современных сред выполнения, таких как Java Virtual Machine (JVM) и .NET CLR.
В PARC Инголлс также участвовал в разработке оконной системы, графического интерфейса и концепции «рабочего стола». Он написал ранние версии текстового редактора и графического редактора для Smalltalk, а также реализовал механизмы перетаскивания объектов (drag-and-drop) и буфера обмена.
Работа в Apple (1984–1993)
В 1984 году Инголлс перешёл в компанию Apple, где продолжил работу над объектно-ориентированными технологиями. В Apple он был одним из ведущих разработчиков среды программирования MacApp, основанной на Smalltalk, а также участвовал в создании языка Objective-C, который впоследствии стал основой для разработки под macOS и iOS. Инголлс также внёс вклад в развитие системы QuickTime и технологий мультимедиа.
Работа в Interval Research и Sun Microsystems (1993–2000)
В 1993 году Инголлс присоединился к исследовательской лаборатории Interval Research, основанной Полом Алленом. Там он занимался разработкой новых парадигм программирования, включая визуальные языки и системы для детей. В конце 1990-х годов он работал в Sun Microsystems, где участвовал в проекте по созданию языка программирования Java, в частности, в области виртуальных машин и динамической компиляции. Инголлс также разработал технологию «горячей замены кода» (hot swapping), позволяющую обновлять работающие программы без остановки их выполнения.
Работа в Hewlett-Packard и независимая деятельность (2000–2010)
В 2000-х годах Инголлс работал в Hewlett-Packard, где занимался исследованиями в области распределённых вычислений и облачных платформ. Он также участвовал в проекте Lively Kernel — среде программирования, работающей в веб-браузере и позволяющей создавать динамические приложения без установки дополнительного программного обеспечения. Lively Kernel был написан на JavaScript и демонстрировал возможности современного веб-стандарта HTML5.
Современный период (с 2010 года)
С 2010 года Инголлс является независимым исследователем и консультантом. Он продолжает активно участвовать в сообществе Smalltalk, выступает на конференциях и публикует статьи по истории объектно-ориентированного программирования. В 2020 году он был награждён премией ACM Software System Award за вклад в развитие Smalltalk.
Основные достижения и вклад в информатику
Smalltalk и виртуальная машина
Инголлс является автором первой реализации виртуальной машины для Smalltalk. В отличие от традиционных компиляторов, виртуальная машина Smalltalk интерпретировала байт-код, что позволяло достичь высокой переносимости программ. Эта концепция впоследствии была использована в Java, Python, Ruby и других языках. Инголлс также разработал механизм сборки мусора (garbage collection) для Smalltalk, который автоматически освобождал память от неиспользуемых объектов.
Оконная система и графический интерфейс
Вместе с коллегами по PARC Инголлс создал одну из первых оконных систем, основанную на перекрывающихся окнах, а не на мозаичном расположении. Он реализовал возможность изменения размеров окон, перемещения их по экрану и сворачивания в пиктограммы. Эти принципы стали основой для современных графических интерфейсов, включая Windows, macOS и X Window System.
Динамическая компиляция и «горячая замена»
Инголлс внёс вклад в развитие технологии динамической компиляции (just-in-time compilation), которая позволяет выполнять код с высокой производительностью, не требуя предварительной компиляции. Он также разработал механизм «горячей замены» кода, который используется в современных средах разработки для отладки и обновления приложений без их перезапуска.
Lively Kernel
Проект Lively Kernel, начатый Инголлсом в 2005 году, представляет собой среду программирования, работающую в веб-браузере. Она позволяет создавать и редактировать приложения на JavaScript в реальном времени, используя только браузер. Lively Kernel демонстрирует концепцию «живого» программирования, где код и интерфейс могут изменяться динамически.
Награды и признание
- ACM Software System Award (2020) — за вклад в разработку Smalltalk и виртуальной машины.
- Премия IEEE Computer Society Charles Babbage Award (1995) — за вклад в развитие объектно-ориентированного программирования.
- Член ACM (Association for Computing Machinery) — за выдающиеся достижения в информатике.
- Почётный доктор Университета Южной Калифорнии (2004).
Интересные факты
- Инголлс является автором знаменитой фразы: «Smalltalk — это не просто язык, это образ мышления» (Smalltalk is not just a language, it's a way of thinking).
- Он написал первую версию текстового редактора для Smalltalk, который использовал концепцию «бесконечного» текста, не ограниченного размерами страницы.
- Инголлс активно занимается фотографией и музыкой; он создал несколько программ для синтеза звука на основе Smalltalk.
- В 2010 году он опубликовал мемуары о работе в Xerox PARC, которые стали важным источником по истории информатики.
Критика и ограничения
Несмотря на значительный вклад, некоторые идеи Инголлса не получили широкого распространения. Например, концепция «чистого» объектно-ориентированного программирования, реализованная в Smalltalk, оказалась менее эффективной для крупных промышленных проектов по сравнению с гибридными языками, такими как C++ и Java. Кроме того, виртуальная машина Smalltalk требовала значительных ресурсов памяти и процессора, что ограничивало её применение на ранних компьютерах. Однако эти ограничения были преодолены с развитием аппаратного обеспечения.
Источники
- Kay, A. (1993). The Early History of Smalltalk. ACM SIGPLAN Notices.
- Ingalls, D. (1978). The Smalltalk-76 Programming System. ACM SIGPLAN Notices.
- Ingalls, D. (1981). Design Principles Behind Smalltalk. BYTE Magazine.
- ACM Software System Award Citation (2020).
- Интервью Дэна Инголлса для Computer History Museum (2012).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →