
Руслан
13.12.2017
13:58:02

Kirill
13.12.2017
13:58:21
нет.
один из способов сделать это — расширить систему контрактов
чтобы она не только для смарткастов работала
(но это не точно. возможно есть более простые\удобные решения)

Google

Руслан
13.12.2017
14:01:26

Kirill
13.12.2017
14:02:44

Руслан
13.12.2017
14:03:05
(Джава потому что в котлине не работает ?)

Kirill
13.12.2017
14:04:11
и тут я понял, что не знаю как в скале зависимые типы реализованы в компиляторе/рантайме.
может кто в пару слов объяснить?
(да оффтоп, сорри)

Igor
13.12.2017
14:05:29

Kirill
13.12.2017
14:07:39
> В ванильной скале такого и нет
они только в dotty их завезли?
(ладно, пошёл гуглить)

Grigory
13.12.2017
14:08:32
есть path dependnt типы
никаких макросов не нужно ничего не нужно (в либах это есть чтоб компиляцию ускорить)
система типов скалы вытягивает сама

Igor
13.12.2017
14:09:12

Grigory
13.12.2017
14:09:28

Руслан
13.12.2017
14:09:46
Ну имхо практический смысл сложных зависимых типов сильно падает. Например как вариант использования приводят перемножение матриц, мол там зная размерность каждой матрицы на выходе можно получить правильный тип (посчитать размерность производной матрицы) в общем виде. Но сложность написания растет быстрее чем польза. Мне нравится простые применения типо проверить что число будет больше 10 иначе не компиль

Grigory
13.12.2017
14:09:59
ну гетерогенный список тоже завсиимый тип - чем нет то?

Google

Igor
13.12.2017
14:10:05

Grigory
13.12.2017
14:10:23
идриса чатик полезно для этих вопросов посетить кстати, там дядьки занимаются как раз типами

Igor
13.12.2017
14:12:31
Да вот есть теория - что это НЕ нужно (ибо вносит больше сложности, чем решает) (я том чатике уже есть)

Grigory
13.12.2017
14:13:16
я не понимаю к чему ты клонишь - какой был мессаг такой был мой ответ.
был оффтоп вопрос оффтоп ответ

Kirill
13.12.2017
14:14:03

Grigory
13.12.2017
14:14:54
неа
ну в принципе тоже честные - зависимые же)
просто 'с особенностями'

Kirill
13.12.2017
14:15:22
окей, "более сильные"

Grigory
13.12.2017
14:16:08
ну я понял о чем ты, ну да. вообще у меня нет под рукой паперов по типам в скале накидать тебе но они есть где-то в гуголе) если найдешь кстати кидани в личку я запощу их в скала чатике))

dobrowins
13.12.2017
14:18:15
Коллеги, пооффтопить можно?
Сегодня проходил собеседовние на позицию Android-разработчика и по традиции под конец разговора запросил feedback. Один из вопросов, на котором я «прогорел» оказался вопрос «Готов ли Kotlin к продакшену?». Я ответил, что да безусловно, 20% приложений на google play уже его используют — и это оказался неправильный ответ.
6 лет разработки языка от создателей лучшей IDE для Java, поддержка мастодонтов индустрии, тонны материалов — ан нет, у нас пишут на 6й джаве и баста!
Когда же это закончится.

Руслан
13.12.2017
14:20:43

Anton
13.12.2017
14:20:48
ты походу к дебилам ходил

Igor
13.12.2017
14:21:29

dobrowins
13.12.2017
14:21:36

Google

Anton
13.12.2017
14:21:55
мне вообще слабо верится что этот ответ вообще учитывается в фидбеке

dobrowins
13.12.2017
14:22:09

Kirill
13.12.2017
14:22:11
это был аутсорс или продуктовая контора?

Anton
13.12.2017
14:22:28
ты нда до собеса подписывал? если нет говори название

dobrowins
13.12.2017
14:22:35

Kirill
13.12.2017
14:22:49
а. ну тогда сразу в /dev/null

Ivan
13.12.2017
14:23:04

dobrowins
13.12.2017
14:23:22

Руслан
13.12.2017
14:25:16
Ну кстати про #android вакансии, в @kotlin_jobs добавилась еще одна

Gor
13.12.2017
14:27:05

Vitalii
13.12.2017
14:27:42
так а почему не готов сказали хоть?
Просто в большинстве случаев разрабы консервативны.
Многие до сих пор не используют лямбда-выражения, не используют MVP, не используют негугловых библиотек.

