ClojureScript
21.03.2023
✔️ Исходный код!
На JavaScript можно писать функционально — это не секрет. Язык поддерживает разные парадигмы, и программист волен выбирать между процедурным, объектным и функциональным решением задачи. Кажется, что парадигмы языка совершенно равноправны, но это не так. Синтаксис JavaScript — старый добрый процедурный C, приправленный объектными украшениями, какие мы видели в C++ и Java. Писать на JavaScript процедурный и объектно-ориентированный код — привычнее, идиоматичнее и проще, чем функциональный.
Языки, на которых принято писать преимущественно в функциональном стиле, чаще встречаются на стороне бэкэнда. А вот на чём можно функционально пописать для браузера?
Лет десять с лишним существует язык Clojure, который “живёт” на сервере, где запускается на Java Virtual Machine, а в браузере запускается его более молодое подмножество — ClojureScript. Это тот самый “functional first” язык, где вы практически везде используете чистые функции и неизменяемые структуры данных удовольствия ради и дела для.
Алексей Пирогов, наш бессменный докладчик и организатор встреч, сделал серию воркшопов, где вживую показал, как выглядит разработка на ClojureScript. Реализовал работающий в браузере “Pokedex” — базу знаний о… покемонах! Данные получает из PokéAPI, кэширует в Localstorage и показывает по ним выборки в GUI. Также кладёт данные в DataScript — это такая in-memory БД, запросы к которой пишутся на языке логического программирования Datalog (который является DSL для Clojure, конечно же).
Цикл воркшопов прошёл с 16 февраля по 21 марта.