@kotlin_lang

Страница 576 из 982
Sergey
08.03.2018
07:43:58
Потому что тогда ты не будешь получать значения по мере их вычисления
почему? в том примере когда мы делаем http запросы, у нас это делается в N корутинах и результат бросается в send сразу же как получен ответ от сервера

Igorek
08.03.2018
18:17:08
Кто на митап идёт?

Quantum Harmonizer
08.03.2018
18:19:56
Igorek
08.03.2018
18:22:07
Kugm

Google
Quantum Harmonizer
08.03.2018
18:22:30
Kugm
уместнее спросить в соответствующем чате

meanmail
08.03.2018
19:57:58
Такое не скомпилируется class A(val param: String = this::class.java.simpleName) А вот так работает open class B { companion object } class A(val param: String = this::class.java.simpleName) : B() ... print(A().param)Угадайте что будет напечатано? Фича или баг?

Жабра
08.03.2018
19:59:24
Подскажите, слишком ли костыльное решение: есть сервер, который принимает сообщения и кладёт их в список. А есть ресайклер, который выводит сообщения на экран. Мне нужно как-то уведомить последнего, что пора обновить данные на экране. Вот что придумал: сделаю независимый channel, в который будет писать сервер, а читать будет ресайклер,. Как только channel.receive() сработало - пора обновиться. Пихать буду булеаны, наверное.

meanmail
08.03.2018
20:02:19
A$Companion?
Просто Companion. Было неожиданно получить такой результат, особенно если companion object где-то глубоко

Quantum Harmonizer
08.03.2018
20:03:26
Просто Companion. Было неожиданно получить такой результат, особенно если companion object где-то глубоко
А, ну да, simpleName же. Думаю, что всё ок, this и не должен быть доступен.

meanmail
08.03.2018
20:07:24
А, ну да, simpleName же. Думаю, что всё ок, this и не должен быть доступен.
Наверное, лучше бы не компилировались оба варианта

Quantum Harmonizer
08.03.2018
21:13:14
а почему не должен?
Это конструктор, this там ещё не инициализирован.

Dibro
08.03.2018
21:13:27
Это конструктор, this там ещё не инициализирован.
public class Test { private String param; public Test() { this.param = this.getClass().getSimpleName(); } }

Quantum Harmonizer
08.03.2018
21:15:08
в джаве же инициализирован
Нет, объект недосоздан. То, что он доступен (даже в котлине) — скорее баг чем фича.

Dibro
08.03.2018
21:16:06
Нет, объект недосоздан. То, что он доступен (даже в котлине) — скорее баг чем фича.
может и недосоздан, но this вполне инициализирован, я могу оперировать с полями и вызывать методы внутри конструктора

Google
meanmail
08.03.2018
21:24:16
может и недосоздан, но this вполне инициализирован, я могу оперировать с полями и вызывать методы внутри конструктора
В моём примере this вызывается до того как будет вызван конструктор, при инициализации класса. В самом же конструкторе, да и вообще при инициализации экземпляра объекта this вполне можно использовать и будет работать как и ожидалось

Жабра
09.03.2018
10:34:41
Как рестартануть корутину после того как был вызван .cancel()? Вызов .start() чёт не помог.

Глеб
09.03.2018
10:37:28
Подозреваю, что никак

Кроме, разумеется, создания её заново

Igor
09.03.2018
10:37:57
Они вроде одноразовые. Метод start вообще для другого (запуск lazy корутины). P.S. когда мне нужна многоразовая корутина, я заменяю ее на фабрику курутин. suspend () -> T

Жабра
09.03.2018
10:43:34
Понятно, благодарю.

iTEYE
09.03.2018
19:23:56
Привет. Можете ткнуть в статью про Observable для даунов?

Anton
09.03.2018
19:27:26
РХовскому?

iTEYE
09.03.2018
19:28:22
да

Alexei
09.03.2018
19:33:31
юзай корутины)
это не взаимо заменяемые вещи носколько я понимаю

Sergey
09.03.2018
19:34:10
смотря для чего

Alexei
09.03.2018
19:35:25
ну насколько я понимаю реактив стримы это пуш модель корутины пул

Alexei
09.03.2018
19:35:59
по крайней мере мне кажется если делать такое разграничение то потом меньше горит

Sergey
09.03.2018
19:38:59
а как же backpressure стримы?

Google
Alexander
10.03.2018
07:43:32
На случай, если тут есть Физтехи (МФТИ). В ближайшую среду, мы попробуем сделать небольшой семинар (или скорее просто обсуждение) по поводу использования Kotlin для научных расчетов. В 15.30 в 517-А ГК. Я пока не очень понимаю, кто там будет, поэтому формат тоже непонятен. Если это будет интересно, мы потом сделаем регулярный семинар на эту тему.

Alexander
10.03.2018
08:54:26
Во внутренних порталах тысяч 6-7 человек. И сообщества для Kotlin пока нет. Я пытаюсь понять, есть ли кто-то заинтересованный, чтобы это сообщество организовать.

Alex
10.03.2018
09:22:46
@noraltavir жаль, я из другого ВУЗ'а, и страны. Мне очень интересно.

Alexander
10.03.2018
09:23:45
Ну между вузами, а тем более между странами, это я пока не умею. То есть умею, но по физике, не по Kotlin.

Vitalii
10.03.2018
09:24:26
Так-то я бы тоже принял участие, но я не студент, к сожалению. Тема интересная.

Павел
10.03.2018
09:28:09
Да, я бы тоже принял участие, как раз два с лишним года на котлине в проде. Жаль я не студент и не технарь

Alexander
10.03.2018
09:28:14
Если действительно серьезный интерес будет, мы можем потом отдельный семинар в Москве сделать. Мне кажется, что kotlin может попытаться захватить кусок ниши научных вычислений у C++