Roman
13.12.2017
14:27:45
Интересно, таких людей не смущает вся движуха вокруг языка за последний год и тот факт, что например новости в Android Weekly на 75% про котлин, а также дикое количество новых библиотек на котлине.

Саша
13.12.2017
14:28:44

Vitalii
13.12.2017
14:28:46
RxJava для них также говно.
Почему? Потому что и без всего этого вашего дерьма всё нормально программировалось раньше, и нам это не надо.

Gor
13.12.2017
14:28:48
вот до релиза были вопросы
сейчас нету

Vitalii
13.12.2017
14:29:21

Gor
13.12.2017
14:30:24

Google

Igor
13.12.2017
14:30:39

Kirill
13.12.2017
14:30:57
я бы ещё понял если бы вопрос был про корутины.
готовы ли они к продашну :)

Vitalii
13.12.2017
14:31:01
Ну и эт, разве корутины уже вышли из эксперементальной стадии?

Igor
13.12.2017
14:31:43

Roman
13.12.2017
14:31:50

Admin
ERROR: S client not available

Kirill
13.12.2017
14:31:52

Vitalii
13.12.2017
14:32:32
Нет.
Ну вот, тут тоже ещё можно было бы докопаться, в отличие от rx*.

Gor
13.12.2017
14:33:20

Kirill
13.12.2017
14:33:39
по нашей(kotlin-team) информации — да

Nick Senchurin
13.12.2017
14:33:42
rx тащит , не надо ляля ?

Kirill
13.12.2017
14:34:07
есть ребята из Польши, у которых весь backend на корутинах
(они вроде бы e-commerce пишут)

Roman
13.12.2017
14:34:34
Я бы все же не сравнивал корутины и rx. Это совершенно разные вещи. Некоторые задачи и так и эдак решаются, но на каналах например нельзя написать по-настоящему реактивную программу, а на rx не удобно работать с асинхронностью.

Nick Senchurin
13.12.2017
14:35:17
а на rx не удобно работать с асинхронностью,
а можно подробее пжлст

Igor
13.12.2017
14:35:18

Anton
13.12.2017
14:35:25

Gor
13.12.2017
14:35:30

Nick Senchurin
13.12.2017
14:37:02
может быть кто-то не знает достаточно операторов? ведь кроме map еще есть flatmap со своим шедулером ^_^

Roman
13.12.2017
14:37:37
Ну это холиварная тема, и как правильно замечено, я уже "пытался продать", можно ту переписку прочесть.

Google

Nick Senchurin
13.12.2017
14:38:04
если честно, долго искать, а можно конкртетный асинхронный кейс
вот при таком кейсе rx не затащит и все тут
ну хотяб вкратце)
как то давным давно бодались с челом из сбертеха, он говорил про uri, ну где контент провайдер, да, но тож межпроцессовое взаимодействие, а не межпотоковое

Roman
13.12.2017
14:39:35
Я честно сказать пытался недавно придумать сложную задачку на rx, но у меня не особо вышло. Я все же не pro в rx-java, а тех знаний что у меня были не достаточно чтобы написать что-то архи-сложное.

Руслан
13.12.2017
14:40:51
У них спринг + корутины

Roman
13.12.2017
14:45:05
Я могу примерно описать что такое рективная программа. Вот есть скажем текстовое поле, данные в котором зависят от результата вычисления функции на основе друх других полей, при обновлении любого поля изменяется результат. Это классическое описание реактивщины. Заметьте, что тут нет упоминания переходов в другой поток например.
Такую программу можно написать и на корутинах в императивном стиле, но это будет довольно коряво.

Nick Senchurin
13.12.2017
14:47:12
шлепаем сабжект, эмитим по изменению в полях, в подписке обновляем то первое поле, что зависит от первых двух
ну это так, навскидку

Roman
13.12.2017
14:47:56
Это решение на корутинах?

Nick Senchurin
13.12.2017
14:48:04
нене, я за rx топлю)

Sergey
13.12.2017
14:48:07
разве на каналах не выйдет сделать тоже что и в rx?

Igor
13.12.2017
14:48:24

Gor
13.12.2017
14:49:02

Nick Senchurin
13.12.2017
14:49:37
воувоу) ладно, как только будет необходимость ) я еще топлевел функции не полностью осилил)