Что такое Pharo?
Pharo — чистый объектно-ориентированный язык программирования с мощной средой разработки, ориентированной на простоту и получение немедленной обратной связи.

- Простой и мощный язык: никаких конструкторов, объявлений типов, интерфейсов и примитивных типов. Вместо этого — элегантный язык, вся синтаксис которого умещается на одной открытке. В Pharo всё основано на объектах и сообщениях.
- Живая, интерактивная среда: немедленная обратная связь на любом этапе разработки — при написании, тестировании, отладке. Даже в production-среде больше не придётся ждать компиляции и развёртывания.
- Мощный отладчик: встроенный отладчик Pharo не имеет аналогов. Позволяет пошагово проходить код, перезапускать выполнение методов, создавать методы на лету и многое другое.
- Pharo — это ваш проект: разработан невероятным сообществом с более чем сотнями контрибьюторов в последних версиях платформы и тысячами людей, постоянно создающих фреймворки и библиотеки.
- Полностью open-source: весь стек Pharo распространяется под лицензией MIT и доступен на GitHub.
Подробнее — на странице возможностей Pharo.
Основные направления работы
В этой версии команда сосредоточилась на трёх главных направлениях:
- Модернизация инструментов разработки. Представлены Mission Control и Pulse (замена Spotter), переработан Method Browser и переписан Settings Browser, объединены Epicea и ProfStef в NewTools. Продолжается миграция инструментов на стек Spec-based tooling.
- Перестройка инфраструктуры рефакторинга и команд. Команды рефакторинга перенесены на архитектуру на основе драйверов с единым реестром команд, расширены возможности командной строки (testing из CLI, отладчик CLI, Sindarin script tooling).
- Модернизация виртуальной машины. Унифицированы frames и управление стеком, добавлена поддержка RISC-V JIT, расширено управление памятью (прямое выделение в old-space и улучшения GC), продвинутая компиляция Slang/C и модернизация кросс-платформенной инфраструктуры сборки.
Важное примечание: начиная с этого релиза, график выпусков сдвинулся с весны (март–май) на осень (сентябрь–ноябрь). Pharo 14 — первая версия, выпущенная по новому расписанию.
Основные улучшения
Инструменты
- Введение Mission Control
- Новый и переработанный Method Browser
- Переписан Settings Browser и переведен в режим по умолчанию
- Миграция Epicea в NewTools
- Миграция ProfStef в NewTools
- Введение Pulse (замена Spotter)
- Интеграция TestRunner и тестирование из командной строки
- Исправления Calypso
- Работы над Cavrois и window profile
- Улучшения File Browser, Finder и Transcript
Система
- Миграция команд рефакторинга и реестр команд
- Scoped extensions и семантика селекторов
- Чистые блоки и поведение отладчика/evaluation
- Корректность ClassBuilder, traits и суперклассов
- Разделение Compiler API и инсталляция методов
- UnifiedFFI value holders,
FFIMethod, callbacks и сброс bootstrap - Отладчик командной строки
- Очистка debugger/client-model
- Модуляризация package/baseline и очистка зависимостей bootstrap
- Снижение зависимостей Morphic/UIManager
- Исправления FastTable, text, graphics, Zinc и Zodiac
- Sindarin script tooling
- Работа с code editor/code presenter
- Поведение list, tree и filtering
- Поведение dialog, window и modal
- Улучшения и очистка action/command
- Исправления Morphic backend и layout
Виртуальная машина
- Унификация frames и улучшения управления стеком, что привело к значительной очистке интерпретатора и execution engine
- Поддержка RISC-V JIT, расширяющая покрытие платформ и обеспечивающая будущее развитие VM
- Новые возможности управления памятью: прямое выделение в old-space и множество улучшений GC и allocation
- Масштабная работа над компилятором и трансляцией Slang/C с исправлениями корректности, новыми тестами и улучшенными инструментами inspection
- Модернизация платформы и сборки: обновления SDL, улучшенный CI, поддержка cross-build и обновлённые зависимости третьих сторон
- Масштабная очистка и рефакторинг VM, интерпретатора, Cogit, PICs и инфраструктуры
Объём работы
Эта версия результат интеграции 978 pull-запросов непосредственно в репозиторий Pharo. Закрыто 616 issues с момента выпуска Pharo 13. Проект теперь насчитывает 432 fork и 1494 звёзды на GitHub. Кроме того, проведена масштабная работа в отдельных проектах, включённых в каждый релиз Pharo:
- https://github.com/pharo-spec/NewTools
- https://github.com/pharo-spec/Spec
- https://github.com/pharo-vcs/Iceberg
- https://github.com/pharo-graphics/Roassal
- https://github.com/pillar-markup/Microdown
- https://github.com/pillar-markup/BeautifulComments
- https://github.com/pharo-project/pharo-vm
Благодарности
Pharo — это проект его сообщества. Он создан для вас, но главное — что создаётся вкладом невероятного сообщества людей со всего мира. Сотни контрибьюторов работали над Pharo 14, отправляя pull-запросы, докладывая об ошибках, участвуя в обсуждениях, предоставляя обратную связь и помогая во множестве задач во всех каналах сообщества.
Спасибо всем за вклад в развитие Pharo.
Команда Pharo
- Узнайте больше о Pharo: https://pharo.org/features
- Попробуйте Pharo: http://pharo.org/download
- Учите Pharo: http://pharo.org/documentation