Открыть сервис

Дэн Ингаллс

Дэн Ингаллс (англ. Dan Ingalls; род. 1944) — американский учёный в области информатики, инженер-программист, один из ключевых разработчиков языка программирования Smalltalk и объектно-ориентированного программирования. Известен как создатель первых виртуальных машин Smalltalk, разработчик концепции битового блоб-дисплея (BitBlt) и пионер в области компьютерной графики и пользовательских интерфейсов. Внёс значительный вклад в развитие парадигмы объектно-ориентированного программирования и среды разработки, ставшей прообразом современных интегрированных сред.

Биография

Дэн Генри Холмс Ингаллс-младший родился в 1944 году в Вашингтоне, округ Колумбия. Получил степень бакалавра в области физики в Гарвардском университете (1966) и степень магистра в области электротехники в Стэнфордском университете (1968). В 1968 году поступил на работу в Xerox PARC (Palo Alto Research Center), где присоединился к группе, возглавляемой Аланом Кеем, работавшей над проектом Dynabook — концепцией портативного персонального компьютера для обучения.

В PARC Ингаллс стал одним из главных архитекторов языка Smalltalk, который разрабатывался как язык программирования для Dynabook. Он написал первую реализацию виртуальной машины Smalltalk-72, а затем создал Smalltalk-76 и Smalltalk-80, которые стали стандартом для объектно-ориентированного программирования. В 1975 году Ингаллс реализовал алгоритм BitBlt (Bit Block Transfer) — операцию быстрого переноса прямоугольных блоков битовой графики, ставшую основой для графических интерфейсов пользователя (GUI).

После ухода из Xerox PARC в 1984 году Ингаллс работал в компании Apple Computer, где участвовал в разработке языка программирования Squeak — открытой реализации Smalltalk, а затем в Hewlett-Packard и Sun Microsystems. В 1996 году он стал одним из основателей компании Viewpoints Research Institute, занимающейся исследованиями в области образования и программирования. В 2000-х годах Ингаллс работал в компании SAP, где продолжал развивать Smalltalk и его применения.

Основные достижения

Smalltalk

Ингаллс является одним из главных создателей языка Smalltalk, который считается первым полноценным объектно-ориентированным языком программирования. Smalltalk ввёл такие ключевые концепции, как:

Ингаллс написал первые реализации виртуальных машин Smalltalk, которые работали на компьютерах Xerox Alto. В 1980 году под его руководством была выпущена версия Smalltalk-80, ставшая эталонной и оказавшая огромное влияние на последующие языки, включая Java, C++, Python и Ruby.

BitBlt

В 1975 году Ингаллс реализовал алгоритм BitBlt (Bit Block Transfer), который позволяет быстро копировать, перемещать и комбинировать прямоугольные блоки пикселей в растровой графике. BitBlt стал фундаментальной операцией для построения оконных интерфейсов, поскольку позволял эффективно отрисовывать окна, меню, кнопки и другие элементы GUI. Алгоритм был реализован в виде аппаратной инструкции в графических процессорах и программно в операционных системах (например, в Windows API функция BitBlt).

Lively Kernel

В 2000-х годах Ингаллс разработал Lively Kernel — среду для создания интерактивных веб-приложений на основе JavaScript. Lively Kernel позволяет запускать полноценные графические приложения в браузере без необходимости установки дополнительного программного обеспечения. Проект является продолжением идей Smalltalk в веб-среде.

Награды и признание

  • В 1984 году Ингаллс получил премию ACM Grace Murray Hopper Award за вклад в развитие объектно-ориентированного программирования.
  • В 2002 году он был удостоен премии ACM Software System Award за создание Smalltalk.
  • В 2018 году Ингаллс стал членом Ассоциации вычислительной техники (ACM Fellow).
  • В 2020 году он получил премию Тьюринга (совместно с Аланом Кеем и другими) за фундаментальный вклад в развитие объектно-ориентированного программирования.

Влияние на информатику

Работы Ингаллса оказали глубокое влияние на развитие программирования. Smalltalk стал основой для многих современных языков и технологий:

  • Java и C# заимствовали концепцию виртуальной машины и сборки мусора.
  • Ruby и Python переняли динамическую типизацию и гибкую объектную модель.
  • Objective-C и Swift используют модель сообщений, аналогичную Smalltalk.
  • Графические интерфейсы пользователя (GUI) в Windows, macOS и Linux основаны на принципах, заложенных в Smalltalk и BitBlt.

Ингаллс также активно пропагандировал идею «живого программирования» (live programming), когда изменения в коде немедленно отражаются на работающем приложении. Эта концепция стала ключевой для современных сред разработки, таких как Jupyter Notebook и React Hot Loader.

Критика и ограничения

Несмотря на инновационность, Smalltalk не получил широкого коммерческого распространения в 1980-х годах. Основные причины:

  • Высокие требования к аппаратному обеспечению (Smalltalk требовал значительных ресурсов памяти и процессора для своего времени).
  • Отсутствие поддержки со стороны крупных корпораций (кроме Xerox, которая не смогла эффективно коммерциализировать технологию).
  • Сложность интеграции с существующими системами и языками (например, с C и ассемблером).

Тем не менее, Smalltalk остаётся важным историческим и учебным языком, а его идеи продолжают влиять на современное программирование.

Источники

  • Kay, A. C. (1993). The Early History of Smalltalk. ACM SIGPLAN Notices, 28(3), 69–95.
  • Ingalls, D. (1981). Design Principles Behind Smalltalk. Byte Magazine, 6(8), 286–298.
  • Ingalls, D. (1981). The Smalltalk Graphics Kernel. Byte Magazine, 6(8), 168–194.
  • ACM Grace Murray Hopper Award – Dan Ingalls. Association for Computing Machinery.
  • ACM Software System Award – Smalltalk. Association for Computing Machinery.
  • Viewpoints Research Institute. (2006). The Lively Kernel: A Self-Supporting System on a Web Page.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →