Size: a a a

Programming Offtop

2020 July 23

RU

Roman Ushakov in Programming Offtop
Теперь вот стикеры
источник

RU

Roman Ushakov in Programming Offtop
источник

I

Igor in Programming Offtop
Ilmir
@happy_bracket Пока я ресёрчил аргументы в пользу своей точки зрения (кстати, я так и не понял, как мне в ФП добиться structured concurrency), я наткнулся на видео Венката, который объясняет это гораздо лучше, чем я бы смог: https://www.youtube.com/watch?v=QYBRifsWHD0.
Вот он говорит то же, что и я про паралелизм https://youtu.be/QYBRifsWHD0?t=2302. Справедливости ради, и циклы можно параллелить. Но есть огромная книга "Optimizing compilers for modern architectures", которая посвящена только теме паралеллизации императивного кода (то есть, в основном попытке понять, когда код можно параллелить или векторизовать, когда нет). Это я называю безумием. Там, где можно обойтись вызовом parallel, пишутся огромные тома.
Вот где он переходит на асинхронность: https://youtu.be/QYBRifsWHD0?t=2697. Слайда заключительного нет, но понятно, что там будет что-то типа "Structure of asynchronous imperative code is similar to structure of synchronous imperative code".
Ырыкс (и цепочка из flatMap, приправленная сахарком) хорош ровно до тех пор, пока нет ветвлений или циклом. Тогда не важно, как пайплан писать. Но только стоит делать асинхронно что-то сложное, так императивный код, который выглядит так же, как и синхронный - это манна небесная и при чтении кода и при написании. Добавил сюда cancellation и... Скажу сразу, не удивлюсь, если какой-нибудь аспирант сейчас пишет дисер на тему cancellation in FP.
Это два абсолютно разных стиля, оба со своими плюсами и минусами. Я не говорю, что на ФП нельзя писать асинхронщину, я говорю, что её писать не так удобно, как в императивщине. Так же, пример с распараллеливанием императивщины и необходимости использования полихедральщины для понимания, можно ли вообще параллелить в любом более-менее сложном случае, тогда как ФП с его иммутабельностью делают распаралелливание не проблемой, говорит не о том, что в императивщине нельзя писать паралельные программы. Просто это не так удобно.
> 2020
> срачи за rxjava vs корутины
да сколько можно
вроде бы уже и flow появился, как замена rxjava...
источник

I

Igor in Programming Offtop
источник

(

( in Programming Offtop
Ilmir
@happy_bracket Пока я ресёрчил аргументы в пользу своей точки зрения (кстати, я так и не понял, как мне в ФП добиться structured concurrency), я наткнулся на видео Венката, который объясняет это гораздо лучше, чем я бы смог: https://www.youtube.com/watch?v=QYBRifsWHD0.
Вот он говорит то же, что и я про паралелизм https://youtu.be/QYBRifsWHD0?t=2302. Справедливости ради, и циклы можно параллелить. Но есть огромная книга "Optimizing compilers for modern architectures", которая посвящена только теме паралеллизации императивного кода (то есть, в основном попытке понять, когда код можно параллелить или векторизовать, когда нет). Это я называю безумием. Там, где можно обойтись вызовом parallel, пишутся огромные тома.
Вот где он переходит на асинхронность: https://youtu.be/QYBRifsWHD0?t=2697. Слайда заключительного нет, но понятно, что там будет что-то типа "Structure of asynchronous imperative code is similar to structure of synchronous imperative code".
Ырыкс (и цепочка из flatMap, приправленная сахарком) хорош ровно до тех пор, пока нет ветвлений или циклом. Тогда не важно, как пайплан писать. Но только стоит делать асинхронно что-то сложное, так императивный код, который выглядит так же, как и синхронный - это манна небесная и при чтении кода и при написании. Добавил сюда cancellation и... Скажу сразу, не удивлюсь, если какой-нибудь аспирант сейчас пишет дисер на тему cancellation in FP.
Это два абсолютно разных стиля, оба со своими плюсами и минусами. Я не говорю, что на ФП нельзя писать асинхронщину, я говорю, что её писать не так удобно, как в императивщине. Так же, пример с распараллеливанием императивщины и необходимости использования полихедральщины для понимания, можно ли вообще параллелить в любом более-менее сложном случае, тогда как ФП с его иммутабельностью делают распаралелливание не проблемой, говорит не о том, что в императивщине нельзя писать паралельные программы. Просто это не так удобно.
И про отмену, и про structured concurrency - вот https://hackage.haskell.org/package/async-2.2.2/docs/Control-Concurrent-Async.html
Почитай там просто список функций, которые можно делать, увидишь, что оно дает все, что нужно и для первого, и для второго
Примерно вот так:
a <- async (return 1)
b <- async (do
 innerA <- return 2
 innerB <- return 3)
_ <- cancel b
источник

(

( in Programming Offtop
Я честно говоря хуй знает, как там должны быть отступы, но идею ты улавливаешь
источник

(

( in Programming Offtop
И опять же, нету смысла спорить про какие-то мифические императивное и функциональное программирование, потому что иронично, но хаскель - это самый лучший императивный язык
источник

I

Ilmir in Programming Offtop
Igor
> 2020
> срачи за rxjava vs корутины
да сколько можно
вроде бы уже и flow появился, как замена rxjava...
источник

I

Igor in Programming Offtop
кусь тебя
источник

I

Igor in Programming Offtop
Переслано от DEBUG
источник

I

Ilmir in Programming Offtop
(
И про отмену, и про structured concurrency - вот https://hackage.haskell.org/package/async-2.2.2/docs/Control-Concurrent-Async.html
Почитай там просто список функций, которые можно делать, увидишь, что оно дает все, что нужно и для первого, и для второго
Примерно вот так:
a <- async (return 1)
b <- async (do
 innerA <- return 2
 innerB <- return 3)
_ <- cancel b
Ок, а автоматом? Один из потомков упал с ошибкой и надо теперь отменить все остальные. Ручками при каждом случае писать?
источник

I

Ilmir in Programming Offtop
(
И опять же, нету смысла спорить про какие-то мифические императивное и функциональное программирование, потому что иронично, но хаскель - это самый лучший императивный язык
Цикл for давно появился?
источник

AM

Andrew Mikhaylov in Programming Offtop
Ilmir
Ок, а автоматом? Один из потомков упал с ошибкой и надо теперь отменить все остальные. Ручками при каждом случае писать?
> упал с ошибкой
> хуцкель
ну-ну)
источник

I

Igor in Programming Offtop
Ilmir
Цикл for давно появился?
> fp
> for
(рекурсия же)
источник

I

Igor in Programming Offtop
источник

(

( in Programming Offtop
Ilmir
Ок, а автоматом? Один из потомков упал с ошибкой и надо теперь отменить все остальные. Ручками при каждом случае писать?
Оно и так отменит все остальные, эксепшен вылетает наверх, так же как и в котлине
источник

(

( in Programming Offtop
Andrew Mikhaylov
> упал с ошибкой
> хуцкель
ну-ну)
В хуцкеле есть эксепшены, да
источник

I

Ilmir in Programming Offtop
Igor
> fp
> for
(рекурсия же)
В лиспе есть, почему бы не добавить в другие ФП языки?
источник

AM

Andrew Mikhaylov in Programming Offtop
(
В хуцкеле есть эксепшены, да
Да, нагуглил после твоего сообщения
источник

I

Ilmir in Programming Offtop
Я уже про Ocaml молчу.
источник