О разделе
Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.
Smalltalk — один из родоначальников ООП и GUI — объекты и сообщения, динамическая типизация, среда image, IDE внутри системы. Язык создали в Xerox PARC в 1970-х; эталоном для индустрии стал Smalltalk-80 (образ + виртуальная машина). От Simula пришли классы и наследование; к Java, Ruby, Objective-C и Python ушли посылка сообщений, живая среда и идеи рефакторинга, шаблонов и XP. Для обучения ориентируемся на Pharo (Playground, Class Browser); родственные реализации — Squeak, VisualWorks, GNU Smalltalk. UI и игры в разделе — на Morphic; для нативной графики — Raylib, для анализа кода — Glamorous Toolkit.
Материал лучше проходить в живой среде — копирование в "обычный" редактор без image не заменит опыт.
Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.
Перед ООП-модель Smalltalk: парадигмы и ООП в разделе "Код".
Рекомендуемый маршрут
| Шаг | Материал | Зачем |
|---|---|---|
| 1 | Первая программа | Pharo, Playground |
| 2 | О языке | Image, VM |
| 3 | Философия → Синтаксис | Сообщения |
| 4 | Типы → ООП | Класс в браузере |
| 5 | Pharo → Morphic | Среда и графическая система |
| 6 | Крестики-нолики | Morphic, MVC на практике |
| 7 | SmallDesktop на Morphic | Десктопное GUI — панели, формы, тема |
| 8 | SmallPong на Morphic | Игровой цикл, клавиатура |
| 9 | SmallShooter — шутер | Волны врагов, Morphic UI |
| 10 | Raylib в Pharo · Glamorous Toolkit | FFI-игры и moldable tools |
| 11 | Squeak · Справочник → Чек-лист | Родственная VM и шпаргалка |
Частые ошибки
| Ошибка | Что делать |
|---|---|
Ждать .exe и сборку как в C | Работать в image, сохранять образ |
| Копировать Java-синтаксис | ifTrue:, timesRepeat: |
| Не нажать accept (Ctrl+S) | Метод не попадёт в систему |
Зачем этот раздел
Подборка по Smalltalk в энциклопедии: синтаксис, первая программа и смежные темы. Выберите один язык для старта, пройдите маршрут до первой рабочей программы — затем переходите к следующему языку или стеку.
С чего начать
| Шаг | Материал | Зачем |
|---|---|---|
| 1 | Первая программа | Запуск и синтаксис |
Частые ошибки при старте
| Ошибка | Что делать |
|---|---|
| Прыжки между языками | Закройте одну "первую программу", потом сравнивайте |
| Код без запуска | Выполните пример локально |
| Сразу большой фреймворк | Сначала база раздела, потом REST/UI |
Что попробовать
- Шаг 1 из таблицы.
- Три непонятных термина — найдите статьи в оглавлении раздела.
- Другой язык — только после своей рабочей первой программы.
Play ITЗагрузка интерактивного демо…
Play ITЗагрузка интерактивного демо…
Smalltalk - язык объектно-ориентированного программирования
Smalltalk — ООП, посылка сообщений, image и влияние на Java, Ruby и практики разработки.
Рекомендации по разработке на Smalltalk
Набор советов, правил, принципов и обычаев в разработке на этом языке.
Первая программа на Smalltalk
Гайд по установке и настройке с написанием первой программы и её запуском.
Крестики-нолики на Morphic — практикум
Пошаговая реализация игры "крестики-нолики" в Pharo — модель TTTGame, морфы клеток и доски, клики и обновление интерфейса.
Pharo
Pharo — современная реализация Smalltalk: образ image, виртуальная машина, инструменты среды, пакеты и экосистема.
Squeak
Squeak — классическая реализация Smalltalk-80: история, Etoys, Scratch, Morphic и отличия от Pharo.
Morphic — графическая система
Morphic в Pharo и Squeak — морфы, события, компоновка, stepping и связь с MVC; основа практикумов раздела.
Raylib в Pharo
Raylib — C-библиотека для игр; биндинги в Pharo через uFFI и pharo-cig, игровой цикл и сравнение с Morphic.
Glamorous Toolkit
Glamorous Toolkit (GT) — moldable development environment для Pharo: Lepiter, views, анализ кода и data exploration.
История языка Smalltalk
В Smalltalk документация — это живые примеры в браузере классов. В индустрии — это Confluence-страницы и OpenAPI-спецификации.
SmallDesktop на Morphic — практикум
Пошаговая сборка настольного приложения на Pharo — модели заметок и калькулятора, Morphic-панели, навигация, темы и строка статуса.
Философия и принципы Smalltalk
Философия Smalltalk - принцип "всё есть объект" и его влияние на проектирование объектных систем.
Синтаксис и особенности языка
Синтаксис Smalltalk: минимальное ядро, сообщения, блоки, пример select: и знаки препинания.
SmallPong на Morphic — практикум
Пошаговый практикум пинг-понга на Pharo — 9 этапов от модели PongGame до Morphic-окна с клавиатурой; разбор кода, теория и полная ревизия.
Типы данных и переменные в Smalltalk
Типизация, набор правил определения типа данных значений языка.
Объектно-ориентированная модель Smalltalk
Классы и объекты в Pharo, объявление Fighter, протоколы методов, инкапсуляция и полиморфизм через сообщения.
Smalltalk — SmallShooter
Пошаговый практикум — вертикальный шутер на Pharo и Morphic. Три класса, волны врагов, клавиатура и игровой цикл около 60 FPS.
Справочник по Smalltalk
Справочник-шпаргалка по Smalltalk: типы, синтаксис, стандартная библиотека, типовые паттерны.
Smalltalk — итоги
Итоги раздела «Smalltalk» — FAQ и краткие ответы по теме.
Smalltalk — чек-лист
Чек-лист раздела «Smalltalk» — вопросы для самопроверки.
Smalltalk — о разделе
Подборка материалов раздела Smalltalk в энциклопедии Вселенная IT.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Бэкенд и серверная разработка — PHP — о разделе, Kotlin — о разделе, C++ — о разделе, Go — о разделе, C# — о разделе, Ruby — о разделе.