Введение: Устали от раздутых бандлов? Возвращаем чистый кайф от кода

Представьте: пятница вечер, вы хотите набросать идею новой мини-игры или интерактивного туториала. В реальном мире фронтенда это означает три часа настройки Vite, борьбу с Tailwind, выбор менеджера состояния (потому что Redux уже всех утомил, а Zustand ещё не выбрали) и ожидание сборки тяжелого Docker-контейнера. А что если выбросить этот цифровой мусор и вспомнить времена, когда программы создавались за полчаса, весили килобайты и запускались мгновенно? В 1987 году Apple выпустила легендарный продукт HyperCard, навсегда изменивший представление о мультимедиа. Эта среда позволяла создавать стопки карточек, связывать их гиперссылками и оживлять интерфейс с помощью простого языка HyperTalk. Полноценного и столь же элегантного духовного преемника у платформы не было долгие годы.

Ситуация изменилась с появлением проекта Decker. Созданная разработчиком Internet Janitor (при активной поддержке сообщества и репозитории на GitHub, поддерживаемом JohnEarnest), эта мультимедийная платформа возрождает дух классического Macintosh и концепцию End-User Programming. Decker позиционируется как «мультимедийный блокнот» (multimedia sketchpad), объединяющий в себе графический редактор, среду разработки UI, звуковой движок и интерпретатор легковесного языка сценариев. Давайте разберем, как устроен Decker и почему идеи из 1980-х актуальны для современных IT-специалистов.

Анатомия Decker: Концепция мультимедийного блокнота

Когда надоедает перекладывать JSON-ответы из бэкенда во фронтенд (и молиться, чтобы API не поменялось без предупреждения), а хочется чистого творчества, на помощь приходит архитектура Decker. Подобно стекам в HyperCard, документы в Decker состоят из страниц, на которых размещаются интерактивные элементы — виджеты. Проект переосмысляет эстетику старой macOS (System 6 / System 7): монохромная графика, строгие пиксель-арт паттерны, системные шрифты и мгновенный отклик интерфейса.

Каждая страница в Decker может включать:

  • Текстовые блоки и метки для вывода статической и динамической информации.
  • Кнопки и переключатели для управления логикой страниц.
  • Растровые изображения и спрайты, которые можно редактировать прямо во встроенном графическом редакторе.
  • Интерактивные виджеты (слайдеры, поля ввода, списки).

Главное техническое преимущество Decker — сохранение всего приложения в единый компактный файл (формат .deck). Это делает дистрибуцию невероятно простой: файлы можно запускать локально, пересылать по почте или загружать на платформы вроде Itch.io для запуска прямо в браузере через WASM/JS-интерпретатор (и оно волшебным образом работает даже без `npm install`).

Lil: Легковесный скриптинг для управления состоянием

Справившись с визуальной частью, неизбежно упираешься в логику. Сердце любого инструмента для создания приложений — язык сценариев. В HyperCard это был громоздкий HyperTalk, в Decker используется современный и минималистичный язык Lil (Little Interpreter Language).

Lil создан специально для встраивания в компактные среды. Он сочетает в себе черты функционального программирования и привычный синтаксис для работы с таблицами и списками. Посмотрим на базовый пример скрипта, который меняет текст кнопки при клике:

# Обработчик события клика на кнопке
on click do
    if btn.text = "Привет" then
        btn.text := "Мир!"
    else
        btn.text := "Привет"
    end
end

Благодаря строгой типизации и простоте синтаксиса, порог входа в Lil минимален. Разработчик может за несколько минут запрограммировать сложную мини-игру или интерактивную презентацию без необходимости подключать тяжелые библиотеки.

Где и зачем использовать Decker сегодня?

Может показаться, что ретро-платформа с ограничениями монохромной графики — это лишь игрушка для энтузиастов. Однако у подобных инструментов есть масса пр