Fork me on GitHub
#clojure-russia
<
2017-05-26
>
seryh05:05:08

кстате в google trends, Clojure заметно коррелирует с Erlang по графику - https://trends.google.ru/trends/explore?q=%2Fm%2F03yb8hb,%2Fm%2F02mm3 что то одеяло функциональщины на себя перетянуло, Kotlin вот например хайпанул.

seryh07:05:54

@artemyarulin мало-тиражируемая фича кложи, изоморфность же. единственный язык наверное, где пишешь фронт и бек в действительно похожем окружении когда стресс от переключения контекста минимален, чистые функции действительно хорошо шарятся. На ноде одно время хайповали эту тему, изоморфные фреймворки всякие напоявлялись но не взлетело, ибо бек и фронт на js получается в корне разный по набору либ, архитектуре, да и вообще нода на беке фу.

nicola07:05:34

@artemyarulin стокгольмский синдром?

artemyarulin07:05:32

да ну? изоморфность вполне так взлетела в ЖС мире

artemyarulin07:05:18

хотя на жс чуть шире - можно на беке юзать ноду, а можно жвм да, это круто

y.khmelevskii07:05:05

Изоморфность вполне прилично работает на js. Сервер изоморфного приложения(не апи) это один маленький файлик, который по факту делает рендерТуСтринг реакта на сервере.

y.khmelevskii07:05:21

У нас большое реакт приложение уже больше полу года как летит и развивается, вроде полет нормальный

seryh07:05:03

Ну вот вся изоморфностт скатилась к реакт серверному рендерингу, изначально идеи были шире

y.khmelevskii07:05:36

Тогда я не знаю изначальные идеи. Но наши задачи полностью покрывает

y.khmelevskii07:05:03

Другое дело что Редакс и Куча бойлерплейта... ((

artemyarulin07:05:15

типчики кста помогают слегка - можно диспатчить по типу, и убрать эти ужасные строкове константы

misha07:05:26

кстати о строковых константах: киллер фича кложи - неймспейсед киворды

misha07:05:13

меня после кложи от питона в 3 минуты трясти начинает с его стрингами в роли ключей в словарях

misha07:05:34

запятые еще, с остальной пунктуацией

artemyarulin08:05:47

а в чем вот кардинальная разница?

artemyarulin08:05:37

:customer vs “customer”, разве что один доп символ со строками. Ну и конечно фичи что keyword/Map as a function

artemyarulin08:05:49

а тьфу, сори, перечитал - namespaced

artemyarulin08:05:53

В TypeScript (и в других языках) типчики покрывают это и не позволяют конфликтам появляться.

misha08:05:54

киворды мне проще набирать, я не замечаю факта набора, стринги - каждый раз замечаю. автокомплит работает, можно опечатки проверять, поиск по проекту. вроде и разницы нет, а по мелочи если собрать - так после кивордов от строк трясти начинает

misha08:05:28

да даже не неймспейсед. неймспейсы - это бонус жирный

misha08:05:43

и да, киворд как функция - ваще имба.

artemyarulin08:05:53

по мелочи согласен - жалко кейворды есть тока в кложе, да руби вроде

misha08:05:23

опять же, как и с кложей/датомиком вцелом: вроде куча мелочей, а в сумме если посмотреть - тупо очень найс

misha08:05:04

кстати, есть иерархии кивордов, и их можно на спеку натянуть, аккуратненько нужно, но можно

misha08:05:02

@wavejester (кажется) в каком-то докладе упоминал. например, когда можно сделать фоллбек с более конкретного конфига на менее конкретный

misha08:05:13

(derive :шерстяной/кот :шерстяной/зверь)

(isa? :шерстяной/кот :шерстяной/зверь)
=> true
(isa? :шерстяной/свитер :шерстяной/зверь)
=> false

rmuslimov08:05:20

Я не очень понимаю эти переживания по поводу успеха кложи в целом. Видимо, после презентации kotlin на google I/O у многих переклинило и начались переживания о правильно сделанном выборе. Собственно, clojure на мой взгляд никогда не претендовал на роль нового Visual Basic/C#/Python - это такой весьма нишевой язык на котором можно достичь весьма высокого искусства ninja. Количество проектов на кложе растет, как сказал ztellman количество людей использующих кложу на работе и получающих за это зп тоже увеличивается. Какие собственно могут быть после этого проблемы? Программирование вхожит в нашу жизнь и скоро каждая домохозяйка будет уметь написать тривиальный hello-word, и не стоит переживать сделать она это на Kotlin или на Clojure. У нас есть с чем работать и чем зарабатывать на жизнь.

misha08:05:35

ну какой же нишевый? такой же нишевый, как и питон

artemyarulin08:05:43

ну уж, про питон каждый второый слышал. Ну я переживаю да что кложа не мейнстрим, а хотелось бы чтоб все подключились к прекрасному и светлому 🙂

rmuslimov08:05:54

у нас из команды осилили кложу на текущий день 2 из 10. поэтому нишевый

rmuslimov08:05:04

потому что, скобочки и все дела

misha08:05:18

кто-то верно заметил "кложа лучше себя в 10 лет чувствует, чем питон и руби в свои 10"

misha08:05:51

да сколько можно про скобочки, это ж дикий аргумент совершенно

misha08:05:13

я б увольнял за такие аргументы kappa

rmuslimov08:05:40

ты спросил почему нишевый - потому что скобочки. так люди говорят, если бы они говорили чтото другое, я бы написал об этом

misha08:05:47

"нишевый" - это ж не про уровень лени/интеллекта девов на рынке, а про область применения

misha08:05:02

у кложи область применения сильно шире того же питона

misha08:05:26

андроид/айос/веб/сервер

rmuslimov08:05:33

ок меняю слово нишевый - “обречен быть не популярным”

misha08:05:41

у питона сервер и всё, пожалуй

artemyarulin08:05:51

ну я про скобочки когда говорю это для краткости, полная версия ппц-как-я-могу-сделать-early-return-всмысле-переменную-не-поменять-где-классики-што-это-вообще??7777111

artemyarulin08:05:15

ну т.е. кложура очень другая по сравнению с другими языками

artemyarulin08:05:47

> “обречен быть не популярным” мне грустно от этого 😞

misha08:05:04

ну опять же: другая, чтобы кучу проблем решить, с которыми все живут в других языках

misha08:05:44

если ты не хочешь выучить (let) и (when-not), ради возможности шарить 50% кода между вебом/сервером/айос/андроидом - мне не очень хочется тебя в комьюнити видеть, и пробираться сквозь твой контрибьюшн

misha08:05:58

это аргумент тупо той же школоты, которой с одной стороны подавай инновейшен, а с другой "сильна сложна, дайте заимпортить готовый бложек из кор библиотеки"

rmuslimov08:05:02

Я не очень понимаю в чем поинт, собственно это я и имел ввиду, что много тех, кому кложура не нужна и может быть кложуре лучше от этого

rmuslimov08:05:49

У нас есть инструмент который дает нам много возможностей и это хорошо

vganshin08:05:26

JS — тот же самый Lisp, обернутый в синтаксис Си. http://www.crockford.com/javascript/javascript.html И ведь зашел. Уверен, что не из-за синтаксиса, а из-за того, что выхода другого не было.

fmnoise09:05:15

это то, с чего я и начал. почему плохо без нубов. большинство из них или дорастет через 3-5 лет работы с языком Ч и принесет в коммюнити какие-то свежие идеи. или не дорастет.

fmnoise09:05:54

сферический нуб в вакууме скорее вреден, чем полезен

fmnoise09:05:15

т.к. в голове у него каша и "programmer happiness" а еще "Миша мне нагрубил когда я сказал что скобочки уродские"

fmnoise09:05:54

я через 5 лет programmer happiness на руби(!!!можно без скобочек!!!) начинаю только понимать что такое настоящий программер хеппинес осваивая кложу

rebel09:05:59

Может я странный, но меня в кложу (из руби) привлекли скобочки и изоморфность 🙂

seryh09:05:27

Продаешь кложу школоте, говорят "сложнаа", продаешь кложу матерому прогеру опытом 10 лет, говорят "фу динамическая типизация"

fmnoise09:05:55

и когда у нас на кодревью пишут "убери тут скобочки, так няшнее и вообще гайдлайн" хочется просто взять и уеть

fmnoise10:05:28

по динамической типизации дело вкуса

fmnoise10:05:18

я вот вначале скалу осваивал, не зашло. все как-то слишком джава

fmnoise10:05:30

а кложа прям отлично заходит

misha10:05:39

за "фу, скобочки" - ремня kappa

fmnoise11:05:15

@misha закроют за нанесение особо тяжких

fmnoise11:05:38

придется как ит.высер вещать из автозака

rmuslimov11:05:52

ну тогда зеленкой. так можно. инфа 100%

mike_ananev11:05:43

Я не фронтендщик, но со стороны у меня возникли ощущения, что в JS мире творится нечто ужасное, т.к. количество новых фреймворков и "супер-киллер" фич появляется чуть ли не ежемесячно. наблюдается огромная фрагментация - одни знают Vue, другие агуляр, и т.д. у меня напрашивается вопрос: а не рухнет ли экосистема JS под собственной тяжестью? JS сам как runtime останется - это понятно. А как быть с людьми? Как из такой супер фрагментированной системы собирать команду? придется по крупицам ее собирать: смотреть софт скиллс и чтобы просто умел думать (программировать). потом как-то выравнивать знания, когда кого-то приняли на борт. Кложа тем и хороша - своей консервативностью и простотой. Язык clojure - deadly simple by design. То есть как читать код кложи - вопрос не стоит. Это в других языках надо каждый раз вспоминать синтаксис, чтобы знать как читать. Скобочки лиспа - идеально отражают структуру страниц и UI, а также передаваемых структур данных между бэком и фронтом. Они полные заменители xml, html, json.

mike_ananev11:05:32

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

mike_ananev11:05:07

про всякие go и прочие рантаймы очень хорошо сказал Тим Балдридж. Go как рантайм "х..ня" по сравнению с jvm. он привел простой пример когда go просто умрет, а jvm вполне себе летит. По его словам связка: JVM + 90% pure functional язык + 10% очень правильной системы работы со стейтом дают ему возможность быстро и качественно реализовывать большинстов задач. А динамика clojure позволяет число "церемоний" свести до приемлемого уровня и думать о бизнес-задаче, а не о том, как каждую вещь обозвать каким типом.

mike_ananev11:05:25

не знаю как искать историю в slack'e но если найду сюда сделаю пост. он там много убойных аргументов привел, когда неофиты набежали и просили clojure на go рантайме или на rust'e

mike_ananev11:05:17

весь этот наезд на кложуре выглядит так, когда 1клашки глянув Сканави говорят 10классникам - у вас учебник не понятный. Он не beginner friendly.

mike_ananev11:05:59

Рич вещает для тех, кто уже встретился с теми проблемами, когда пишутся большие системы и проекты. Проблема "отцов и детей" состоит в том, что то что говорит отец, сын не может понять, т.к. у него нет собственного опыта в жизни и ему не с чем соотнести сказанное.

mike_ananev11:05:26

поэтому кложа и сложна для тех у кого нет собственного опыта (новичков), для кого слово immutality ничего не значит, так вещица "одна из..."

ilevd11:05:26

Это же это, парадокс Блаба

kshmatov11:05:29

Про Go vs JVM, если можно, подробнее. Не в плане пруфов, а в плане в чем там засада.

ilevd11:05:51

"Его сущность состоит в том, что программист, знающий некоторый язык («Блаб»), «думает на Блабе» — выражает решение любой задачи в средствах Блаба, а имеющиеся в более мощном языке дополнительные средства в его глазах ничего не стоят, так как он не умеет их применять. Только когда программист по каким-то внешним, дополнительным причинам изучит более мощный язык, он получит возможность смотреть на Блаб «сверху вниз» и увидит его ограниченность. "

mike_ananev12:05:49

@kshmatov я постараюсь найти в хистори. в целом он говорил, что GC у Go существенно слабее и реализация динамического языка, такого как clojure на рантайме Go приведет огромным stop the world, когда в динамике под серьезной нагрузкой будут создаваться промежуточные объекты

mike_ananev12:05:19

особенно когда в памяти несколько тысяч классов.

kshmatov12:05:57

Ага, идею понял.

vganshin12:05:10

@mike1452 Она сложна еще и от того, что в университетах тех студентов учат мыслить в ООП. Причем на грамотность решения часто закрывают глаза. Нужно лишь показать кучу интерфейсов, сервисов, транспортных объектов.

fmnoise12:05:56

ага, учат люди 3 столпа ооп

fmnoise12:05:07

а потом "prefer composition"

fmnoise12:05:18

инкапсуляция плохо

fmnoise12:05:42

и остается один полиморфизм, который к биологии имеет больше отношения чем к ооп

fmnoise12:05:36

вот реально если говорить про ооп - то это инкапсуляция

misha12:05:56

@mike1452 я девочку ПМа норм научил месяца за 3: нахачила какую-то аппку мобильную с датомиком. Мне кажется переучиваться сложнее, чем с 0

mike_ananev12:05:30

@misha а мне сегодня девочка аналитик прислала первую спеку - clj файл со спекой по бизнес-сущностям. получаем первый опыт. первые положительные впечатления.

mike_ananev12:05:56

короче аналитик, если он аналитик, то ценность спеки понимает

mike_ananev12:05:06

при этом девочка совершенно не программист

fmnoise12:05:16

@misha если мозг не погнут, то наверное да, легко

misha12:05:00

Скорее "легче". Девелопить же непросто всё-таки

kishanov13:05:59

https://www.youtube.com/watch?v=TrqGpEz1g5s - вот еще один уставший кложурист

kishanov13:05:30

я после тренинга начал на elm’е активно пилить - с типами и компиляцией хорошо. Много бойлерплейта, re-usable компоненты типа smart container’ов не напилишь, скорость разработки невысокая, зато если компиляется - работает и на душе спокойно

kishanov13:05:31

у меня от кложурискрипта сейчас похмелье - с одной стороны дикая сила под пальцами, с другой - всегда есть 100500 способов сделать что-то “красивей” и “изящней” и ответственность за выбор лежит на мне и best practice’ов еще нету и никто не знает. С elm’ом сел как пассажир в поезд, за тебя все важные решения приняли, сиди и клепай

kishanov13:05:05

кложура - клевый пластилин, но иногда полезно Lego по инструкции пособирать 🙂

artemyarulin13:05:37

хотел еще сказать - в мир кложы очень много народа из жавы и жс приходят и для многих нас это первый ФП язык, http://lurkmore.net/Синдром_утёнка все дела, есть другие ФП языки еще 🙂

ilevd13:05:53

Первый ФП на котором можно нормально писать

ilevd13:05:46

А вот тут писали, мол язык перестал разиваться, новых фич не хватает. А если развитие кложи приостановится, а другие языки постепенно, развиваясь и вбирая лучшее будут сокращать разрыв по эффективности, то перед новым разработчиком станет вопрос: зачем учить Clojure, если есть другой язык, чуть менее эффективный, но зато который в перспективе, возможно, станет мейнстримом?

ilevd13:05:05

Тем более что разрыв сокращается, и у этого языка есть другие преимущества - например, он быстрее и со статической типизацией

kishanov13:05:53

итого: наивно полагать, что если вложиться в одну кложу можно на ней счастливо уйти в закат до конца карьеры. Пока она есть как хороший инструмент - надо пользовать, если появляются альтернативы которые хорошо набирают обороты - надо периодически в них вкладываться и диверсифицировать опыт и навыки, а не страдать в твитторах на тему “кажится кложа умирает, что-делать-что-делать”

misha14:05:33

кложа тоже "в перспективе станет мейнстримом" kappa это всё тот же "чё-то скучно стало" аргумент, только сбоку

misha14:05:15

нужно честно для себя разделять юзкейсы "решить бизнесс проблему", "побороть скуку", "найти работу", "хочу быть пассажиром"

ilevd14:05:58

И учить 4 языка..)

misha14:05:40

к чувакам "меня в мухосранске писать кложу никто не возьмет, а уезжать я не собираюсь" вопросов совершенно нет

misha14:05:31

а чувакам, которые публично "шота ченджлог у кложи 1.9 короткий" - ремня

0xk175un314:05:20

а к тем кто живет в мухосранске и соберается уезжать?:)

kishanov14:05:59

@misha что делать с инвалидами типа меня, у которых несколько десятков тысяч строк кожуры в продакшене и начинает вылазить боком динамическая типизация, NPE, проблема не то что нанять, прособеседовать адекватного бойца который готов в это влазить? В биореактор?

ilevd14:05:35

@misha про первых чуваков обидно было😀 Ну на самом деле хочется писать на самом лучшем языке всегда)

ilevd14:05:04

@kishanov значит прав был Платов в своей статье где упоминал про Clojure?

kishanov14:05:24

что за статья?

misha14:05:26

@ilevd я о тех, кто жалуется на недостаток инновейшена, а на самом деле просто хотят работу найти.

misha14:05:07

@kishanov ну спекой покрывать, наверное. можно на жаву и стримы перехачить

misha14:05:45

ситуация жеж такая же, как была бы с питоном, только там скорее было бы кода на порядок больше, да еще и жс/жсх вместо кложаскрипта

misha14:05:57

большие системы - это всегда непросто

kishanov14:05:09

@ilevd а я соглашусь с автором статьи, до этого не читал но резонирует

misha14:05:34

либо непросто в проектировании, и ок в имплементации, либо сначала ок, а потом сложнее и сложнее

kishanov14:05:27

@misha спекой покрываем, но боли сильно не убавляется: спекой обложили на edge (где API данные дает), внутри не было времени, а через 4 месяца рефакторить и вспоминать какие мапы в какие функцие входят и из каких выходят - то еще развлечение

kishanov14:05:11

нужно много дисциплины, а если все обкладывать по дисциплине - уж лучше тогда статическую типизацию, оно хоть в compile-time’е провериться

misha14:05:13

ну слушай, это уже ваше решение было "торопимся - нафиг доки/спеки/тесты"

artemyarulin14:05:57

поддержу слегка - кложура и прочие реплы очень офигенно для MVP и чтоб побыстрому. Но дальше определенного лимита скейлить ее адЪ

kishanov14:05:04

ну так а если все по канонам делать - доки/спеки/тесты то чем это лучше хаскеля? тогда уж я поцомпеляю и буду жить спокойно

misha14:05:41

на хаскеле реакт оберток нет opieop

artemyarulin14:05:47

ну и раз сходив налево (элм, пуре, хаскель) - кложура как-то блекнет

kishanov14:05:08

мы сейчас дошли до более или менее стабильной версии продукта (когда фичи новые каждый день не появляются) и спасибо кложе за скорость, с которой мы до этой стадии дошли. Сейчас я начинаю переписывать куски на elm’е, потому что не хочу про них вспоминать через год

artemyarulin14:05:13

есть кста, я даже запускал RN один проект, омг ужос, зато тайп сейфти 😄

misha14:05:43

ну дак и напиши на хаскеле с элмом, ясен пень, 100% юзкейсов не покроет язык чтобы всё чётенько было

kishanov14:05:48

мы ща с другом на лямбдаконфе, тут и элмисты, и хаскелисты и пурескриписты - я начинаю понимать их философию 🙂

misha14:05:27

только претензий "на кложе сложно тыщи строк мейнтейнить" я слышу, а "на хаскеле оберток для реакта нет, и медленнее" - не слышу

kishanov14:05:38

ну и я про то же - кожура для нас стала удобным ПХП - слабал, показал, может даже погонял в продакшене, но mission critical - надо переписать 🙂

kishanov14:05:21

на реакте свет клином не сошелся, да и после нескольких лет использования у меня к нему есть ряд претензий. многие уживаются с virtual-dom’ом хорошо

misha14:05:30

полноты картинки ради, напомню тебе про копипасту в 23 строки в вашем юай коде :)

misha14:05:18

на сколько это показатель/непоказатель - тебе виднее

kishanov14:05:48

ну да, делаем копипасты и не стесняемся. мне не стыдно свой код показывать, даже если он говенный но работает в продакшене

artemyarulin14:05:50

ну хаскель кста всеж это другая крайность - как тут писали пока queryString распарсил уже PhD заработал

kishanov14:05:18

ты иди сам напиши красивую обертку за 2 часа вокруг multiselect search dropdown

misha14:05:44

дело же не в стыде, слушай, что ты так на свой счет всё воспринимаешь. это одна из компонент "сложно поддерживать"

artemyarulin14:05:46

счас выберу только какой функтор взять для этого 🙂

kishanov14:05:36

меня больше мучают другие глобальные вопросы: как организовать раутинг, дата фетчинг, что хранить в сессии, как делать формы

artemyarulin14:05:36

идеального ЯП все равно нету - скала ужос, кложа помирает, хаскель фиг файл прочитаешь, го мап/фильтер не могет и прочее

kishanov14:05:56

в кожуре нету красивого задокументированного решения как это делать, каждый может что-то слабать

