Введение: Устали от раздутых бандлов? Возвращаем чистый кайф от кода
Представьте: пятница вечер, вы хотите набросать идею новой мини-игры или интерактивного туториала. В реальном мире фронтенда это означает три часа настройки 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 сегодня?
Может показаться, что ретро-платформа с ограничениями монохромной графики — это лишь игрушка для энтузиастов. Однако у подобных инструментов есть масса пр