Size: a a a

Clojure — русскоговорящее сообщество

2021 January 15

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
Вот да.
Давно замечаю, что если ты знаешь что хочешь - легко и просто это сделаешь, причем довольно сложные вещи.
А если не знаешь что именно ты хочешь, то боль и π-страдания.

И судя повсему нужно иметь опыт на других языках и фреймворках, чтобы понять их идеи и уже на clojure сделать так как тебе нужно быстро и комфортно.
>> И я тут задумался над тем, а чем действительно clojure хороша. Как это другим объяснить?

Тоже думал. Тоже пробовал рассказать про иммутабельность, показать repl, показать минимализм синтаксиса, макросы, интероп, универсальность работы с последовательностями, data-driven development - никого не заинтересовало. Некоторые просто из-за упрямства сопротивляются, некоторые из-за лени. некоторые боятся "рисков" и "хипстерских" техстеков. правда, да, наверное не было среди них пока никого с опытом 20+ лет. Но и у меня нет. (или может Basic в школе считается как опыт?)
Думаю, что когда-нибудь судьба меня сведёт с кем-то, кому я смогу подарить эту красоту. просто пока не нашёл (здесь у меня даже в глазах заблестело, губки немножечко скривились и к горлу комочек подкатился).
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
На тему, чем хороша:
Для себя я открыл например такой эффект (в том смысле, что мне на него никто не указывал): кложа прям заставляет упрощать код.
Ты запилил по-быстроляну функу, смотришь на неё и тебе кажется, что она какая-то слишком "пушистая" или "развесистая" что ли. Подумал немножко - сократил на 20 % - мало, подумал ещё немножко -  ещё сократил на 15% - мало. Ещё пара таких итераций и в итоге каким-то образом получается функа в 7-15 строк. и тут ты понимаешь, что и вправду ведь предназначение было у функи простым и поэтому код получился простым. И теперь ты уже можешь быть спокоен, что даже после "затвердевания" кода эта функа останется красивой, понятной и полезной. Запилил и забыл.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
На других языках такого эффекта не припомню.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
А тут недавно по рекомендации youtube набрёл на ролик, где чувак делает сравнение 8 (кажется) языков на относительно простой задачке. Ну там решение из двух reduce. И там всех бьёт язык APL. Решение в нём, если не считать имени функции что ли, записывается всего 4 символами. Вот где краткость кода! Но конечно я не о том, что краткость кода - это абсолютное мерило крутости языка. Я просто о том, что такое тоже бывает.
Решение на кложе кстати было среди 8 языков далеко не самое короткое.
Но я конечно всё равно люблю кложу...
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Ещё один эффект, который кстати как раз отпугивает многих - свобода.
Кложа дарит свободу во многом.
Людей пугает отсутствие стен, рамок и перилл.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Но это кажется я не сам для себя открыл.
источник

ap

andei papkov in Clojure — русскоговорящее сообщество
Свобода это js
источник

ap

andei papkov in Clojure — русскоговорящее сообщество
Как с небольшим опытом, могу сказать что киллер фича это репл,
источник

ap

andei papkov in Clojure — русскоговорящее сообщество
И даже в если сравнивать обновление браузера в шедовджс и хотрелоадьвебпака, то в 1м случае идёт именно обновление кода без перезагрузки браузера, а хотрелоад все перегружает
источник

AZ

Alex Zveryansky in Clojure — русскоговорящее сообщество
andei papkov
Свобода это js
Ага, я наследника этой свободы в виде (= 1 (+ 1 nil))в cljs час пытался найти. Свобода и хаос это разные вещи
источник

ap

andei papkov in Clojure — русскоговорящее сообщество
В js можно писать в разных стилях: ООП, функциональный, добавлять или не добавлять тайп чекеры(ts, flow),и богатство заключается в npm либах,иммутабл либа, функции итд
источник
2021 January 16

MD

Mihail Dolghintev in Clojure — русскоговорящее сообщество
как я понял автокомплит cljs только в cursive?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Mihail Dolghintev
как я понял автокомплит cljs только в cursive?
Нет почему
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
andei papkov
Как с небольшим опытом, могу сказать что киллер фича это репл,
Да. Попробуй про это сказать groove’исту, python’исту, javascript’исту, powershell’исту и многим другим и любой из них (если захочет продолжить разговор) ответит тебе, что их консоль ничуть не хуже твоего repl. Местами они даже будут по-своему правы. И вот уже твоя фича не такая-то и киллер. И так про все киллер-фичи. Всегда найдётся неверующий Фома, у которого в его любимом kotlin тоже сделано очень много в направлении компактизации кода. Или в его любимом scala многое в направлении функц. программирования.
И уже не очень явным в твоей аргументации становится то, что кложа вобрала в себя множество киллер фич, которые в других языках есть, но чтобы такой кучей - вроде и нигде нет.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Если уж говорить объекту вербовки про repl, то упирать надо:
- на то, что data-in/data-out,
- на то, что ты постоянно находишься в диалоге с живым runtime’ом
- на то, что это основной способ разработки функи как единицы кода, т.е. repl-driven development.

Вот этих аспектов как раз не хватает в других языках, где вроде бы тоже есть консоль, shell, idle и т.п. вещи, похожие на repl.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
andei papkov
В js можно писать в разных стилях: ООП, функциональный, добавлять или не добавлять тайп чекеры(ts, flow),и богатство заключается в npm либах,иммутабл либа, функции итд
Я имел ввиду другую свободу. Не ту,
когда ты можешь пойти направо или может быть налево, ты же королева - ты имеешь право на любой ход! и даже не свободу ходить боком или скоком! И я даже имею ввиду не свободу не только ходить, но и летать. И даже дышать.
Я имею ввиду свободу вообще. Свободу творить, экспериментировать, исследовать, доказывать, изобретать. Свободу не тела, но разума. Свободу, которая вдохновляет математиков, которые придумывают то, чего нет и потом доказывают, что оно есть.
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Damir Farazetdinov
А тут недавно по рекомендации youtube набрёл на ролик, где чувак делает сравнение 8 (кажется) языков на относительно простой задачке. Ну там решение из двух reduce. И там всех бьёт язык APL. Решение в нём, если не считать имени функции что ли, записывается всего 4 символами. Вот где краткость кода! Но конечно я не о том, что краткость кода - это абсолютное мерило крутости языка. Я просто о том, что такое тоже бывает.
Решение на кложе кстати было среди 8 языков далеко не самое короткое.
Но я конечно всё равно люблю кложу...
Краткость хорошо, но важна ментальная нагрузка ещё, в кложе ментального оверхеда от языка почти нет, в отличие от
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
+100500
источник

D

Dos in Clojure — русскоговорящее сообщество
я бы поменял
map #(if (= % "(" 1 -1)) на (replace {"(" 1 ")" -1})
😀
источник