
Anton
20.07.2017
14:01:27
может потому что может?
ну как-бы котлин, глоток свежего воздуха, после ее и кровавого тырпрайза... не вижу смысла туда это тащить. наоборот поэксперментировать, что-нибудь новое попробовать, итд

Boris
20.07.2017
14:01:34
даже не смотря на то, что деньги утекли без блокировки

Igor
20.07.2017
14:02:25

Google

Denis
20.07.2017
14:02:57

Igor
20.07.2017
14:04:21
Таки да, а то я уже собирался тебе каналы и kotlin-акторы советовать для многопотчности

Denis
20.07.2017
14:05:27
Спасибо большое всем за консультацию!

Igor
20.07.2017
14:09:16

Anton
20.07.2017
14:16:06

Igor
20.07.2017
14:19:43
Руслан оказывается специалист по акторам https://github.com/KotlinBy/kotlin-akka

Anton
20.07.2017
14:25:12
Спасибо, гляну, я пока еще не пришел к акторам, использую vert.x - но идеи у него близкие к акторам, как я понял.

Руслан
20.07.2017
14:25:13
Мы как-то давно обсуждали что вот есть акка, и это прям киллер фича скалы. И люди почему-то не понимали что акку можно использовать из котлина без боли (потому что там есть джава API). Вот так и получился этот репозиторий

Nikita
20.07.2017
15:05:32
Всем привет! Не знаете есть какая-нибудь библиотека конфига для Kotlin? Нужно записывать и читать

Руслан
20.07.2017
15:06:07
https://kotlin.link/?q=config

Google

Nikita
20.07.2017
15:06:53
А в konfig писать можно?

Руслан
20.07.2017
15:08:05
Написано что мапки обычное можно подсовывать
Глядя на readme я сказал бы - да

Nikita
20.07.2017
15:18:52
Какая-то шизанутая библиотека

Igor
20.07.2017
16:05:46

Badya
20.07.2017
16:38:11
В теории: акторы работают на том же принципе что и реакт - в итоге получаешь что-то вроде тех же коллбеков и отдельный шедулер для них - они stackful
корутины же сидят вроде как на системном шедулере, и в целом превращаются в некий switch-case при компиляции - при этом контекст выполнения им доступен, потому что их обработка происходит в том же месте где и вызов - они stackless

Igor
20.07.2017
16:38:33

Badya
20.07.2017
16:40:36
мне всегда казалось что корутины это хардкор но грамотно, а всякие реакты, акторы и прочее - костыли)

Igor
20.07.2017
16:43:23

Badya
20.07.2017
16:44:30
вообще про корутины в любом языке
есть stackless-python
Когда я был стажером, я увидел fibers в java
по сути были те же корутины
реализованы на старом добром Continuations library by Matthias Mann
https://github.com/oltolm/continuations
они же легли в основу Quazar
и скорее всего ребята из Kotlin сделали тоже самое
https://www.youtube.com/watch?v=YWLHELcvNbE
Вот собственно Сережа рассказывает как они делали корутины в жаве)
и судя по видео от ребят из Котлин https://www.youtube.com/watch?v=4W3ruTWUhpw

Google

Badya
20.07.2017
16:50:22
все тоже самое)
как только они официально их релизнут все RX, actors и т.д. можно забыть)

Anton
20.07.2017
16:52:39
а конкарент апи тоже можно?
во заживем тогда ни РХа знать не надо ни конкарента
3 ключевых слова и полетели

Badya
20.07.2017
16:53:24
если под конкарент апи ты имеешь ввиду ExecutorsFramework то наверное и его)

Anton
20.07.2017
16:53:35
ну атомики синхронизаторы и тп

Badya
20.07.2017
16:53:48
это все останется
в классической многопоточности
а тут же речь про асинхронные действия
собственно для них ExecutorsFramework и придумали в свое время

Igor
20.07.2017
16:54:54

Badya
20.07.2017
16:55:12
тоже самое можно обернуть в корутину
но без коллбеков
отдельного шедулера
и тредпула под этим шедулером соответсвенно

Igor
20.07.2017
16:56:33
тоже самое можно обернуть в корутину
И ты изобретешь актор, который за тебя уже сделан _умными людьми_ с unsafe и прочим.
И главный козырь - они могут также прозрачно общаться между отдельными процессами и машинами (по сети).

