@jvmchat

Страница 889 из 2890
Daniel
20.12.2016
11:14:36
само собой столкновения с внешним миров не избежать но там это можно обходить например с помощью railway oriented development

Sergey
20.12.2016
11:16:27
Опять же через либу :)
? я думал в ядре будет

Руслан
20.12.2016
11:16:40
? я думал в ядре будет
Ну там компилятор + либы от JB

Quantum Harmonizer
20.12.2016
11:17:44
? я думал в ядре будет
думаю, в ядре — поддержка новых ключевых слов и операторов, а с помощью либ — реализации этого с помощью CompletableFeature и т. п.

Google
Sergey
20.12.2016
11:18:45
ну CompletableFuture это отдельные потоки

а тут как раз таки все в одном потоке должно выполнятся со стейт машиной, не?

Quantum Harmonizer
20.12.2016
11:19:20
не

Руслан
20.12.2016
11:19:27
В скале я видел репу, https://github.com/scala/async Там поддержка корутин слабее чем в Котлин, например там только Future, а в котлине - любой тип)

Quantum Harmonizer
20.12.2016
11:20:29
а тут как раз таки все в одном потоке должно выполнятся со стейт машиной, не?
если я всё правильно понял, поток доходит до suspension point, задача передаётся другому потоку, а по завершении результат передаётся в continuation

и, соответственно, есть три части — "до", "параллельно" и "после"

Sergey
20.12.2016
11:21:30
ну так корутины ж как раз таки нужны чтобы не плодить потоки

а тут выходит что они поверх потоков работают, бред

Руслан
20.12.2016
11:21:49
если я всё правильно понял, поток доходит до suspension point, задача передаётся другому потоку, а по завершении результат передаётся в continuation
Там как создатель конкретной либы решит, так и будет. Можно кинуть потом в тредпул, можно поток создавать

Quantum Harmonizer
20.12.2016
11:22:07
а тут выходит что они поверх потоков работают, бред
ээ, нельзя загружать картинку пока рендерятся кадры

Руслан
20.12.2016
11:22:22
а тут выходит что они поверх потоков работают, бред
Все на джаве поверх потоков, вопрос в том как их использовать. Акка бежит поверх тредпула

Sergey
20.12.2016
11:22:54
в чем тогда отличие будет корутин от потоков?

Quantum Harmonizer
20.12.2016
11:23:25
Корутины — не потоки, а синтаксический механизм взаимодействия с ними.

Google
Quantum Harmonizer
20.12.2016
11:25:01
Дошёл до момента, когда нужно загрузить картинку. Отдал задачу в пул, свернул future, побежал дальше в event loop. Отрендерил сотни кадров. Картинка пришла, продолжил future. Только весь этот зоопарк пишется, как синхронный код.

Sergey
20.12.2016
11:27:14
одно дело когда идут переключения контекстов между потоками, а другое дело когда программа сама контролирует стейты внутри потока и перебрасывает куда нужно. но спорить не буду, я не компетентен в этом)

Руслан
20.12.2016
11:29:49
Quantum Harmonizer
20.12.2016
11:31:02
Собственно, переключение контекста не происходит, пока нет горы исполняемых потоков, конкурирующих за меньшее количество ядер

Sergey
20.12.2016
11:31:21
ну пока нет конкуренции на ядро то да

а если у тебя всего 4 ядра, или даже 2?

Quantum Harmonizer
20.12.2016
11:32:52
Ну, бывает. И всё равно, какие есть варианты, кроме как запустить отдельный поток для UI и отдельный для IO?

Sergey
20.12.2016
11:33:21
зависит от того как будет юзаться ядро при этом

Oleksandr
20.12.2016
11:33:21
В скале я видел репу, https://github.com/scala/async Там поддержка корутин слабее чем в Котлин, например там только Future, а в котлине - любой тип)
future и есть "любой тип" это обертка, которая явно показывает, что вон та штука будет когда-то доступна

Sergey
20.12.2016
11:33:29
для UI оно ж активно юзается на перерисовку

а IO наоборот не очень

Руслан
20.12.2016
11:33:45
Всегда было интересно. Насколько дорого?
http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/

Я могу написать async\await для своей любимой

Oleksandr
20.12.2016
11:34:55
несколько фьючеров? Оо зачем?

Oleksandr
20.12.2016
11:35:15
это как джавовские mapToInt, тьфу-тьфу-тьфу?

Руслан
20.12.2016
11:36:36
Трололо)

Ты точно на скале пишешь? Твиттер стек юзал?

Google
Руслан
20.12.2016
11:36:59
Напомни какая там future)

Quantum Harmonizer
20.12.2016
11:37:27
http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/
Например, function call гораздо быстрее RAM или L3. Предполагается, что код закеширован?