misha14:05:22

@kishanov ограничение "за 2 часа" - это не проблемя языка, а твои обстоятельства. как, что и на каком языке ты напишешь - зависит от твоего опыта и навыков.

kishanov14:05:26

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

misha14:05:53

опять же, никто не заставляет 100% всего и всегда писать на кложе. снова таки: весь срач начался с того, что у чуваков претензии именно к кор тиму, ричу и языку, а не потому что кому-то в какой-то ситуации с растом/жавой лучше, чем с кложей

kishanov14:05:41

я просто хотел добавить энтропии в этот тред, зачем же ты так все по полочкам

misha14:05:51

ну у тебя ситуация: "мы ломимся, надо зарасывать проект трупами, на кложе трупов не найти", вполне себе ситуация

kishanov14:05:04

любой язык и любая платформа - набор компромиссов. если слепо бегать с кожурой и игнорировать недостатки (а еще хуже - огрится на них как этих твитторах) - можно озилотиться

misha14:05:38

было бы у вас опыта больше с кложей и/или системой побольше - может и затащили бы, а может и нет. думаю когнитектовцы не пишут сайты визитки

misha14:05:05

личный уровень - тоже часть ситуации, который влияет на выбор наилучшего решения

kishanov14:05:11

я почитал все эти тредики и понял, что в кожурином комьюнити много зилотовом у которых при любых оскорблениях кложи начинает бомбить

kishanov14:05:31

ладно, @misha, ты прав, пойду в биореактор со своим личным уровнем 🙂

misha14:05:53

ну снова ты на личный счет всё принял )

kishanov14:05:09

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

kishanov14:05:31

я просто хорошая выборка из “среднего программиста” который несколько лет потащил, шарю экспириенс

misha14:05:55

зилотов хватает, да. меня, например, агрят громкие заявления типа "скучно, нет инновейшена, нет всего готовенького"

kishanov14:05:59

если “был бы опыт” - можно и на голом жаваскрипте с си на бэкэнде затащить

misha14:05:14

ну вы же на кложуре с этого проекта начали?

misha14:05:33

или "это первый огромный проект на кложуре для команды"?

kishanov14:05:41

я на кложе до этого писал, потом 3 года переписываю один и тот же проект на кложурскрипте

kishanov14:05:56

разница большая в экосистеме - все сырое и держится на энтузиазме

misha14:05:40

не без этого, но, мне кажется, половины эквивалентов жс инструментов просто не нужно для кложи

ilevd14:05:48

Меня мучает вопрос. Если согласно парадоксу Блаба, человек не знающий более мощного языка не может осознать недоразвитость своего языка по отношению к первому, а Платов, писал на Clojure и не выбрал его, то не находимся ли мы на позиции людей пишущих на Блабе, по отношению к языку, выбранному Платовым - Nim-у?

misha14:05:05

пока не проверишь - не узнаешь. тут же пердак печёт не потому что кложа - самое чудесное, а потому что чуваки путают проблемы языка/экосистемы со своими, и делают громкие далекоидущие выводы на конференциях потом

misha14:05:38

@kishanov на что в итоге переписываете? :)

misha14:05:50

а говорите "нет инновейшена" kappa

artemyarulin14:05:54

дак там шиза же изначально была:

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.:
еше по началу говорили что все нормально так и должно быть

artemyarulin14:05:10

тогда я помню и начались первые разговоры что все пропало, надо валить

ilevd14:05:21

(and (ident? x) (namespace x) true)

ilevd14:05:28

А true зачем?

artemyarulin14:05:21

(namespace :aaa/aa) ;; >> "aaa"

artemyarulin14:05:46

а хотя не

ilevd15:05:02

Ну да, чтобы походу true возвращало, вместо значения какого-либо

ilevd15:05:10

Но там же в boolean теперь

artemyarulin15:05:58

а вот имплементили бы они на хаскеле кложу - так бы не писали! ::troll:

ilevd15:05:08

Вот тебе и инновации!

kishanov15:05:29

@misha Мы пока не переписываем, а экспериментируем на внутреннем проекте с elm'ом. Тоже много компромиссов

misha15:05:11

я прям представляю, как Рич глаза закатывая Миллеру говорит "да ладно, бль, закоммить уже, а то заут"

misha15:05:02

@kishanov тогда держи чятик™ в курсе

