Size: a a a

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

2020 December 25

DP

Dmitry Ponyatov in Clojure — русскоговорящее сообщество
вопрос возник читая вчера главу про веб к красной книге — насколько понимаю, там цепочка функций преобразующих request, строится на вложенных вызовах?
при этом в Эликсире немного другая семантика —  http request преобразуется в answer через цепочку plugов, каждый шаг обработки http-запроса порождается запуском функций как отдельных процессов
источник

DP

Dmitry Ponyatov in Clojure — русскоговорящее сообщество
ЗЫ: может на самом деле стоит переползти на clojerl если такие фишки с процессами хочется?
кто-нибудь в проде сам использует эрланговый порт?
источник

DP

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

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Dmitry Ponyatov
вопрос возник читая вчера главу про веб к красной книге — насколько понимаю, там цепочка функций преобразующих request, строится на вложенных вызовах?
при этом в Эликсире немного другая семантика —  http request преобразуется в answer через цепочку plugов, каждый шаг обработки http-запроса порождается запуском функций как отдельных процессов
есть вот такое https://github.com/suprematic/otplike
есть core.async
в jvm делают виртуальные треды - project loom - есть хорошие видео на youtube
есть агенты - clojure.core/agent, они интегрированы в STM, их можно транзакционно использовать с refs
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
есть ring в нем есть асинхронные обработчики, и можно их подружить с core.async, java streams
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
есть вот такое https://github.com/suprematic/otplike
есть core.async
в jvm делают виртуальные треды - project loom - есть хорошие видео на youtube
есть агенты - clojure.core/agent, они интегрированы в STM, их можно транзакционно использовать с refs
Корутины скорее
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Ответ го и котлину
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Ну вообще я беру свои слова обратно, корутины это так-то и есть виртуальный тред)
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Arseniy Lebedev
Корутины скорее
там есть континуации и по верх них виртуальные треды
виртуальный тред это континуация + планировщик
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Ну да
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
А в кложуру это как-то будут завозить на уровне языка?
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Arseniy Lebedev
А в кложуру это как-то будут завозить на уровне языка?
а зачем?
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Ну чтобы побыстрее работало. Вон в хаскеле возятся же с DPH
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
если хочется поиграться - я сделал библиотеку генераторов
там есть 2 версии - одна основана на перекомпиляции кода, вторая на loom
https://github.com/darkleaf/generator/tree/readme
https://github.com/darkleaf/generator/blob/loom/test/darkleaf/generator/loom_test.clj#L9-L26
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
а что будет быстрее работать в кложе, если появятся виртуальные треды?
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
а что будет быстрее работать в кложе, если появятся виртуальные треды?
Предположительно сервера?
источник

AL

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

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Вон тут в multiple query жава не на самом дне
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Arseniy Lebedev
Предположительно сервера?
ну быстрее - это врядли, но памяти будут меньше жрать
посмотри видосы по project loom, там есть бенчмарк с Jetty
а ring как раз jetty использует
источник

AL

Arseniy Lebedev in Clojure — русскоговорящее сообщество
Кул
источник