Oleksandr
20.12.2016
11:39:40
Ты точно на скале пишешь? Твиттер стек юзал?
не юзал их фьючура старше скаловской, с неё как бы и слизали

ещё есть, например, таски из скалаз, но это маргинальщина

плюс они туда-сюда конвертируются

Quantum Harmonizer
20.12.2016
11:40:38
Раз заговорили о микровещах. invokevirtual и invokeinterface на JVM различаются по скорости?

Руслан
20.12.2016
11:40:54
Ну или вот, Future, CompletableFuture, Deffered, ListanbleFuture

Небольшой списочек)

плюс они туда-сюда конвертируются
Я понял, напишем имплисит конверсию)

Sergey
20.12.2016
11:41:30
>Deffered deferred вроде

Руслан
20.12.2016
11:41:58
Sergey
20.12.2016
11:42:29
>Future это спринговое которое, которое появилось раньше чем джавовое CompletableFuture?

Руслан
20.12.2016
11:42:31
В котлине можно сделать go) типо: for (x in y) go { foo(x) }

На основе корутин

Quantum Harmonizer
20.12.2016
11:43:19
Руслан
20.12.2016
11:43:29
В скале вроде scala...Future

Oleksandr
20.12.2016
11:43:36
Руслан
20.12.2016
11:43:38
На тему колличества оберток

Oleksandr
20.12.2016
11:44:14
Ну или вот, Future, CompletableFuture, Deffered, ListanbleFuture
и чем они отличаются? ты их все всегда используешь?

Google
Руслан
20.12.2016
11:45:04
пф, https://github.com/rssh/scala-gopher
Так это на корутинах которые завезут в 1.1) Не нужны акторы для этого

Aleksei
20.12.2016
11:45:08
и чем они отличаются? ты их все всегда используешь?
мне кажется их даже друг в друга нельзя сконвертить

Aliaksei
20.12.2016
11:45:21
У них один интерфейс

Руслан
20.12.2016
11:46:05
Но реализация очень сильно отличается

Aliaksei
20.12.2016
11:46:18
CompletableFuture собтсвенно и есть самая правильная футура

Руслан
20.12.2016
11:46:31
CompletableFuture еще и имплиментит CompletionStage

Admin
ERROR: S client not available

Oleksandr
20.12.2016
11:46:40
Так это на корутинах которые завезут в 1.1) Не нужны акторы для этого
это одна из реализаций CSP, можно и на акторах, и на корутирах, и на чем угодно

Руслан
20.12.2016
11:46:46
Но много API дает Future

Тот же AWS SDK

Aliaksei
20.12.2016
11:47:20
CompletableFuture еще и имплиментит CompletionStage
Да, и вообще правильно говорить не CompletableFuture а CompletionStage.... но фиг с ним

Руслан
20.12.2016
11:47:41
И вот тут становятся очевидным плюсы реализации корутин в котлине)

Руслан
20.12.2016
11:48:22
Ты пишешь await для любой футуры

Aleksei
20.12.2016
11:48:40
Руслан
20.12.2016
11:48:45
используя оптимальную реализацию

Aliaksei
20.12.2016
11:48:58
у футур нет flatMap

Руслан
20.12.2016
11:49:21
В джаве)

Google
Oleksandr
20.12.2016
11:49:37
используя оптимальную реализацию
что такое "оптимальная реализация", оптимальная для кого?

Ты пишешь await для любой футуры
совместимость со старым -- не плюс, а необходимость

Руслан
20.12.2016
11:50:06
что такое "оптимальная реализация", оптимальная для кого?
оптимальная для перформанса и с точки зрения использования

> совместимость со старым — не плюс, а необходимость в мемориз

Oleksandr
20.12.2016
11:50:38
оптимальная для перформанса и с точки зрения использования
я не маркетолог, дай технические детали -- что, как, куда

Руслан
20.12.2016
11:51:13
Вот сюда

Aliaksei
20.12.2016
11:52:19
Да, Бреслава толк лучше посмотреть

Oleksandr
20.12.2016
11:52:52
а есть паперы какие или толки? код, да ещё и на котлине, читать не всегда хочется

Руслан
20.12.2016
11:53:08
Там прямо ссылка на толк в ридми

Правда уже устарело

С JVMLS

Aliaksei
20.12.2016
11:54:03
Сильно устарело?

я не следил

Руслан
20.12.2016
11:54:40
Ну с выходом M02 переделали)

Oleksandr
20.12.2016
11:59:09
так было не оптимально изначально, получается?

Aliaksei
20.12.2016
11:59:32
трололо)

Pavel ?
20.12.2016
11:59:58
судя по опросу только 251 человек из 875 понимают что такое scala и kotlin

Руслан
20.12.2016
12:00:53
так было не оптимально изначально, получается?
Аргументы закончились, пошли глупые набросы? ооок

Страница 889 из 2890