Функциональный фронтенд. ClojureScript.
JavaScript поддерживает разные парадигмы, и программист волен выбирать между процедурным, объектным и функциональным решением задачи. Однако, синтаксис JavaScript — старый добрый процедурный C, плюс немного объектов из C++ и Java. Писать на JavaScript процедурный и объектно-ориентированный код — привычнее, идиоматичнее и проще, чем функциональный.
Языки, на которых принято писать в функциональном стиле, чаще встречаются на стороне бэкэнда. А вот на чём можно писать для браузера?
Лет десять с лишним существует язык Clojure, который "живёт" на сервере, где запускается на Java Virtual Machine, а в браузере запускается его более молодое подмножество — ClojureScript. Это тот самый "functional first" язык, с чистыми функциями и неизменяемыми структурами данных.
Алексей Пирогов, бессменный докладчик и организатор встреч, сделает серию воркшопов, где вживую покажет, как выглядит разработка на ClojureScript.
На воркшопе реализуете работающий в браузере "Pokedex" — базу знаний о покемонах! Данные будете получать из PokéAPI, кэшировать в Localstorage и показывать по ним выборки в GUI. А может быть даже положите данные в DataScript (https://github.com/tonsky/datascript) — это такая in-memory БД, запросы к которой пишутся на языке логического программирования Datalog (https://docs.racket-lang.org/datalog/) (который является DSL для Clojure, конечно же).