Некоммерческие реализации 315
2.1. GNU Smalltalk
Основная задача при разработке системы GNU Smalltalk состояла в том,
чтобы создать систему, полностью реализующую язык (включая байткод),
описанный в [4]. Уже в версии 1.0 задача была успешно решена. В GNU
Smalltalk полностью реализована библиотека классов (с некоторыми допол-
нениями), описанная в [4]. Созданная система является консольным при-
ложением, использующим вместо графического интерфейса пользователя
цикл «read – eval – print».
Более совершенная система GNU Smalltalk 1.1 также не имеет графи-
ческого интерфейса, но для нее были созданы дополнения, содержащие
графический интерфейс пользователя для OSF/Motif. Средств разработки
программ в консольной версии нет, а графическая версия содержит только
их минимальный набор (стандартные браузеры и инспекторы). Потому, в
отличие от большинства программ GNU, GNU Smalltalk сегодня не может
конкурировать с другими реализациями языка Смолток, как коммерчески-
ми, так и бесплатно распространяемыми.
2.2. Squeak
Еще одна общедоступная реализация Смолтока создана Дэном Ингал-
сом (Dan Ingalls), Тэдом Кэлером (Ted Kaehler), Джоном Мелони (John
Maloney), Скоттом Валласом (Scott Wallace) и Аланом Кеем (Alan Kay) [8]
во время их работы в компании Apple Computer, Inc., которой и принад-
лежат права на Squeak. Лицензия на эту систему, предоставляемая Apple
Computer, накладывает минимальные ограничения на использование и из-
менение системы и по своей сути сравнима с лицензиями GNU и BSD.
Squeak — открытая переносимая реализация Smalltalk-80 с виртуаль-
ной машиной, полностью написанной на самом Смолтоке, что облегчает
процесс отладки и изменений как программ пользователя, так и самой вир-
туальной машины и системных библиотек Смолтока. Восходящая к ориги-
нальному Smalltalk-80, эта система использует для построения интерфей-
са как классическую т риаду MVC [11], т ак и новую систему визуального
построения приложений Morphic, основанную на идеях, развитых в неза-
вершенном проекте SELF фирмы Sun и Стэнфордского университета (см.,
например, [19], [20]).
Эффективность Squeak обеспечивает конвертер “Смолток → ANSI С”,
который позволяет получить систему, сравнимую по производительности с
коммерческими реализациями Смолтока. Особенностью этой системы яв-
ляется чрезвычайно компактный формат объектов и усовершенствованные
алгоритмы сборки мусора, позволяющие, с одной стороны, работать на