kishanov15:05:01

не буду, вы траллите а я впечатлительный, спать потом не буду

seryh15:05:05

@kishanov а почему elm а не хайповый TypeScript? elm от популярности еще более далек чем кложа да и проблем там наслышан побольше чем в cljs особенно в js интероп

kishanov15:05:38

@seryh после прочтения http://mutanatum.com/posts/2017-01-12-Browser-FP-Head-to-Head.html я поигрался с тем что там описано, по философии больше всего понравился elm

misha15:05:10

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.
не понял

kishanov15:05:23

собсно я только закончили класс который этот же чувак вел (http://lambdaconf.us/training/lcusc/mastering-elm.html) и потом послушали purescript’еров, еще больше закрепился в выборе elm’а. На него жалуются в основном кондовые хаскелисты что elm им руки связывает, но экосистема сейчас неплохая и независимая. туториалы, поддержка иде и проч

ilevd15:05:49

А с Elm-ом нет вероятности переписывать снова на Elm?

ilevd15:05:15

В том смысле что он же еще меняется, нет?

kishanov15:05:56

конечно есть, поэтому пока только стабильные части которые можно заменить. Кожуру я оставлю и на ней будет продолжаться основной девелопмент пока elm себя как-нибудь не покажет

ilevd15:05:49

Я его пробовал, кажется в 14 году, потом вышла новая версия, пришлось немного переделывать. Потом, кажется, еще раз. И компилятор стал дотошным. Пришлось функции переделывать чтобы охватывали все варианты, хотя я перед вызом функции сам проверял аргументы. Больше переписывать не стал, решил что как 1.0.0 выйдет, так и видно будет.

kishanov15:05:36

такая же фигня в 2015. сейчас решил заново глянуть, вроде получшело

fmnoise16:05:40

main =
  text (toString (increment (add1 40)))

fmnoise16:05:50

на лисп похоже

fmnoise16:05:19

этот ваш эльм

mike_ananev16:05:30

Ага, осталось еще структуры данных в коде эльма представить и заново лисп изобретут

fmnoise16:05:52

хотя можно и в рубях так писать

mike_ananev16:05:50

Потом увидят что библиотек под эльм сильно меньше чем под js и java и они откроют кложу. Тот же лисп + все библиотеки этих рантаймов

mike_ananev16:05:50

И вспомнят экклезиаста, что нет ничего нового под солнцем

kishanov17:05:33

такие вы тут все зазнайки, ей богу

mike_ananev17:05:39

Ну вот, left the group

fmnoise17:05:49

кому тут нубов не хватало

fmnoise17:05:55

расскажите такую весчь

fmnoise17:05:01

есть у меня протокол

fmnoise17:05:08

в нем метод

fmnoise17:05:22

в котором я юзаю 100500 мелких методов

fmnoise17:05:45

которые типа приватные

fmnoise17:05:37

это норм, что они просто в неймспейсе будут?

mike_ananev17:05:51

100500 просто функций или методов других протоколов?

fmnoise17:05:45

вспомогательный хлам для одного паблик метода

mike_ananev17:05:56

По мне норм

fmnoise17:05:05

я просто стараюсь чтобы метод был строк 5-7

fmnoise17:05:07

не больше

fmnoise17:05:23

типа пусть их будет 100500 но мелких

fmnoise17:05:57

чем 2-3 простыни

fmnoise17:05:56

css уже тоже с типами https://github.com/typestyle/typestyle

fmnoise17:05:21

как там говорил любитель герцеговины флор

fmnoise17:05:35

жить стало лучше, жить стало веселей

misha18:05:08

@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
(хоть этот пример и для типов)

fmnoise19:05:46

не, оно понятно просто хз куда деть вспомогательные

misha19:05:41

рядом. либо некоторые делают impl неймспейс, в котором все такие "личные" потроха складывают, чтобы в автокомплитах не маячили

fmnoise19:05:42

хм, а можно подробнее про impl

fmnoise19:05:31

у меня они в автокомплитах по идее не должны маячить ибо все defn-

dottedmag20:05:13

А потом на этом Shen написать эмулятор x86, в нём запустить Linux, в ней JVM, в ней Clojure, а в ней опять Shen.

dottedmag20:05:18

Intel'у нужны деньги!

dragoncube21:05:14

ну это я к тому что можно иметь типизированый лисп