Кто-то имеет опыт, изучает clojure/clojurescript?

Я потихоньку вникаю в тему clojure. Хочу узнать есть ли кто на форуме с опытом/желаниями вокруг clojure. Цель - пообщаться.

Интересовался темой в рамках изучения функционального подхода в программировании. Ничего ни на том, ни на другом особо не писал. Просто не представляю, какую задачу это сейчас поможет решить. Чем тебе интересен кложур? Только в образовательных целях или больше?

Хочу знать такую технологию, которая

  • не будет меняться каждые 2-3 года. JS кхе-кхе. TS кхе-кхе. clojure программы и идиомы не изменились за 10 лет, сколько язык существует. Не говоря о том что эти идиомы живут с самого начала лиспа что поболе чем 10 лет.
  • позволит писать фуллстек веб приложения. Как богатый сервер, так и богатый клиент. JS/TS в целом хороши для этого. Тут понятно - интерполяция java в clojure - и получаешь все богатство java библиотек (не так просто, как я пишу, но в целом главные задачи решены). Интерполяция js в clojurescript позволит подхватить любые новые веяния библиотек и фреймверков из js мира. Решения вокруг реакта на clojurescript тому пример.
  • хочется строить вещи (впоследствии возможно карьеру) на продуманных основаниях. js, nodejs этому не способствуют. TS - чуть получше, но количество новых сущностей котороые он привносит меня расстраивает. В этом плане lisp и jvm намного более приятны.

Все это интересно, но если писать что-то большее чем пет-проект, где найти таких разработчиков в команду? На рынке труда куча свичеров, непрофильный ребят, который вчера пекли пирожки, а сегодня уже пишут на ангуляре. Функциональный подход может быть лучше/безопаснее/трушнее, но исторический контекст не позволит эффективно адаптировать его на поток. Рабочая сила большинства просто не имеет требуемой квалификации для того чтобы так работать. Я могу говорить конечно только о своем опыте, живя на Украине. Может в других странах обстановка другая.

Вообще это все очень похоже на ситуацию с некоторыми языками. Как бы круто не промоутили го, раст, джаву, старый добрый интерпретируемый пхп все равно имеет колоссальный успех, потому что его знает любой студент и все относительно дешево. Тем не менее они все равно находят свое применение в нишевых областях.

Все в конечном счете упрется в целесообразность/ликвидность для бизнес-задачи.

Все верно говоришь. Пока планы использовать язык только для petproject. Вне Украины с clojure-om получше, но так же жидко, если сравнивать с мейнстримом. С другой стороны вакансии на clojure когда и если есть - и интереснее и оплачиваемее.

Насчёт потока согласен. С другой стороны концепций в языке не так много, а головастым людям все равно что учить. Так что имея опытного ментора, можно кадр и вырастить. Вопрос - откуда берется этот опытный кложурист.

Я не говорю о ситуации в кровавом интерпрайзе. Там никаких кложуров. А мелкий стартап или просветлённая команда - там кложур вполне можно встретить.

Насчёт целесообразности. У меня тяга к лиспу - порыв души, поиск красоты и простоты. Целесообразность стоит на втором месте. Тем не менее я ей не рискую: на кложуре пишут те же программы что и на джаве и джаваскрипте.

Я ещё в 2012 пытался самообучиться common lisp (увидел свой старый пост). Но тогда не хватило клэпки в голове.

1 лайк

Можешь посоветовать какие-то хорошие материалы по кложуру? https://www.braveclojure.com/ хорош.

1 лайк

Мне очень помог этот видео блог

1 лайк

Эта страница хороша как выжимка по всему кложуру
https://yogthos.github.io/ClojureDistilled.html

Еще ресурс с выжимкой
https://kimh.github.io/clojure-by-example/#about

Верхнеуровневые концепты хорошо описаны на самом сайте
https://clojure.org/reference/reader

Документация с примерами использования
https://clojuredocs.org/

1 лайк

И еще про высокоуровневые концепты от создателя кложура

https://www.youtube.com/watch?v=P76Vbsk_3J0

1 лайк

Очень нравится, что концепция у него достаточно простая и она одинакова на всех уровнях использования. Поначалу непривычно, но со временем приходит понимание этой красоты.

Да. На функциях и массивах-хешмепах можно построить большинство приложений которые я сейчас строю в js. К сожалению в моей области интереса нет задач для применения полиморфизма или параллельных вычислений. Возможно я пока что-то не понимаю.