Что такое Pharo?

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

Скриншот Pharo 14
Скриншот Pharo 14
  • Простой и мощный язык: никаких конструкторов, объявлений типов, интерфейсов и примитивных типов. Вместо этого — элегантный язык, вся синтаксис которого умещается на одной открытке. В 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:

Благодарности

Pharo — это проект его сообщества. Он создан для вас, но главное — что создаётся вкладом невероятного сообщества людей со всего мира. Сотни контрибьюторов работали над Pharo 14, отправляя pull-запросы, докладывая об ошибках, участвуя в обсуждениях, предоставляя обратную связь и помогая во множестве задач во всех каналах сообщества.

Спасибо всем за вклад в развитие Pharo.

Команда Pharo