Вход/Регистрация
Цифровой журнал «Компьютерра» № 17 (170)
вернуться

Журнал «Компьютерра»

Шрифт:

Алан Кей — живая легенда компьютерной индустрии. В середине шестидесятых он работал с Айвеном Сазерлендом, создавшим первый графический редактор и систему автоматизированного проектирования, а в 1970 году присоединился к исследовательской лаборатории Xerox PARC, где придумал объектно-ориентированное программирование, создав язык Smalltalk, и первый компьютер с оконным графическим интерфейсом. Позднее его работа вдохновит Стива Джобса и команду, сделавшую Macintosh, а прототип Macintosh убедит Билла Гейтса в том, что MS-DOS срочно нуждается в графической оболочке с оконным интерфейсом, известной нам как Windows.

После PARC Кей работал в самых разных исследовательских центрах: Atari, Apple, Disney и HP, а также в Калифорнийском университете в Лос-Анджелесе и Киотском университете. Видимым результатом его исследований стали Squeak — более современная и дружественная версия Smalltalk, а также Etoys — вариант Squeak для детей (на его основе был создан более известный сегодня Scratch). В 2005 году Кей основал исследовательский институт Viewpoints, финансируемый Национальным научным фондом США, а также рядом крупных компаний: Intel, Motorola, HP и Nokia. То, чем Кей и десяток сотрудников Viewpoints заняты сейчас, может ещё перевернуть наш взгляд на программирование.

Двадцати тысяч строк хватит на всё

Изначальное предложение Кея, представленное Национальному научному фонду США, звучало не просто смело, а почти фантастически. Кей пообещал создать среду (мы не будем называть её операционной системой, так как Кей настаивает на том, что это не ОС в привычном понимании), которая позволит функционировать современному компьютеру и будет включать в себя графический пользовательский интерфейс и набор прикладных программ. Главное отличие этой среды от всех уже существующих решений: длина кода этой системы не будет превышать двадцати тысяч строк.

Сказать, что двадцать тысяч строк — это немного, значит не сказать ничего. Если верить «Википедии», то исходные коды Windows NT 3.1 занимали 4–5 миллионов строк кода, ядро Linux 2.6.0 - 5,2 миллиона, а современные ОС с набором стандартных приложений могут содержать сотни миллионов строк кода.

Вот кадр из презентации Кея, показывающий, сколько будет занимать код ОС и основных приложений, если напечатать его в виде книг.

Объём сопоставим с Эмпайр стейт билдинг и равен примерно 17,5 тысячам книг. «Кто из вас прочёл семнадцать тысяч книг? — вопрошает Кей собравшихся на лекции. — А кто из вас прочёл хотя бы одну?» Объёма одной книги, то есть примерно двадцати тысяч строк, по его мнению достаточно для того, чтобы создать систему, напоминающую по функциям те ОС и приложения, с которыми мы сейчас работаем. Просто строить нужно умело.

Современный софт Кей сравнивает с египетскими пирамидами. Их строители ещё ничего толком не знали об архитектуре и сооружали конструкции, которые почти полностью состояли из материала и практически не имели свободного пространства внутри. С изобретением колонн и арок стало возможно возводить куда более изящные и практичные сооружения. Нельзя ли изобрести аналог арок для написания программ?

Сейчас программист при всём желании не способен свободно ориентироваться в миллионах строк кода. Зато если уместить всю систему в объём книги и разделить на логические части по 100-1000 строк, это даст возможность легко понимать логику её строения и вносить изменения. Проблемы вроде багов, которые на протяжении многих лет преследуют крупные проекты, просто уйдут в прошлое.

You may say I’m a dreamer

Главный вопрос: возможно ли такое в принципе? За пять лет работы команда Кея доказала, что ответ на этот вопрос может быть положительным. Систему методов, которые позволят это сделать, авторы называют STEPS. Это рекурсивный акроним, расшифровывающийся как STEPS Toward Expressive Programming Systems — «Шаги к выразительным системам программирования».

Руководствуясь принципами STEPS, в институте Кея создали прототип системы. Он называется Frank, а если полностью — «Франкенштейн». Такое имя выбрано не зря: система составлена из кусочков, каждый из которых ещё может быть заменён или переписан заново.

Вот как выглядит «Франкенштейн» с точки зрения пользователя.

Что может делать пользователь Frank? Всё то же, что мы обычно делаем за компьютером: создаём и редактируем текстовые документы, графику, видео, презентации и электронные таблицы, а также обмениваемся ими через сеть. Вся разница в том, что исследователи попытались полностью избавились от дублирования функций разными программами и максимально сократить исходный код.

Frank — это не операционная система, в которой работают приложения, а скорее, подобие Smalltalk или Squeak — большое приложение, которое можно расширять и дополнять, пока оно не станет делать всё, что нам нужно. Вместо приложений, в которых реализованы собственный интерфейс и функции, здесь присутствуют компоненты, имеющие сложные взаимосвязи.

Во Frank есть единое понятие «документ», в который могут быть включены и на месте изменены любые объекты, будь то изображения, таблицы или созданные пользователем скрипты. Презентация, например, — это документ, включающий в себя сценарий перехода вперёд и назад по страницам (или, если угодно, кадрам), а не файл, для открытия которого требуется специальная программа. Такая программа просто не нужна, потому что интерфейс для работы с изображениями и текстом идентичен тому, что используется для подготовки других документов.

  • Читать дальше
  • 1
  • ...
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: