This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-06-19
Channels
- # beginners (17)
- # boot (7)
- # cider (1)
- # cljsrn (4)
- # clojure (22)
- # clojure-austin (19)
- # clojure-canada (1)
- # clojure-dusseldorf (1)
- # clojure-greece (3)
- # clojure-russia (19)
- # clojure-spec (46)
- # clojure-uk (23)
- # clojurescript (17)
- # core-async (7)
- # cursive (13)
- # dirac (66)
- # kekkonen (1)
- # lein-figwheel (2)
- # om (1)
- # onyx (2)
- # re-frame (1)
- # reagent (1)
- # specter (2)
Привет. У меня завтра защита магистерской, которая написана на кложе. Вангую, будут вопросы, почему на ней. Хотите мне в этом помочь? Потому что я стал делать на ней из-за иммутабельности, мне действительно проще, когда изменяемый стейт скукожен до одного атома. Желательно преимущества относительно матлаба и сишарпа.
ну можно обобщить что кложура ФП язык, когда всякие сишарпы имепативные и вообще фу
@rm: во время защиты у тебя будут только слайды или демонстрация тоже? если демонстрация будет, то репл срау становится вполне заметным преимуществом. остальное идет из фп - иммутабельные структуры, более “математическое” описание функций, простота использования многопоточности
и вообще, обычно хватало того, что человеку было удобно писать на каком-то языке и знаний этого языка было больше, по сравнению с другими
@rm скажи что есть такая компания netflix которая набирает кложуристов по 250k в год
@rmuslimov: А чо правда нетфликс набирает кложуристов? Чота на сайте не нашел, не знаешь для чего они ее юзают?
круто, я думал у них все на жаве
@rm: попробуй привести следующие аргументы. 1 - скорость разработки. Clojure значительно менее многословен чем, Java и поэтому скорость разработки на нем 3-5 раз быстрее, что для магистрской работы может быть важно. 2 - Clojure богат выразительными абстракциями, которые позволяют кратко и четко изложить на языке решаемую проблему. Хороший программист мыслит абстракциями или точнее должен мыслить семантикой, а не синтаксисом. Императивные языки чаще других заставляют скатываться к оперированию синктаксисом и обычно "более многословны" в плане абстракций. (если докопаются пояснить, то можно привести пример абстракции типа "канал" из core.async - канал это такая штука, которую можно положить с одного конца и прочитать с другого конца. если читающий из канала занят, то тот кто кладет в канал замирает. Если читать нечего из канала, то читающий замирает до тех пор, пока в канале не появится значение. Если пишущий в канал закончил работу и больше не хочет посылать ничего, то пишущий закрывает канал и читающий автоматически понимает, что обработка закончена. И наоборот, если читающий больше не хочет принимать значения, то он может закрыть канал, и тогда пишущий (producer) понимает, что данные в канал больше класть не надо. Эта удобная логика кроется за простым (chan). в Java таких удобных и простых абстракций нет, пришлось бы писать довольно много лишнего кода, непосредственно не связанного с решаемой проблемой и все равно бы блокировали на уровне thread'a или устроили callback hell). 3 - многопоточность. Clojure спроектирован для разработки многопоточных приложений, поэтому его примитивы многопоточности снижают существенную часть работ по синхронизации чтения/записи объектов.