
Sasha
28.04.2017
17:05:56
ну вроде как жизнь должна облегчить, но пока что проблем больше. К слову, анко не первая попытка как то облегчить написание ui, но как видим все равно все пишут по старинке.

Konstantine
28.04.2017
17:06:58

Quantum Harmonizer
28.04.2017
17:10:13

Sasha
28.04.2017
17:11:06
не все!!!11
ну я тоже анко юзаю и не только, к сожалению.

Google

? animufag ?
28.04.2017
17:12:33

Sasha
28.04.2017
17:13:43
кто нибудь kotlin js юзал в андроиде?

Quantum Harmonizer
28.04.2017
17:16:29
зачем юзать JS в андроиде, если там есть почти JVM? ;)

Михаил
28.04.2017
17:17:00
react native какой-нить)

Sasha
28.04.2017
17:18:09

? animufag ?
28.04.2017
17:19:06

Sasha
28.04.2017
17:19:29

Quantum Harmonizer
28.04.2017
17:19:46

Sasha
28.04.2017
17:19:57

? animufag ?
28.04.2017
17:20:51

Quantum Harmonizer
28.04.2017
17:21:56

Alexey
28.04.2017
17:46:11
ребят, кто вдуплил в корутины? насколько я понял этo kak Future в джаве

Google

Руслан
28.04.2017
18:09:25
https://github.com/apache/groovy закрыли груви ?

Alexey
28.04.2017
18:10:40
kak tak?

Руслан
28.04.2017
18:12:32

Alexey
28.04.2017
18:13:08

Badya
28.04.2017
18:14:31
Future обычно выполняются в отдельном пуле потоков

Руслан
28.04.2017
18:14:55
Например ты скачал данные, теперь их надо обработать и отобразить/отправить
Тут конечно есть CompletableFuture

Alexey
28.04.2017
18:15:57
собственно я не понял зачем нужны корутины

Badya
28.04.2017
18:16:02
в корутине все интересней)

Alexey
28.04.2017
18:16:14
потому что не понял разницу с уже существующими Future

Badya
28.04.2017
18:16:17
потому что это все равно Future

Руслан
28.04.2017
18:16:54

Badya
28.04.2017
18:17:08
в корутине ты как бы переключаешь контекст выполнения - потоки переиспользуются и т.д.

Руслан
28.04.2017
18:17:08
А то лень с телефона всё объяснять

Alexey
28.04.2017
18:17:17

Badya
28.04.2017
18:18:52
опять же фьючер ты сделал - отправил и ждешь (полишь или коллбек какой) - потом обрабатываеш
а в корутине ты ее заряжаешь и уходишь делать - потом возвращаешься туда где остановился

Google

Alexey
28.04.2017
18:19:53
а, ну да если тебе надо знать когда завершилось future, тебе надо completable future

Руслан
28.04.2017
18:20:38
Ключевые отличия:
Код последовательный, проще писать/читать ветвиться, делать циклы
Корутины легче потока, можешь в своём коде создать много корутин

Badya
28.04.2017
18:21:13
если у тебя один поток и задача в асинке быстрая - ты не заметишь, а если у тебя в асинке варится долгая кухня - ты делаешь там yield и постоянно прокручиваешь остальные корутины - возвращаясь к долгоиграющей в свободное время

Alexey
28.04.2017
18:21:46

Aliaksandr
28.04.2017
18:21:50

Badya
28.04.2017
18:22:32
Конечно легче - там новый поток можно вообще не выделять

Руслан
28.04.2017
18:23:02
В целом корутины не отменяют фьючи, можно и нужно использовать код с фьючами в коритнах. Это другой способ писать асинхронный код

Badya
28.04.2017
18:23:45
Руслан, вот тут не понятно, зачем мне фьюча если есть корутина
если в корутине мне надо будет еще асинк - я из нее сделаю корутину

Igor
28.04.2017
18:25:07

Badya
28.04.2017
18:25:08
сложности с корутинами возникают, когда исключение внутри корутины вылетает

balolam
28.04.2017
18:25:36

Руслан
28.04.2017
18:25:46

Igor
28.04.2017
18:26:57

Badya
28.04.2017
18:28:36
Рекомендую старый доклад Сергея https://www.youtube.com/watch?v=YWLHELcvNbE
понять что такое корутина станет легче)
а ну и конечно с синхронизацией гораздо меньше заморочек

Руслан
28.04.2017
18:31:48

Quantum Harmonizer
28.04.2017
18:35:39

Google

Igor
28.04.2017
18:36:13

Alexey
28.04.2017
18:36:19

Руслан
28.04.2017
18:36:40

Alexey
28.04.2017
18:36:43
типо там это решается как выполнять синхронно асинхронныйкод

Igor
28.04.2017
18:38:23

Quantum Harmonizer
28.04.2017
18:38:44

Руслан
28.04.2017
18:39:12

Admin
ERROR: S client not available

Igor
28.04.2017
18:40:03

Руслан
28.04.2017
18:40:22
нет, не знаю :)

Igor
28.04.2017
18:40:47

Quantum Harmonizer
28.04.2017
18:41:04
а чем корутина от файбера отличается?
Корутина — сахар для раскладывания Future и им подобных по потокам, fiber — легковесный поток, который суспендится, когда начинает ожидать. Если я правильно понял.

Алексей
28.04.2017
18:41:21
приветствую! решил попробовать Kotlin и внезапно для себя обнаружил довольно странное поведение при пошаговой отладке. суть в том, что если в методе есть два return'а, и выражение if, которое определяет, на какой из этих ретурнов сделать переход, делаются _оба_ ретурна
вот пример
http://screencloud.net/v/mwgIp
жму F9
http://screencloud.net/v/4K2A7
как такое может быть?

Google

Alexey
28.04.2017
18:41:33
я не слышал про fiber, черт, моя жизнь зря прожита ?

Руслан
28.04.2017
18:41:48

Igor
28.04.2017
18:42:21

Quantum Harmonizer
28.04.2017
18:42:51
корутина в котлине так же делает
Только она делает это на уровне компилятора. FIber в Quasar, если я правильно понимаю, суспендится в рантайме, и там должна быть странная магия, типа как в ForkJoinPool.

Руслан
28.04.2017
18:43:13

Quantum Harmonizer
28.04.2017
18:43:42

Руслан
28.04.2017
18:44:30

Igor
28.04.2017
18:45:10

Quantum Harmonizer
28.04.2017
18:45:39

Руслан
28.04.2017
18:46:34
fiber @Suspendable {
// The fiber will be created and will start executing this body
}
Вот так в котлине использование квазара выглядит

Igor
28.04.2017
18:47:39

Руслан
28.04.2017
18:50:04

Igor
28.04.2017
18:50:32

Руслан
28.04.2017
18:51:13
засыпание в любой точке лишь означает что чаще управление уходит в твой скедулер

Quantum Harmonizer
28.04.2017
18:51:26

Алексей
28.04.2017
18:52:15
а разработчики Котлина тут есть?

Quantum Harmonizer
28.04.2017
18:52:27
Есть.