Nature Of Code сделанный на Go

· 2 мин. чтения
Оглавление

Пройдя 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) или просто отвратительным вкусом (я терпеть не могу Питон).

То есть, не надо воспринимать Гошку как Си со сборкой мусора, а скорее как альтернативу для Питона или Джаваскрипта.