Не думал, что пошерю ток с RubyConf 😅, однако трагическая история рассказанная в нем, somehow близка мне. Чувак опытный рубист рассказывает как писал стартапчик на Clojure, а потом внезапно понял, что плохо понимает, как его дебажить, переписал обратно на Ruby и, не остановившись на этом выступил на конфе. Его выступление по ссылочке, а я расскажи о своем кейсе.
Потратив месяцок на ClojureScript проект я переписал его на JS за 2 недели (150 коммитов, 120 часов). Почему? Ну для начала — сетап JVM это, блять, нетривиально. Тратить время на то чтобы сделать нормальный пайплайн для ассетов с помощью JVM это развлечение на троечку. Далее — интероп с JS хоть и есть, но not quite there: то есть всякие resizeable textarea имплементить либо с нуля, либо напряженно въезжать в тонкости и кишочки. Это хоть и приятное медитативное занятие, но не помогает шиппить стартапчик в условиях ограниченного всего. Finetune перформанса в ClojureScript состоит в том, что код гоняется через Closure compiler, и, какой-нить codespitting сделать не представляется возможным, точно не так просто как в webpack, который хоть и дикий зверь, но кроме создания проблем некоторые решает. Киллер фичи Clojure — типо иммутабельных структур — есть в JS как либа, всякие ништяки Re-Frame — subscriptions/reactions тоже.
Тут дорогий читатель должен сказать, мол: «Чё ты полез-то в брод раз не умеешь в Emacs и JVM?» — Так вот, мораль истории не про осилил/не осилил, а какую тулзу брать в условиях ограниченного времени. Перед ClojureScript для фронтенда я успешно запилил 2 бэкендика на Clojure и пару pet projects, которые до сих по крутятся в проде. Я большой фанат Пола Грэма с его «хакеры пишут всё лиспами на макросах и поэтому их стартапы могут катить фичи за считанные дни», но эти слова — не вся правда.
https://www.youtube.com/watch?v=doZ0XAc9Wtc
Потратив месяцок на ClojureScript проект я переписал его на JS за 2 недели (150 коммитов, 120 часов). Почему? Ну для начала — сетап JVM это, блять, нетривиально. Тратить время на то чтобы сделать нормальный пайплайн для ассетов с помощью JVM это развлечение на троечку. Далее — интероп с JS хоть и есть, но not quite there: то есть всякие resizeable textarea имплементить либо с нуля, либо напряженно въезжать в тонкости и кишочки. Это хоть и приятное медитативное занятие, но не помогает шиппить стартапчик в условиях ограниченного всего. Finetune перформанса в ClojureScript состоит в том, что код гоняется через Closure compiler, и, какой-нить codespitting сделать не представляется возможным, точно не так просто как в webpack, который хоть и дикий зверь, но кроме создания проблем некоторые решает. Киллер фичи Clojure — типо иммутабельных структур — есть в JS как либа, всякие ништяки Re-Frame — subscriptions/reactions тоже.
Тут дорогий читатель должен сказать, мол: «Чё ты полез-то в брод раз не умеешь в Emacs и JVM?» — Так вот, мораль истории не про осилил/не осилил, а какую тулзу брать в условиях ограниченного времени. Перед ClojureScript для фронтенда я успешно запилил 2 бэкендика на Clojure и пару pet projects, которые до сих по крутятся в проде. Я большой фанат Пола Грэма с его «хакеры пишут всё лиспами на макросах и поэтому их стартапы могут катить фичи за считанные дни», но эти слова — не вся правда.
https://www.youtube.com/watch?v=doZ0XAc9Wtc