This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-05-26
Channels
- # aws (7)
- # beginners (109)
- # boot (5)
- # carry (2)
- # cider (25)
- # clara (6)
- # cljs-dev (86)
- # cljs-experience (19)
- # cljsrn (1)
- # clojure (183)
- # clojure-dev (7)
- # clojure-dusseldorf (7)
- # clojure-gamedev (2)
- # clojure-greece (32)
- # clojure-italy (2)
- # clojure-norway (1)
- # clojure-russia (228)
- # clojure-sg (3)
- # clojure-spec (38)
- # clojure-uk (104)
- # clojurebridge (1)
- # clojurescript (29)
- # community-development (9)
- # core-async (118)
- # core-matrix (20)
- # cursive (5)
- # datomic (140)
- # emacs (25)
- # figwheel (1)
- # hoplon (21)
- # jobs (4)
- # lein-figwheel (2)
- # luminus (10)
- # lumo (35)
- # off-topic (137)
- # om (31)
- # onyx (62)
- # pedestal (6)
- # reagent (25)
- # remote-jobs (1)
- # ring-swagger (11)
- # spacemacs (2)
- # test-check (17)
- # uncomplicate (10)
- # unrepl (1)
- # untangled (20)
- # vim (4)
- # yada (3)
кстате в google trends, Clojure заметно коррелирует с Erlang по графику - https://trends.google.ru/trends/explore?q=%2Fm%2F03yb8hb,%2Fm%2F02mm3 что то одеяло функциональщины на себя перетянуло, Kotlin вот например хайпанул.
@artemyarulin мало-тиражируемая фича кложи, изоморфность же. единственный язык наверное, где пишешь фронт и бек в действительно похожем окружении когда стресс от переключения контекста минимален, чистые функции действительно хорошо шарятся. На ноде одно время хайповали эту тему, изоморфные фреймворки всякие напоявлялись но не взлетело, ибо бек и фронт на js получается в корне разный по набору либ, архитектуре, да и вообще нода на беке фу.
@artemyarulin стокгольмский синдром?
да ну? изоморфность вполне так взлетела в ЖС мире
хотя на жс чуть шире - можно на беке юзать ноду, а можно жвм да, это круто
Изоморфность вполне прилично работает на js. Сервер изоморфного приложения(не апи) это один маленький файлик, который по факту делает рендерТуСтринг реакта на сервере.
У нас большое реакт приложение уже больше полу года как летит и развивается, вроде полет нормальный
на ES6?
Ну вот вся изоморфностт скатилась к реакт серверному рендерингу, изначально идеи были шире
Тогда я не знаю изначальные идеи. Но наши задачи полностью покрывает
Другое дело что Редакс и Куча бойлерплейта... ((
типчики кста помогают слегка - можно диспатчить по типу, и убрать эти ужасные строкове константы
меня после кложи от питона в 3 минуты трясти начинает с его стрингами в роли ключей в словарях
а в чем вот кардинальная разница?
:customer
vs “customer”, разве что один доп символ со строками. Ну и конечно фичи что keyword/Map as a function
а тьфу, сори, перечитал - namespaced
В TypeScript (и в других языках) типчики покрывают это и не позволяют конфликтам появляться.
киворды мне проще набирать, я не замечаю факта набора, стринги - каждый раз замечаю. автокомплит работает, можно опечатки проверять, поиск по проекту. вроде и разницы нет, а по мелочи если собрать - так после кивордов от строк трясти начинает
по мелочи согласен - жалко кейворды есть тока в кложе, да руби вроде
опять же, как и с кложей/датомиком вцелом: вроде куча мелочей, а в сумме если посмотреть - тупо очень найс
кстати, есть иерархии кивордов, и их можно на спеку натянуть, аккуратненько нужно, но можно
@wavejester (кажется) в каком-то докладе упоминал. например, когда можно сделать фоллбек с более конкретного конфига на менее конкретный
(derive :шерстяной/кот :шерстяной/зверь)
(isa? :шерстяной/кот :шерстяной/зверь)
=> true
(isa? :шерстяной/свитер :шерстяной/зверь)
=> false
Я не очень понимаю эти переживания по поводу успеха кложи в целом. Видимо, после презентации kotlin на google I/O у многих переклинило и начались переживания о правильно сделанном выборе. Собственно, clojure на мой взгляд никогда не претендовал на роль нового Visual Basic/C#/Python - это такой весьма нишевой язык на котором можно достичь весьма высокого искусства ninja. Количество проектов на кложе растет, как сказал ztellman количество людей использующих кложу на работе и получающих за это зп тоже увеличивается. Какие собственно могут быть после этого проблемы? Программирование вхожит в нашу жизнь и скоро каждая домохозяйка будет уметь написать тривиальный hello-word, и не стоит переживать сделать она это на Kotlin или на Clojure. У нас есть с чем работать и чем зарабатывать на жизнь.
ну уж, про питон каждый второый слышал. Ну я переживаю да что кложа не мейнстрим, а хотелось бы чтоб все подключились к прекрасному и светлому 🙂
ты спросил почему нишевый - потому что скобочки. так люди говорят, если бы они говорили чтото другое, я бы написал об этом
"нишевый" - это ж не про уровень лени/интеллекта девов на рынке, а про область применения
ну я про скобочки когда говорю это для краткости, полная версия ппц-как-я-могу-сделать-early-return-всмысле-переменную-не-поменять-где-классики-што-это-вообще??7777111
ну т.е. кложура очень другая по сравнению с другими языками
> “обречен быть не популярным” мне грустно от этого 😞
если ты не хочешь выучить (let) и (when-not), ради возможности шарить 50% кода между вебом/сервером/айос/андроидом - мне не очень хочется тебя в комьюнити видеть, и пробираться сквозь твой контрибьюшн
это аргумент тупо той же школоты, которой с одной стороны подавай инновейшен, а с другой "сильна сложна, дайте заимпортить готовый бложек из кор библиотеки"
Я не очень понимаю в чем поинт, собственно это я и имел ввиду, что много тех, кому кложура не нужна и может быть кложуре лучше от этого
JS — тот же самый Lisp, обернутый в синтаксис Си. http://www.crockford.com/javascript/javascript.html И ведь зашел. Уверен, что не из-за синтаксиса, а из-за того, что выхода другого не было.
это то, с чего я и начал. почему плохо без нубов. большинство из них или дорастет через 3-5 лет работы с языком Ч и принесет в коммюнити какие-то свежие идеи. или не дорастет.
т.к. в голове у него каша и "programmer happiness" а еще "Миша мне нагрубил когда я сказал что скобочки уродские"
я через 5 лет programmer happiness на руби(!!!можно без скобочек!!!) начинаю только понимать что такое настоящий программер хеппинес осваивая кложу
Продаешь кложу школоте, говорят "сложнаа", продаешь кложу матерому прогеру опытом 10 лет, говорят "фу динамическая типизация"
и когда у нас на кодревью пишут "убери тут скобочки, так няшнее и вообще гайдлайн" хочется просто взять и уеть
Я не фронтендщик, но со стороны у меня возникли ощущения, что в JS мире творится нечто ужасное, т.к. количество новых фреймворков и "супер-киллер" фич появляется чуть ли не ежемесячно. наблюдается огромная фрагментация - одни знают Vue, другие агуляр, и т.д. у меня напрашивается вопрос: а не рухнет ли экосистема JS под собственной тяжестью? JS сам как runtime останется - это понятно. А как быть с людьми? Как из такой супер фрагментированной системы собирать команду? придется по крупицам ее собирать: смотреть софт скиллс и чтобы просто умел думать (программировать). потом как-то выравнивать знания, когда кого-то приняли на борт. Кложа тем и хороша - своей консервативностью и простотой. Язык clojure - deadly simple by design. То есть как читать код кложи - вопрос не стоит. Это в других языках надо каждый раз вспоминать синтаксис, чтобы знать как читать. Скобочки лиспа - идеально отражают структуру страниц и UI, а также передаваемых структур данных между бэком и фронтом. Они полные заменители xml, html, json.
как по мне, люди вне кложи экосистемы, просто не знают, что может быть иначе. что программист реально может быть счастлив в том смысле, что он думает о проблеме, а не о бойлерплейте, синтаксисте и 100500 инструментах для сборки проекта
про всякие go и прочие рантаймы очень хорошо сказал Тим Балдридж. Go как рантайм "х..ня" по сравнению с jvm. он привел простой пример когда go просто умрет, а jvm вполне себе летит. По его словам связка: JVM + 90% pure functional язык + 10% очень правильной системы работы со стейтом дают ему возможность быстро и качественно реализовывать большинстов задач. А динамика clojure позволяет число "церемоний" свести до приемлемого уровня и думать о бизнес-задаче, а не о том, как каждую вещь обозвать каким типом.
не знаю как искать историю в slack'e но если найду сюда сделаю пост. он там много убойных аргументов привел, когда неофиты набежали и просили clojure на go рантайме или на rust'e
весь этот наезд на кложуре выглядит так, когда 1клашки глянув Сканави говорят 10классникам - у вас учебник не понятный. Он не beginner friendly.
Рич вещает для тех, кто уже встретился с теми проблемами, когда пишутся большие системы и проекты. Проблема "отцов и детей" состоит в том, что то что говорит отец, сын не может понять, т.к. у него нет собственного опыта в жизни и ему не с чем соотнести сказанное.
поэтому кложа и сложна для тех у кого нет собственного опыта (новичков), для кого слово immutality ничего не значит, так вещица "одна из..."
Про Go vs JVM, если можно, подробнее. Не в плане пруфов, а в плане в чем там засада.
"Его сущность состоит в том, что программист, знающий некоторый язык («Блаб»), «думает на Блабе» — выражает решение любой задачи в средствах Блаба, а имеющиеся в более мощном языке дополнительные средства в его глазах ничего не стоят, так как он не умеет их применять. Только когда программист по каким-то внешним, дополнительным причинам изучит более мощный язык, он получит возможность смотреть на Блаб «сверху вниз» и увидит его ограниченность. "
@kshmatov я постараюсь найти в хистори. в целом он говорил, что GC у Go существенно слабее и реализация динамического языка, такого как clojure на рантайме Go приведет огромным stop the world, когда в динамике под серьезной нагрузкой будут создаваться промежуточные объекты
особенно когда в памяти несколько тысяч классов.
@mike1452 Она сложна еще и от того, что в университетах тех студентов учат мыслить в ООП. Причем на грамотность решения часто закрывают глаза. Нужно лишь показать кучу интерфейсов, сервисов, транспортных объектов.
@mike1452 я девочку ПМа норм научил месяца за 3: нахачила какую-то аппку мобильную с датомиком. Мне кажется переучиваться сложнее, чем с 0
@misha а мне сегодня девочка аналитик прислала первую спеку - clj файл со спекой по бизнес-сущностям. получаем первый опыт. первые положительные впечатления.
короче аналитик, если он аналитик, то ценность спеки понимает
при этом девочка совершенно не программист
https://www.youtube.com/watch?v=TrqGpEz1g5s - вот еще один уставший кложурист
я после тренинга начал на elm’е активно пилить - с типами и компиляцией хорошо. Много бойлерплейта, re-usable компоненты типа smart container’ов не напилишь, скорость разработки невысокая, зато если компиляется - работает и на душе спокойно
у меня от кложурискрипта сейчас похмелье - с одной стороны дикая сила под пальцами, с другой - всегда есть 100500 способов сделать что-то “красивей” и “изящней” и ответственность за выбор лежит на мне и best practice’ов еще нету и никто не знает. С elm’ом сел как пассажир в поезд, за тебя все важные решения приняли, сиди и клепай
хотел еще сказать - в мир кложы очень много народа из жавы и жс приходят и для многих нас это первый ФП язык, http://lurkmore.net/Синдром_утёнка все дела, есть другие ФП языки еще 🙂
А вот тут писали, мол язык перестал разиваться, новых фич не хватает. А если развитие кложи приостановится, а другие языки постепенно, развиваясь и вбирая лучшее будут сокращать разрыв по эффективности, то перед новым разработчиком станет вопрос: зачем учить Clojure, если есть другой язык, чуть менее эффективный, но зато который в перспективе, возможно, станет мейнстримом?
Тем более что разрыв сокращается, и у этого языка есть другие преимущества - например, он быстрее и со статической типизацией
итого: наивно полагать, что если вложиться в одну кложу можно на ней счастливо уйти в закат до конца карьеры. Пока она есть как хороший инструмент - надо пользовать, если появляются альтернативы которые хорошо набирают обороты - надо периодически в них вкладываться и диверсифицировать опыт и навыки, а не страдать в твитторах на тему “кажится кложа умирает, что-делать-что-делать”
кложа тоже "в перспективе станет мейнстримом" это всё тот же "чё-то скучно стало" аргумент, только сбоку
нужно честно для себя разделять юзкейсы "решить бизнесс проблему", "побороть скуку", "найти работу", "хочу быть пассажиром"
к чувакам "меня в мухосранске писать кложу никто не возьмет, а уезжать я не собираюсь" вопросов совершенно нет
@misha что делать с инвалидами типа меня, у которых несколько десятков тысяч строк кожуры в продакшене и начинает вылазить боком динамическая типизация, NPE, проблема не то что нанять, прособеседовать адекватного бойца который готов в это влазить? В биореактор?
@misha про первых чуваков обидно было😀 Ну на самом деле хочется писать на самом лучшем языке всегда)
@kishanov https://habrahabr.ru/post/259841/ в самом начале
@ilevd я о тех, кто жалуется на недостаток инновейшена, а на самом деле просто хотят работу найти.
ситуация жеж такая же, как была бы с питоном, только там скорее было бы кода на порядок больше, да еще и жс/жсх вместо кложаскрипта
либо непросто в проектировании, и ок в имплементации, либо сначала ок, а потом сложнее и сложнее
@misha спекой покрываем, но боли сильно не убавляется: спекой обложили на edge (где API данные дает), внутри не было времени, а через 4 месяца рефакторить и вспоминать какие мапы в какие функцие входят и из каких выходят - то еще развлечение
нужно много дисциплины, а если все обкладывать по дисциплине - уж лучше тогда статическую типизацию, оно хоть в compile-time’е провериться
поддержу слегка - кложура и прочие реплы очень офигенно для MVP и чтоб побыстрому. Но дальше определенного лимита скейлить ее адЪ
ну так а если все по канонам делать - доки/спеки/тесты то чем это лучше хаскеля? тогда уж я поцомпеляю и буду жить спокойно
ну и раз сходив налево (элм, пуре, хаскель) - кложура как-то блекнет
мы сейчас дошли до более или менее стабильной версии продукта (когда фичи новые каждый день не появляются) и спасибо кложе за скорость, с которой мы до этой стадии дошли. Сейчас я начинаю переписывать куски на elm’е, потому что не хочу про них вспоминать через год
есть кста, я даже запускал RN один проект, омг ужос, зато тайп сейфти 😄
ну дак и напиши на хаскеле с элмом, ясен пень, 100% юзкейсов не покроет язык чтобы всё чётенько было
мы ща с другом на лямбдаконфе, тут и элмисты, и хаскелисты и пурескриписты - я начинаю понимать их философию 🙂
только претензий "на кложе сложно тыщи строк мейнтейнить" я слышу, а "на хаскеле оберток для реакта нет, и медленнее" - не слышу
ну и я про то же - кожура для нас стала удобным ПХП - слабал, показал, может даже погонял в продакшене, но mission critical - надо переписать 🙂
на реакте свет клином не сошелся, да и после нескольких лет использования у меня к нему есть ряд претензий. многие уживаются с virtual-dom’ом хорошо
ну да, делаем копипасты и не стесняемся. мне не стыдно свой код показывать, даже если он говенный но работает в продакшене
ну хаскель кста всеж это другая крайность - как тут писали пока queryString распарсил уже PhD заработал
дело же не в стыде, слушай, что ты так на свой счет всё воспринимаешь. это одна из компонент "сложно поддерживать"
счас выберу только какой функтор взять для этого 🙂
меня больше мучают другие глобальные вопросы: как организовать раутинг, дата фетчинг, что хранить в сессии, как делать формы
идеального ЯП все равно нету - скала ужос, кложа помирает, хаскель фиг файл прочитаешь, го мап/фильтер не могет и прочее
в кожуре нету красивого задокументированного решения как это делать, каждый может что-то слабать
@kishanov ограничение "за 2 часа" - это не проблемя языка, а твои обстоятельства. как, что и на каком языке ты напишешь - зависит от твоего опыта и навыков.
а когда слабал и пытаешься нанять нового человека - потом сам же страдаешь, что нету экосистемы решающей архитектурные вопросы построения приложения
опять же, никто не заставляет 100% всего и всегда писать на кложе. снова таки: весь срач начался с того, что у чуваков претензии именно к кор тиму, ричу и языку, а не потому что кому-то в какой-то ситуации с растом/жавой лучше, чем с кложей
ну у тебя ситуация: "мы ломимся, надо зарасывать проект трупами, на кложе трупов не найти", вполне себе ситуация
любой язык и любая платформа - набор компромиссов. если слепо бегать с кожурой и игнорировать недостатки (а еще хуже - огрится на них как этих твитторах) - можно озилотиться
было бы у вас опыта больше с кложей и/или системой побольше - может и затащили бы, а может и нет. думаю когнитектовцы не пишут сайты визитки
я почитал все эти тредики и понял, что в кожурином комьюнити много зилотовом у которых при любых оскорблениях кложи начинает бомбить
ты просто так накинул что если бы было достаточно опыта. у нас нормальный опыт в программировании у команды, но тот факт что с кожурой пришлось повозиться потому что на передовой и очеидно наврядли сразу получится - это показатель доступности технологии
я просто хорошая выборка из “среднего программиста” который несколько лет потащил, шарю экспириенс
зилотов хватает, да. меня, например, агрят громкие заявления типа "скучно, нет инновейшена, нет всего готовенького"
я на кложе до этого писал, потом 3 года переписываю один и тот же проект на кложурскрипте
не без этого, но, мне кажется, половины эквивалентов жс инструментов просто не нужно для кложи
Меня мучает вопрос. Если согласно парадоксу Блаба, человек не знающий более мощного языка не может осознать недоразвитость своего языка по отношению к первому, а Платов, писал на Clojure и не выбрал его, то не находимся ли мы на позиции людей пишущих на Блабе, по отношению к языку, выбранному Платовым - Nim-у?
пока не проверишь - не узнаешь. тут же пердак печёт не потому что кложа - самое чудесное, а потому что чуваки путают проблемы языка/экосистемы со своими, и делают громкие далекоидущие выводы на конференциях потом
дак там шиза же изначально была:
As of Clojure 1.9-alpha15, the new qualifed-keyword?, qualified-symbol?, and qualified-ident? functions can return true, nil, or false depending on the input passed to them, e.g.:
еше по началу говорили что все нормально так и должно бытьтогда я помню и начались первые разговоры что все пропало, надо валить
(namespace :aaa/aa) ;; >> "aaa"
а хотя не
а ну да
а вот имплементили бы они на хаскеле кложу - так бы не писали! ::troll:
@misha Мы пока не переписываем, а экспериментируем на внутреннем проекте с elm'ом. Тоже много компромиссов
я прям представляю, как Рич глаза закатывая Миллеру говорит "да ладно, бль, закоммить уже, а то заут"
@kishanov а почему elm а не хайповый TypeScript? elm от популярности еще более далек чем кложа да и проблем там наслышан побольше чем в cljs особенно в js интероп
@seryh после прочтения http://mutanatum.com/posts/2017-01-12-Browser-FP-Head-to-Head.html я поигрался с тем что там описано, по философии больше всего понравился elm
I’m not even going to consider a system valid without referential transparency and IO managed in some way. So yes, all flavors of Lisp are off the table as well.
не понялсобсно я только закончили класс который этот же чувак вел (http://lambdaconf.us/training/lcusc/mastering-elm.html) и потом послушали purescript’еров, еще больше закрепился в выборе elm’а. На него жалуются в основном кондовые хаскелисты что elm им руки связывает, но экосистема сейчас неплохая и независимая. туториалы, поддержка иде и проч
конечно есть, поэтому пока только стабильные части которые можно заменить. Кожуру я оставлю и на ней будет продолжаться основной девелопмент пока elm себя как-нибудь не покажет
Я его пробовал, кажется в 14 году, потом вышла новая версия, пришлось немного переделывать. Потом, кажется, еще раз. И компилятор стал дотошным. Пришлось функции переделывать чтобы охватывали все варианты, хотя я перед вызом функции сам проверял аргументы. Больше переписывать не стал, решил что как 1.0.0 выйдет, так и видно будет.
Ага, осталось еще структуры данных в коде эльма представить и заново лисп изобретут
Потом увидят что библиотек под эльм сильно меньше чем под js и java и они откроют кложу. Тот же лисп + все библиотеки этих рантаймов
И вспомнят экклезиаста, что нет ничего нового под солнцем
Ну вот, left the group
100500 просто функций или методов других протоколов?
По мне норм
css уже тоже с типами https://github.com/typestyle/typestyle
@fmnoise методы протокола - функции просто: https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/extend
Method maps are maps of the keyword-ized method names to ordinary fns
(хоть этот пример и для типов)рядом. либо некоторые делают impl
неймспейс, в котором все такие "личные" потроха складывают, чтобы в автокомплитах не маячили
А потом на этом Shen написать эмулятор x86, в нём запустить Linux, в ней JVM, в ней Clojure, а в ней опять Shen.
ну это я к тому что можно иметь типизированый лисп