brain_dump_etc
642 subscribers
101 photos
4 videos
3 files
402 links
Дампы мыслей, свалка ссылок, программизмы, вкусовщина!

Автор: @astynax
Донаты (patreon и прочее): https://astynax.me/support.html
Чат: https://xn--r1a.website/brain_dump_chat
Twitch: https://www.twitch.tv/astynax2hs
Discord: https://discord.gg/tJvze5
Download Telegram
Захотелось недавно #generative_art потворить.

Сначала взял #elm. Наткнулся на проблему с фатальным недостатком подхода к генерации случайных значений в стандартной библиотеке (которую можно решить сторонней либой, но я тогда про неё ещё не знал). Потом ещё и 0.19 вышла, где "всё сломали". И на package.elm-lang.org теперь меня не пускает без проксирования.

Решил, "хватит с меня Elm, слишком сложно для простой задачи погенерировать картинки".

Вспомнил про Quil - это такая надстройка над Processing/ProcessingJS, которые как раз и предназначены для generative art. Подумал, "Пусть без типов, но и результат сразу виден, так что проживу как-нибудь". "Расчехлил" lein, создал проект из шаблона, запускаю REPL. Внутренняя ошибка внутри либы.

Пошел смотреть в Issues. Оказалось, что проблема с #processing: оный не работает на Java 9+. Что-то у них сломалось из-за изменений в рантайме. Но чинить совместимость с Java 9 смысла нет, потому как она уже не поодерживается. А в последующих версиях уберут (убрали уже?) средства для работы с GUI - по крайней мере те, которые используются в Processing. Авторы Processing не знают, когда получится сделать поддержку какой-то из более поздних версий рентайма. Вот такая вот стабильная платформа с долгим сроком поддержки...

Может быть я ещё вернусь к Quil - #clojurescript-версия использует ProcessingJS. Но эта библиотека отстаёт по фичам от "старшего брата". ClJS не умеет макросы в рантайме. Есть и пачка других ограничений. Да и toolchain вокруг ClJS не вызывает у меня приятных воспоминаний. А когда хочется "быстренько покреативить", то отвлекаться на настройку инструментария не хочется совершенно...

В итоге я взял #racket. И там просто всё работает :) Да, есть своя специфика и язык менее красив, чем #clojure. Но графическая библиотека 2htdp/image - отличная. В JS не скомпилить, поэтому в браузер генераторы картинок уже не экспортируешь. Но жажду творчества утоляет :)