Badya
20.07.2017
16:56:34
ты сейчас по факту отправляешь задачи в шедулер у которого есть свой тредпул, а в треде который задачу отправил ты ждешь некий результат, или не ждешь но используешь коллбек
тут же твой же тред порождающий асинк задачу, возможно будет эту задачу и делать, а то место в котором ты ждешь как будто бы отложат в сторонку - потом задача выполнится - и то что лежало в сторонке придет на тред обратно, получит результат и пойдет работать дальше
https://i.stack.imgur.com/bzDfr.png - без корутин

Google

Badya
20.07.2017
17:04:41
https://i.stack.imgur.com/t6FP9.png - с корутиной
жирная линия - задачи, тонкая линия - простой
меньше простой, и меньше тредов
Quazar fibers по сути тоже корутины
http://vlkan.com/blog/post/2014/09/01/java-fiber-test/

Admin
ERROR: S client not available

Badya
20.07.2017
17:07:59
тут есть бенчи

Михаил
20.07.2017
17:08:32
Всем привет, подскажите, пожалуйста, как удалять ячейку(одну) из Realm, с помощью RxJava

Nikita
20.07.2017
17:10:14
А в котлине существует аналог typedef?
Чтобы обернуть имя класса

Quantum Harmonizer
20.07.2017
17:10:33

Nikita
20.07.2017
17:10:58
Спасибо!

Алексей
20.07.2017
18:48:57
всем привет написал простенькую программу для проверки курса валют (и отсылки курса по смс). Можете провести код ревью а то есть ощущение что набыдлокодил?
https://pastebin.com/pAqh1BqS

Kirill
20.07.2017
18:55:30
код отформатируй (ctl+alt+L в idea)
и у тебя тут не всё, судя по fun sendSms(price: String){

Алексей
20.07.2017
18:57:07
ну все работает, просто я думал что можно написать покрасивее

Kirill
20.07.2017
18:57:15
> val parser: Parser = Parser()
но
> val obj = URL(urlString)
ты уж определись.
но вообще типы не указывают обычно

Алексей
20.07.2017
18:59:12

Kirill
20.07.2017
19:00:56
```val a: JsonArray<JsonObject> = parser.parse(stringBuilder) as JsonArray<JsonObject>```нормальные имена дай всем переменным и избавься от ненужных локальных переменных
и строки в константы

Google

Михаил
20.07.2017
19:06:53

Boris
20.07.2017
19:13:00
https://pastebin.com/pAqh1BqS
fun makeRequest(urlString: String): String{
val obj = URL(urlString)
val connection = obj.openConnection() as HttpURLConnection
connection.requestMethod = "GET"
val inn = BufferedReader(InputStreamReader(connection.inputStream))
var inputLine = inn.readLine()
val response = StringBuffer()
while (inputLine != null) {
response.append(inputLine)
inputLine = inn.readLine()
}
inn.close()
return response.toString()
}превращается в
URL(urlString).openStream().reader().readText()

Жабра
20.07.2017
19:15:43

Boris
20.07.2017
19:15:44
а весь код в Parser().parse(URL(urlString).openStream().reader().readText())

Алексей
20.07.2017
19:15:54
я же говорил что набыдлокодил)

Михаил
21.07.2017
00:58:03
никто не видел предложения в issue trackee, чтобы при переопределении джавовского метода с параметром Object object, в котлине это сразу преобразовывалось не в ``object``: Any, а в any: Any

Quantum Harmonizer
21.07.2017
05:59:06

Ivan
21.07.2017
09:03:53

Руслан
21.07.2017
11:23:44
Kotlin Software Engineer, Android Framework - Google - 1600 Amphitheatre Pkwy, Mountain View, CA - Google Careers
https://careers.google.com/jobs#!t=jo&jid=/google/kotlin-software-engineer-android-1600-amphitheatre-pkwy-mountain-view-ca-2643700480

Михаил
21.07.2017
11:25:25

Quantum Harmonizer
21.07.2017
11:27:49

Михаил
21.07.2017
11:29:26
почему error?

Quantum Harmonizer
21.07.2017
11:29:48
потому что после переименования параметра any уже определено

Михаил
21.07.2017
11:29:51
это вообще ишью больше к плагину отнсится