169 похожих чатов

Пришлось по работе пописать на котлине, на корутинах. Как же

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

52 ответов

72 просмотра

а какая у вас возня с TF?

Ссылочной прозрачности нет /thread

Sergey-Alaev Автор вопроса
Danieλ Sλapman
Ссылочной прозрачности нет /thread

Довод, но ссылочная прозрачность - это инструмент, а не самоцель. Не зря во многих либах боятся делать f: F[A] в аргументах функций и пишут вместо этого f: => F[A]

просто ты джавист, поэтому тебе удобно)

Sergey-Alaev Автор вопроса
g ⊗ d → λ ⊗ λ
просто ты джавист, поэтому тебе удобно)

Ты меня разочаровываешь, я ожидал личного наезда сначала от Daniel)

Sergey Alaev
Ты меня разочаровываешь, я ожидал личного наезда с...

Я иногда провоцирую, но на личности не перехожу)

Sergey-Alaev Автор вопроса
Danieλ Sλapman
Я иногда провоцирую, но на личности не перехожу)

Я не про тебя, а про сообщение чуть выше, без лямбд)

Sergey Alaev
Довод, но ссылочная прозрачность - это инструмент,...

А почему боятся? Это разве не с целью обеспечить ленивость?

Sergey Alaev
Я не про тебя, а про сообщение чуть выше, без лямб...

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

Sergey-Alaev Автор вопроса
Карим Аль-Савади
А почему боятся? Это разве не с целью обеспечить л...

Именно, на случай, если пользователь передаст неленивый эффект (или эффект, сконструированный неправильно)

Daniel
а какая у вас возня с TF?

@sergey_alaev вот важный вопрос если что

Sergey-Alaev Автор вопроса
Tachi Войцишевский
@sergey_alaev вот важный вопрос если что

Нет, это известный демагогический прием известного персонажа. Перевести вопрос в плоскость личного мнения и заявить, что это мнение неправильное и вопрос не имеет смысла. Замечу, что спрашивал я вообще про корутины)

runCatching из стдлибы ловит CancellationException

Sergey Alaev
Нет, это известный демагогический прием известного...

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

Sergey-Alaev Автор вопроса
(
runCatching из стдлибы ловит CancellationException

Это довод, первый коммент по теме, спасибо.

Tachi Войцишевский
Так надо только про котлин говорить?

Надо говорить как надо Сергею, Сергей он как Лев, только Сергей

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

Eλijah
интересно, как тф связан с корутинами? посмотрел д...

Да и с ио некорректно наверное сравнивать

g ⊗ d → λ ⊗ λ
Да и с ио некорректно наверное сравнивать

наверное, я одну страницу проскролил просто

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

Sergey-Alaev Автор вопроса
Eλijah
интересно, как тф связан с корутинами? посмотрел д...

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

Sergey Alaev
И то, и другое - это DSL для асинхронного кода. Вс...

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

Sergey-Alaev Автор вопроса
Sergey Kucherenko
ты видел новый arrow?

Впервые слышу, что их два. Смотрел на arrow пару лет назад, выглядело как грубая копия котов, т.к. язык все-таки не тот

Sergey Alaev
И то, и другое - это DSL для асинхронного кода. Вс...

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

Sergey-Alaev Автор вопроса
湊崎 ターボ
забавно конечно, но не думаю что TF это DSL Для ас...

А зачем еще усложнять свой код эффектами? Resource, ApplicativeAsk, явное описание ошибок и контекста в эффектах - это приятно, но недостаточно, чтобы загромождать код for-comprehensions-ами и ненативными для скалы операторами композиции

Sergey-Alaev Автор вопроса
Sergey Kucherenko
https://arrow-kt.io/docs/effects/io/

Забавно, но это же только способ реализации IO? Для эргономики библиотеки это не выглядит важным.

Sergey Alaev
Забавно, но это же только способ реализации IO? Дл...

а мне кажется, как раз pragmatics это меняет сильно. Раньше там везде были HKT на хаке из https://github.com/ocamllabs/higher, их выпилили.

Sergey Alaev
Забавно, но это же только способ реализации IO? Дл...

Там смоделировали IO на продолжениях, если это не меняет, то не знаю, что меняет

Sergey Alaev
Забавно, но это же только способ реализации IO? Дл...

As a consequence, we have gotten rid of most of the functor hierarchy since continuations give us the ability to bind in place and compute anything in a coroutine that later can resume the program stack. The functor hierarchy is only useful when using an indirect style.

Sergey-Alaev Автор вопроса
Sergey Kucherenko
As a consequence, we have gotten rid of most of th...

Ждем следующего шага - понимание, что IO не нужен и достаточно suspend fun?)

Sergey-Alaev Автор вопроса
Eλijah
мне кажется вы тут единственный, кто оба варианта ...

Пересмотрел код, который я переписывал со скалы на котлин. Вариант на котлине менее строгий (AutoCloseable вместо Resource, отсутствие тайпклассов), но более прагматичный и писать приятнее. Сложно объяснить, нужно сесть и попробовать.

Sergey-Alaev Автор вопроса
Daniel
не ну это бан

Я задел твои религиозные чувства?

Sergey Alaev
Пересмотрел код, который я переписывал со скалы на...

То есть это субъективные впечатления, особенно касательно "прагматичности", все таки.

Sergey-Alaev Автор вопроса
Kirill Shelopugin
То есть это субъективные впечатления, особенно кас...

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

Sergey Alaev
К сожалению, математики в IT не котируются, неспос...

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

Sergey Alaev
К сожалению, математики в IT не котируются, неспос...

Безусловно! Просто начал ты с того, что нужно "аргументированно охаять корутины, чтобы вернуть веру в скалу", но не очень ясно зачем хаять, если это дело вкуса.

Sergey-Alaev Автор вопроса
Kirill Shelopugin
Безусловно! Просто начал ты с того, что нужно "арг...

Не вкуса. Опыта. И знаний - у корутин есть объективные недостатки перед монадической композицией.

Sergey Alaev
Не вкуса. Опыта. И знаний - у корутин есть объекти...

Но ты же вот сообщением выше пишешь про отсутствие формального выбора метода написания кода и своё мнение. Это же и есть вкусовщина.

Sergey Alaev
Не вкуса. Опыта. И знаний - у корутин есть объекти...

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

Sergey-Alaev Автор вопроса
Kirill Shelopugin
Я бы, кстати, почитал/послушал про недостатки кору...

Олег, похоже, что-то знает, но он сегодня токсик

Sergey Alaev
Олег, похоже, что-то знает, но он сегодня токсик

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

Sergey-Alaev Автор вопроса
Grigory Pomadchin
да вроде у тебя есть опыт достаточный, и мысли мет...

Нет, этот этап я прошел. Самопиар мне не нужен, а комментарии и отзывы не окупают затраченные усилия

Sergey Alaev
Нет, этот этап я прошел. Самопиар мне не нужен, а ...

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

Sergey Alaev
Нет, этот этап я прошел. Самопиар мне не нужен, а ...

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

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта