Nature Of Code сделанный на Go
Оглавление
Пройдя Go Tour захотелось немного закрепить свои навыки с Go. Но делать очередную вебню не хотелось, а хотелось чего-то творческого.
Листая реддит, снова наткнулся на обзорную статью про creative coding. И там хороша вся серия - хотя бы картинками.
P5js - часть проекта Processing.org. Там про обучение программированию, вот это всё. И в рамках это всего выпущена и “книга” - NATURE OF CODE. На сайте она полностью доступна с живыми примерами/скетчами.
Взяв её за основу я решил попрактиковаться.
Исходники на гитхабе.
Я не первый кто решил повыполнять упражнения на Go. Есть пример на Go + Ebiten (2д движок на Go). Но мне принципиально хотелось без всяких библиотек, максимально просто. Оттуда я взял пару функций.
Такие штуки, мне кажется, принципиально делать на единственной доступной мультиплатформе - для веба. Ведь как сегодня, в 2к25, поделиться чем-то “живым”, что можно запустить, а не опостылевшей гифкой?
Со мной желание сделать максимально просто эти примеры сыграло злую шутку. Хоть Go собирается под wasm, рантайм жирноват, и получается очень большой .wasm-файл. Разработчики языка не ставят перед собой цели чтобы бинарь был максимально компактным. Но есть tinygo для embed и wasm. Но это сторонний проект, не от разработчиков Go. И там не все возможности языка поддерживаются.
И тут я понял, что такое Go.
Суть Go
Мне кажется, что Go стоит не пересечении нескольких идей.
Первая - это потоки вдохновленные Erlang.
Вторая - это сделать прикладной язык типа Руби, Джаваскрипта или Питона, но чтобы он был скорее вдохновлен Си (не сколько синтаксически, а скорее идейно), нежели Перлом, Схемой (Scheme) или просто отвратительным вкусом (я терпеть не могу Питон).
То есть, не надо воспринимать Гошку как Си со сборкой мусора, а скорее как альтернативу для Питона или Джаваскрипта.