После шести лет разработки вышла версия 1.0 интерактивной среды Pluto для языка Julia. Релиз символизирует, что проект «созрел» — хотя сам патч скромный (просто удалили устаревшие функции), команда подвела итоги всех ключевых улучшений за последние годы.
Pluto — это реактивная среда для notebook-программирования, похожая на электронную таблицу: меняешь одну ячейку — мгновенно обновляются все зависимые. Главные принципы: интерактивность (слайдеры, кнопки), воспроизводимость и доступность для новичков. Pluto — самый звёздный Julia-пакет на GitHub с 2021 года.
Версия 1.0 получилась очень надёжной. У проекта около 2500 автоматических тестов, включая те, что эмулируют клики в браузере. Каждый notebook работает в изолированном Pkg-окружении: пакеты добавляются и удаляются автоматически, а при открытии чужого блокнота используются те же версии. Новый редактор Project.toml даёт точный контроль над зависимостями, включая поддержку Julia-фичи [sources] для пакетов прямо с GitHub.
Экспорт теперь полноценный: можно сохранять notebook в Julia, PDF и самодостаточный HTML, который содержит код и окружение — открыть можно без интернета. Для публикации запустили сервис pluto.land (аналог pastebin для Pluto), а через PlutoSliderServer.jl можно делать интерактивные сайты на основе notebook.
Реактивность стала гибче: ячейки можно отключать (и все зависимые от них тоже выключаются реактивно), а перед запуском долгой цепочки вычислений Pluto спрашивает подтверждение — можно отменить и запустить всё одной пачкой.
Набор виджетов в PlutoUI.jl пополнился слайдерами, переключателями, кнопками, мультиселектами и средствами для сложной 2D-вёрстки. Для педагогов есть PlutoTeachingTools.jl. Продвинутый API для создания собственных виджетов использует JavaScript runtime и высокопроизводительное соединение Julia-JS.
Pluto переведён на 16 языков, включая китайский, датский, немецкий, греческий, французский, итальянский, японский, нидерландский, норвежский, персидский, польский, португальский, финский и латиноамериканский испанский.
Образовательные фичи: улучшенные сообщения об ошибках с мини-превью кода и автоматическим скрытием внутренних Julia-функций, готовый шаблон для курсовых сайтов и пакет PlutoTurtles.jl — черепашка, которой можно управлять слайдерами, с подсветкой выполняемых строк кода.
Из AI-инструментов — только исправление синтаксических ошибок (пропущенный end или кавычка). Никакого «vibe coding», подчёркивают разработчики: Pluto должен помогать учиться писать Julia, а не генерировать код за пользователя.
Появились 40 готовых примеров notebook, новый сайт plutojl.org (собранный на PlutoPages.jl) и полностью переписанный парсер Julia для редактора CodeMirror 6. Автодополнение комбинирует статический анализ JS-парсера с результатами REPL Julia. Добавлены jump-to-definition, поддержка смешанных языков (Python, SQL, HTML внутри Julia), логи через @info, ANSI-цвета в терминале и улучшенный просмотрщик объектов с интерактивным деревом для структур данных. Проект передан в коллективную организацию JuliaPluto.