Fork me on GitHub
#clojure-russia
<
2016-06-19
>
rm13:06:39

Привет. У меня завтра защита магистерской, которая написана на кложе. Вангую, будут вопросы, почему на ней. Хотите мне в этом помочь? Потому что я стал делать на ней из-за иммутабельности, мне действительно проще, когда изменяемый стейт скукожен до одного атома. Желательно преимущества относительно матлаба и сишарпа.

rm13:06:33

а, ну и pmap еще

rm13:06:03

и нормальное взаимодействие с реплом

rm13:06:19

и скобочки

artemyarulin13:06:48

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

bernik14:06:27

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

bernik14:06:28

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

rm14:06:51

здоровая пропаганда не повредит :)

rmuslimov14:06:34

@rm скажи что есть такая компания netflix которая набирает кложуристов по 250k в год

rmuslimov14:06:04

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

rm15:06:46

фигово, что я сам на кложе в проде сейчас не пишу :)

artemyarulin15:06:50

@rmuslimov: А чо правда нетфликс набирает кложуристов? Чота на сайте не нашел, не знаешь для чего они ее юзают?

rmuslimov15:06:39

ну, не знает набирают прямо сейчас или нет

rmuslimov15:06:52

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

rmuslimov15:06:05

нет, детали я не знаю

artemyarulin15:06:40

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

fxposter17:06:48

по-моему у них и есть все на джаве 🙂

fxposter17:06:58

возможно маленькая часть на кложуре где-то есть

mike_ananev21:06:23

@rm: попробуй привести следующие аргументы. 1 - скорость разработки. Clojure значительно менее многословен чем, Java и поэтому скорость разработки на нем 3-5 раз быстрее, что для магистрской работы может быть важно. 2 - Clojure богат выразительными абстракциями, которые позволяют кратко и четко изложить на языке решаемую проблему. Хороший программист мыслит абстракциями или точнее должен мыслить семантикой, а не синтаксисом. Императивные языки чаще других заставляют скатываться к оперированию синктаксисом и обычно "более многословны" в плане абстракций. (если докопаются пояснить, то можно привести пример абстракции типа "канал" из core.async - канал это такая штука, которую можно положить с одного конца и прочитать с другого конца. если читающий из канала занят, то тот кто кладет в канал замирает. Если читать нечего из канала, то читающий замирает до тех пор, пока в канале не появится значение. Если пишущий в канал закончил работу и больше не хочет посылать ничего, то пишущий закрывает канал и читающий автоматически понимает, что обработка закончена. И наоборот, если читающий больше не хочет принимать значения, то он может закрыть канал, и тогда пишущий (producer) понимает, что данные в канал больше класть не надо. Эта удобная логика кроется за простым (chan). в Java таких удобных и простых абстракций нет, пришлось бы писать довольно много лишнего кода, непосредственно не связанного с решаемой проблемой и все равно бы блокировали на уровне thread'a или устроили callback hell). 3 - многопоточность. Clojure спроектирован для разработки многопоточных приложений, поэтому его примитивы многопоточности снижают существенную часть работ по синхронизации чтения/записи объектов.