
Alexey
28.04.2017
18:52:40

Руслан
28.04.2017
18:52:48
Алексей есть, у тебя проблема выглядит как будто код не перекомпилировали после изменения.

Quantum Harmonizer
28.04.2017
18:53:24
kto?
Роман Елизаров, например.

Alexey
28.04.2017
18:53:47
о точно

Google

Алексей
28.04.2017
18:53:50
сделал clean project и снова откомпилировал, ничего не изменилось

Alexey
28.04.2017
18:53:51
он же создатель корутин)

Igor
28.04.2017
18:54:14

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

Alexey
28.04.2017
18:54:56

Руслан
28.04.2017
18:55:18

Igor
28.04.2017
18:55:48

Руслан
28.04.2017
18:56:24

Алексей
28.04.2017
18:56:31

Igor
28.04.2017
18:57:13

Руслан
28.04.2017
18:57:53
потому что в го нет другого способа работать?)
а в JVM есть два способа, очевидно что не стоит ожидать что они будут "совместимы", не? Где тут вина JVM, и что в ней нужно менять

Igor
28.04.2017
19:00:19

Google

Igor
28.04.2017
19:00:46
На .NET C# их тоже нет и никто не умер

Руслан
28.04.2017
19:00:57
completable future отлично работают на JVM из коробки

Igor
28.04.2017
19:01:48

Руслан
28.04.2017
19:09:13

Igor
28.04.2017
19:10:17


Руслан
28.04.2017
19:11:52
Ну судя по всему не передастся, а вот если добавить какую-нибудь suspend функцию, то будет
потестал на больших числах
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 1000000; i++ {
if i%100000 == 0 {
fmt.Println(s)
}
}
}
func main() {
go say("world")
say("hello")
time.Sleep(100 * time.Millisecond)
}
а вот будет передаваться управление
package main
import (
"fmt"
"time"
)
func say(s string) {
for i := 0; i < 1000000; i++ {
if i%100000 == 0 {
fmt.Println(s)
time.Sleep(1 * time.Millisecond)
}
}
}
func main() {
go say("world")
say("hello")
time.Sleep(100 * time.Millisecond)
}
В общем с чисто котлиновскими корутинами тут никакой разницы
если забыть про легаси с thread local на джаве

Igor
28.04.2017
19:12:56

Руслан
28.04.2017
19:13:28
ну я решил проверить, в radio-t мне умпутун немножко соврал видимо в этом месте
https://twitter.com/infrabot/status/858002289214279680

Aliaksandr
28.04.2017
19:25:18

Quantum Harmonizer
28.04.2017
19:28:48

Алексей
28.04.2017
19:30:26
да, спасибо. сделал точно так же на пустом проекте - воспроизводится. причём поведение разное if (true) и if (1 == 1) работают по-разному. напишу им

Quantum Harmonizer
28.04.2017
19:44:13
Йухуу! Почти год прошёл, сегодня исправили.
https://youtrack.jetbrains.com/issue/KT-12497

Igor
28.04.2017
20:06:56

Руслан
28.04.2017
20:09:49
ну т.е. магии не произошло

Igor
28.04.2017
20:11:14

Руслан
28.04.2017
20:12:56
ну на вызов не suspend функции и в kotlin можно накрутить поход в шедулер
без вмешательства в JVM

Google

Igor
28.04.2017
20:19:09
без вмешательства в JVM
Я так понял в го это "аннотация" автоматически навешивается на все твои незаинлайненный функции и на все долгие io операции.

Руслан
28.04.2017
20:19:39
ессно, там все suspend by default

Igor
28.04.2017
20:19:39
В Kotlin все таки это надо делать вручную.

Руслан
28.04.2017
20:20:04
ессно, если ты пишешь асинхронный код, ты должен явно указать это
но JVM то тут не причем, вероятно можно написать вполне себе рабочую реализацию go поверх jvm, только кому это нужно :)

Konstantine
28.04.2017
21:08:33
А как async\await подключить в андроиде? Есть либа AsyncAwait-Android, но у нее на гитхабе написано, что она устарела.

Руслан
28.04.2017
21:09:50
https://kotlin.link/?q=AsyncAwait
а вот эта?
https://github.com/Kotlin/kotlinx.coroutines
вот тут что-то тоже про android есть

Igor
28.04.2017
21:19:28

Руслан
28.04.2017
21:19:55
очень странно

Igor
28.04.2017
21:20:12

Руслан
28.04.2017
21:20:24
возможно версия свежее
ну это значит что го вставляет что-то типо goshed дополнительно, а это на перформанс может влиять

Konstantine
28.04.2017
21:23:39

Alexey
29.04.2017
15:10:26
ребят, а что делает let? Вызывает типо у объекта функцию передавая туда его самого?

Sergey
29.04.2017
15:20:06
да, и возвращает значение

Andrew
29.04.2017
15:43:25

Alexey
29.04.2017
15:44:15

Mikhail
29.04.2017
20:29:24
Может кто подсказать, существует ли возможность работать с массивом тайпэлиасов примитивного типа не кастуя каждый раз к своему тайпэлиасу?

Google

Mikhail
29.04.2017
21:00:31
Может какие анноташки есть, чтобы овеществлять Array<T>?

Badya
29.04.2017
21:40:12
<in T> - <out T> не поможет?

Mikhail
29.04.2017
22:05:32
Да всё оказалось куда проще, все экстеншны для typealias актуальны и для типа из которого он сделан (я думал компилятор будет ругаться)

Andrew
30.04.2017
15:12:05
Ребят, а есть годные введения в котлин для полных новичков? взял тут группу студентов с практической работой: "сайт и приложение на андройд к нему" и продал им котлин? срок заложен большой, но хочу, чтобы они сами максимально разбирались.

Alexander
30.04.2017
15:16:00
Kotlin in action книга заведет норм им

Igor
30.04.2017
15:17:17

Andrew
30.04.2017
15:18:17
Кину им, как хоть один вопрос зададут, пока в онлайн примеры послал и пару образцов кода кинул

Quantum Harmonizer
30.04.2017
15:25:33

Admin
ERROR: S client not available

Andrew
30.04.2017
15:26:03
Нуу, скорее они чуть чуть знают шарп и думают что это то-же самое

Quantum Harmonizer
30.04.2017
15:26:46
Какова цель изучения?

Andrew
30.04.2017
15:27:35
Студентам - практическая работа + неможко денежки, мне - подхантить

Quantum Harmonizer
30.04.2017
15:28:16
Просто хороший, годный разработчик под JVM должен хорошо знать Java, ИМХО.

Andrew
30.04.2017
15:29:46
мне скорее люди с инженерным складом ума нужны, которые решают задачи бизнеса, а не знают жвм на 100%

Quantum Harmonizer
30.04.2017
15:31:12
Это работает на back-end проектах средней популярности — нужно, чтобы оно работало, да и всё.
А Android-приложение всегда, при любых условиях будет подтормаживать, поэтому тут надо хорошо знать внутренности, ящитаю.

Igor
30.04.2017
15:32:57

Quantum Harmonizer
30.04.2017
15:33:35

Andrew
30.04.2017
15:33:35
ну эт понятно, переиграть на жаву всегда можно. Проблема только в "хорошо знать внутренности" - это не на один год задача.
а моя задача протянуть их за ручку через проект, при этом дать некоторый уровень свободы

Igor
30.04.2017
15:34:21
Не.
Отчислили что ли? (ты же говорил что тебе 21)

Google

Quantum Harmonizer
30.04.2017
15:34:44

Konstantine
30.04.2017
15:36:56
Ребят, при получении каких-то значений из java кода, когда он может быть нулабл, можно как-то обойти вечные вопросики?) Или это самый правильный вариант использовать их?

Quantum Harmonizer
30.04.2017
15:37:47
Из holder: ..Holder, ... убрать вопрос
тогда, правда, будет падение, если holder == null

Konstantine
30.04.2017
15:38:55
Хм, я думал он при получении из java кода обязателен, да и тут студия сама так забацала)
Оке, спасибо)

Митко Соловец?
30.04.2017
16:13:12
Пацаны имеет ли отношение Котлин к ФП?

Igor
30.04.2017
16:16:15
Пацаны имеет ли отношение Котлин к ФП?
Что-то среднее между java и scala.
Кейс-классы есть, паттерн-матчик зачаточный, readonly коллекции, да и функции на топ-левеле.
(кажись я опоздал на срач в jvm чате ?)

Quantum Harmonizer
30.04.2017
17:39:35
Пацаны имеет ли отношение Котлин к ФП?
Я сначала подумал, что кто-то подделал твой ник, а потом понял, что новая ава :)
Котлин, определённо, позволякт писать в функциональном стиле. Но те функции высшего порядка, что есть в стдлибе, ничего не параллелят, и байт-код получается императивным. (Хотя ничего не мешает использовать true-functional стримы из Java 8.)

Руслан
30.04.2017
17:46:24
Без определения что пацан понимает по ФП - бесполезное обсуждение :)

Митко Соловец?
30.04.2017
17:46:46
да можно тему закрыть
спасибо всем, кто ответил

Михаил
30.04.2017
17:47:28
никто не в курсе как постмотреть release notes к новому плгину котлиновскому?

Igor
30.04.2017
17:55:22
Странно, я даже в youtrack не вижу версии 1.0.2-2

Андрей
30.04.2017
18:04:24

Roman
30.04.2017
19:03:25
как-то можно подружить kotlinx с ViewHolder адаптера RecyclerView? уже написал явно строку импорта, но студия все равно упорно импортит объекты из R.id и в итоге нет доступа к методам =/

Sergey
30.04.2017
19:04:35
with(itemView) {
myTextView.text = ...
}

Roman
30.04.2017
19:05:17