@kotlin_lang

Страница 119 из 982
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
Блин, кроме Котлин кода еще еще JDK/сторонние либы/просто io и тд
очевидный ответ: не используй хз что в асинхронном коде :) где тут проблема с JVM?

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
Блин, кроме Котлин кода еще еще JDK/сторонние либы/просто io и тд
Это проблема экосистемы, что очень много джавового заточено про ThreadLocal и поверх блокирующих api

Алексей
28.04.2017
18:56:31
Роман Елизаров, например.
а скиньте, пожалуйста, его контакт. попробую написать напрямую, узнаем баг это или что

Igor
28.04.2017
18:57:13
очевидный ответ: не используй хз что в асинхронном коде :) где тут проблема с JVM?
Ничего себе совет (хотя он в общем подтвержает что для файберов на JVM перепиливать), а в GO юзают все подрят и оно само работает.

Руслан
28.04.2017
18:57:53
потому что в го нет другого способа работать?)

а в JVM есть два способа, очевидно что не стоит ожидать что они будут "совместимы", не? Где тут вина JVM, и что в ней нужно менять

Igor
28.04.2017
19:00:19
а в JVM есть два способа, очевидно что не стоит ожидать что они будут "совместимы", не? Где тут вина JVM, и что в ней нужно менять
Я не понимаю о чем спор, есть реальный файберы на JVM который работают из коробки? Нет - вопрос закрыт.

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
completable future отлично работают на JVM из коробки
Да согласен, долгое время даже на android их юзал через сторонную либу. Правда сейчас перешел на RX, тк "холодные" таски все таки более функциональшие.

Руслан
28.04.2017
19:09:13
Да согласен, долгое время даже на android их юзал через сторонную либу. Правда сейчас перешел на RX, тк "холодные" таски все таки более функциональшие.
Кстати вот пошел в го тур, и запустил такой код: package main import ( "fmt" "time" ) func say(s string) { for i := 0; i < 100; i++ { fmt.Println(s) } } func main() { go say("world") say("hello") time.Sleep(100 * time.Millisecond) } как ты думаешь, тут управление хоть раз передалось в другую горутину?

Руслан
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 на джаве

Руслан
28.04.2017
19:13:28
ну я решил проверить, в radio-t мне умпутун немножко соврал видимо в этом месте

https://twitter.com/infrabot/status/858002289214279680

Aliaksandr
28.04.2017
19:25:18
Что JVM совсем доканал (без файберов), решил выучить и перейти на GO? ?
И правильно, там и с тредингом всё ок, и дженерики лучшие, о чём ещё нужно мечтать.

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
ну я решил проверить, в radio-t мне умпутун немножко соврал видимо в этом месте
Мы тут с пацанами из @proGO пообсуждали этот вопрос подробнее, можешь почитать

Руслан
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 есть

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

Igor
28.04.2017
21:20:12
очень странно
попробуй сам (если у тебя мак "brew install go")

Руслан
28.04.2017
21:20:24
возможно версия свежее

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

Konstantine
28.04.2017
21:23:39
https://github.com/Kotlin/kotlinx.coroutines вот тут что-то тоже про android есть
Похоже оно, сейчас постараюсь разобраться, спасибо

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

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

Andrew
29.04.2017
15:43:25
ребят, а что делает let? Вызывает типо у объекта функцию передавая туда его самого?
У объекта оно ничего вызывать не должно, это по идее экстеншн, берет лямбду на вход, кидает в нее объект, и ретурнит то, что отдаешь, чтоб цепочки делать, там реализация в одну строчку

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 книга заведет норм им

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

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-приложение всегда, при любых условиях будет подтормаживать, поэтому тут надо хорошо знать внутренности, ящитаю.

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
Отчислили что ли? (ты же говорил что тебе 21)
Получил среднее специальное два года назад, работаю.

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
никто не в курсе как постмотреть release notes к новому плгину котлиновскому?
вот так можно https://github.com/JetBrains/kotlin/commit/e841fceea08efa06ba664532d4dec672f88da956 . Больше информации не встречал. Либо по комитам смотреть что вошло в новую версию.

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

Roman
30.04.2017
19:05:17
itemView.myTextView
? срасибо

Страница 119 из 982