Найти в Дзене

Вышел Pharo 12

Ура, товарищи! Вышел Pharo 12, с чем я поздравляю всех причастных и заинтересованных! Если кто не знает, то согласно официальному сайту, Pharo – это чистый объектно-ориентированный язык программирования и мощная среда [разработки и исполнения], нацеленная на простоту и немедленный отклик. Вот так-то! А по-простому, Pharo – это одна из реализаций системы программирования Smalltalk, ведущая свою родословную от эталонной системы Smalltalk-80. Если быть точным, то история Pharo выглядит так: Smalltalk-80 → Apple Smalltalk-80 → Squeak → Pharo. Для справки, есть ещё реализации Smalltalk не связанные напрямую со Smalltalk-80. Это VAST (бывший IBM VisualAge Smalltalk), Smalltalk/X, Dolphin Smalltalk, GNU Smalltalk и др. Что нового? (Оригинал новости здесь) Новая система точек останова Система точек отладки - это модель точек останова, которая заменяет предыдущую реализацию точек останова и точек наблюдения. Теперь их можно настраивать, компоновать и/или расширять. Традиционные точки останова т
Оглавление
Официальный логотип Pharo
Официальный логотип Pharo

Ура, товарищи! Вышел Pharo 12, с чем я поздравляю всех причастных и заинтересованных!

Если кто не знает, то согласно официальному сайту, Pharo – это чистый объектно-ориентированный язык программирования и мощная среда [разработки и исполнения], нацеленная на простоту и немедленный отклик. Вот так-то! А по-простому, Pharo – это одна из реализаций системы программирования Smalltalk, ведущая свою родословную от эталонной системы Smalltalk-80. Если быть точным, то история Pharo выглядит так: Smalltalk-80 → Apple Smalltalk-80 → Squeak → Pharo. Для справки, есть ещё реализации Smalltalk не связанные напрямую со Smalltalk-80. Это VAST (бывший IBM VisualAge Smalltalk), Smalltalk/X, Dolphin Smalltalk, GNU Smalltalk и др.

Что нового?

(Оригинал новости здесь)

Новая система точек останова

Система точек отладки - это модель точек останова, которая заменяет предыдущую реализацию точек останова и точек наблюдения. Теперь их можно настраивать, компоновать и/или расширять. Традиционные точки останова также остаются доступными, включая условные, одноразовые и объектно-ориентированные. Кроме того, появились новые типы точек останова, представляющие собой точки останова с цепочкой, которые могут активировать определенные точки останова при запуске других точек (например, точка останова B активируется только при первом нажатии на точку останова A). Кроме того, теперь в системе доступен новый специальный браузер, с помощью которого можно управлять точками останова, выстраивать цепочки, задавать условия останова и т.п. Браузер доступен в меню Debug → Debug Point Browser.

Сам я пока не пробовал, что это такое, но думаю, штука полезная.

Инструменты

* Новый расширяемый синтаксис описания классов, т.н. «fluid class syntax», теперь установлен по умолчанию для всех классов.

Было:

Пример описания класса в Pharo 11
Пример описания класса в Pharo 11

Стало:

Пример описания класса в Pharo 12
Пример описания класса в Pharo 12

(Пришлось вставить изображения с кодом, т.к. в Дзене весьма бедные средства представления текста. В частности, нет возможности вставлять исходные тексты. Уважаемые разработчики Дзена, если вы читаете этот текст, подумайте пожалуйста о расширении средств вёрстки).

Старый вариант пока ещё работает, но при применении изменений (Accept) он будет автоматически трансформирован в новый. Это актуально для кода, созданного в предыдущих версиях Pharo.

* Продолжено внедрение новой графической инфраструктуры Bloc. Большое количество виджетов Spec2 переведено на использование Bloc.

* Улучшения инфраструктуры Spec2, связанные с поддержкой GTK4.

* Более компактная версия пакетного менеджера Metacello.

* Более надежный и строгий режим для FFI (затрудняюсь сказать, что это такое; не приходилось ещё иметь дело с FFI).

Система

* Новая архитектура для рефакторинга и преобразований, зависящих от предметной области.

* Улучшения производительности загрузки кода.

* Увеличение скорости отображения классов в браузере за счёт оптимизации [реализации] тэгов пакетов.

* Оптимизация использования памяти за счёт оптимизации [реализации] протоколов (категорий) методов.

* Упрощения и улучшения в компиляторе.

Виртуальная машина

В новую версию виртуальной машины вошло 1895 pull request’ов. Было закрыто 865 ошибок и замечаний силами более чем 70 различных разработчиков. Кроме того, проведена большая работа в отдельных проектах, которые включаются в каждый релиз Pharo: NewTools, NewTools-DocumentBrowser, Spec, Iceberg, Roassal, Microdown, BeautifulComments, Pharo VM.

Почему это интересно лично мне?

Любая реализация Smalltalk представляет собой систему программирования, включающую в себя динамически-типизированный язык программирования, а также достаточно удобную, хотя и непривычную среду разработки с развитыми средствами редактирования и рефакторинга, и мощным отладчиком, поддерживающим внесение изменений в код прямо в процессе отладки. Squeak и его производные, к коим относится и Pharo, являются кроссплатформенными реализациями, одинаково хорошо работающими под Windows, Linux и MacOS. Благодаря компактности и особенностям архитектуры, присущим всем Smalltalk-системам, Pharo можно положить на флешку и использовать практически на любом компьютере. Для этого нужна специфичная для конкретной ОС виртуальная машина. Образ с кодом будет является полностью кроссплатформенным.

По работе мне часто приходится работать с данными в различных форматах (json, csv, xml), преобразовывать, отфильтровывать ненужное, визуализировать и т.п. Для этих нужд очень даже подходит Pharo.

А в свободное время, в качестве хобби, я занимаюсь разработкой своего сайта, на котором когда-то буду выкладывать статьи, неудобные для Дзен и других подобных площадок с цензурой. Backend-часть пишу на Pharo. В обозримом будущем попробую перевести свои наработки на 12-ю версию.