Павел
10.03.2018
09:28:53
Ну как и джава могла уже много лет. Но есть миф о том что плюсы быстрее

Alexander
10.03.2018
09:31:04
Во-первых, действительно есть миф (его надо ломать). Во вторых ученые любят быстро и на коленке, а идеология Java этого не позволяет. В Kotlin есть ряд синтаксических упрощений, которые позволяют писать код гораздо компактнее и понятнее.

Вообще, и Java 8 в этом смысле отлично работает, но тут вопрос психологии, на простую смену циферки люди не клюют, а вот на новый язык могут.

Ну и на горизонте маячит Kotlin Native...

Quantum Harmonizer
10.03.2018
09:32:47
Кроме того, в Java 1.8 я не вижу каких-то изменений, которые сильно помогают что-то писать на коленке. А вот в Java 9 — да.

Alexander
10.03.2018
09:35:23
Я писал и на Java, и на Groovy, и на Kotlin. На Groovy пока лучше всего получается (потому что поддержка kts неадекватная). Но с++ или питоне быстрее получается (хотя и кривее).

Ну здравствуйте, лямбда выражения и поточная обработка коллекций - это для работы с данными просто все. Вот как раз чего принципиально нового в 9 кроме модуляризации я пока не понимаю.

Alexander
10.03.2018
09:37:43
Не чувствую разницы. Groovy уже много-много лет был.

Скриптовость - это условная вещь. Обычно под скриптовостью вообще динамическую типизацию подразумевают

Google
Alexander
10.03.2018
09:40:09
А никакой язык, в котором надо писать System.out.println() никто никогда в скриптовые не возьмет. Я сам большой противник скриптов если что.

Admin
ERROR: S client not available

Alexander
10.03.2018
09:43:12
Живу рядом с МФТИ, можно будет на семинар попасть? Я с другого ВУЗа
Это надо пропуска делать, я не успею. Раз такой интерес, я потом сделаю группу в чем-нибудь и на следующие семинары будем приглашать всех желающих.

Quantum Harmonizer
10.03.2018
09:43:59
Я писал и на Java, и на Groovy, и на Kotlin. На Groovy пока лучше всего получается (потому что поддержка kts неадекватная). Но с++ или питоне быстрее получается (хотя и кривее).
Мне kts не понравился. Если бы, как с Clojure, один раз запустил интерпретатор и работаешь — то ок. А так — скомпилируется и запустится быстрее, чем стартанёт kts.

Alexander
10.03.2018
09:44:19
А там разве не пайтон юзают (или R)? Там же код “на выброс” + все равно юзается куча готовых либ
Питон, да. Но, этот самый "на выброс" часто оказывается не выброшенным. В результате возникают 4-5 этажные скриптовые конструкции.

Плюс надо понимать, что физики программировать не умеют, хотя и думают, что умеют

Что значит «противник скриптов»? :)
Это вопрос конфигурирования процесса работы с данными. Скриптовый подход подразумевает строго императивное управление и срезание всех возможных углов. Мне кажется, что этот путь ведет к вечному проклятию, когда надо не просто картинку нарисовать, а сделать что-то сложно составное.

Rikland
10.03.2018
12:31:32
Привет. В Kotlin нужно положить число 255 (0xFF) в байт. как это лучше сделать?

Quantum Harmonizer
10.03.2018
12:33:19
Привет. В Kotlin нужно положить число 255 (0xFF) в байт. как это лучше сделать?
В Kotlin, как в Java, байты знаковые, поэтому val b = 0xFF.toByte() — это будет -128.

Rikland
10.03.2018
12:34:34
но 0xFF это Int ?

Quantum Harmonizer
10.03.2018
12:34:48
Литерал 0xFF имеет тип Int, да.

Rikland
10.03.2018
12:39:08
то что -128 туда можно засунуть это понятно. уже так делал. на особо больших числах это выглядит достаточно дико

Quantum Harmonizer
10.03.2018
12:40:46
Особо большие числа засунуть в Byte нельзя :)

Rikland
10.03.2018
12:40:49
бинарные протоколы наносят ответный удар :(

Quantum Harmonizer
10.03.2018
12:41:46
Бинарные протоколы восхитительны.)

Google
Victor
10.03.2018
12:44:37
Quantum Harmonizer
10.03.2018
12:44:56
апач трифт - огонь
Почему именно он?

Victor
10.03.2018
12:45:15
используем в проде, микросёрферы

Quantum Harmonizer
10.03.2018
12:45:20
(как раз хочу сделать масштабное сравнение бинарных протоколов, надо на работе убедить людкй выкинуть JSON)

Rikland
10.03.2018
12:45:54
Почему именно он?
гм. когда тебе дают док документ и говорят там описание бинарного протокола, то тебе не поможет ни трифт, ни протобуф

Victor
10.03.2018
12:45:56
для микросёрферной архитектуры зашибись, правда мы допиливали мальца, для балансировки итд

Victor
10.03.2018
12:47:50
и это значит, что они плохие?)

Quantum Harmonizer
10.03.2018
12:47:53
Зачем? Их даже “глазами” не продебажишь
Быстро работают, мало срут в память, надёжны.

Igor
10.03.2018
12:48:28
Быстро работают, мало срут в память, надёжны.
Ну если у тебя “нагрузка” и json не вывозит, то это без вопросов. Но обычно это “экономия на спичках”

Quantum Harmonizer
10.03.2018
12:48:35
В JSON можно любое говно прислать и медленно наблюдать, как всё рушится. А вот сгенерировал proto-файл — и сразу понятно, что можно, а что нельзя.

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