
Vladimir
27.06.2018
08:40:11
А это проблема?
Нет. Просто интересно.
JVM, JS и LLVM покрывают практически всё.

Alex
27.06.2018
08:40:34
Никогда его не любил, но когда пришлось щас на стажировке на нем писать, его способ сборки внушает уважение

Андрей
27.06.2018
08:41:16
вопрос, можно ли создать инстанс переменной в её экстеншне?

Google

Андрей
27.06.2018
08:41:47
типа такого
fun <T>CacheMap<T>?.add(key:String,value:ArrayList<T>) {
if (this.isReady) {
this!!.value.put(key,value)
} else {
this = CacheMap()
}
}

Alexander
27.06.2018
08:42:21
А почему нет, это же статический метод под капотом.

Андрей
27.06.2018
08:42:23
ну в isReady помимо всего прочего проверка на null
да в том-то и дело

Roman
27.06.2018
08:42:35

Андрей
27.06.2018
08:42:36
но в this чет не присваивается нихрена

Kirill
27.06.2018
08:42:40
Кроме Go
Go генерирует бинарный код. Kotlin/Native тоже.

Denis
27.06.2018
08:42:56
Для меня, как для разработчика под iOS сейчас главной проблемой является отсутствие автоподстановки при редактировании кода. Поэтому кросплатформенная разработка пока видится только так: Android UI и Common Businesslogic на Kotlin, а iOS UI на Swift

Alexander
27.06.2018
08:42:58

Roman
27.06.2018
08:43:28

Alexander
27.06.2018
08:43:38
Это же вообще какое-то непотребство. Создать переменную можно но this по определению неизменен никогда

Denis
27.06.2018
08:43:43

Google

Alex
27.06.2018
08:44:07

Kirill
27.06.2018
08:44:21

Alex
27.06.2018
08:44:22
Если нет, бросьте в меня тематической статьей, плиз

Denis
27.06.2018
08:44:52
Кстати, по Kotlin Nativ уже можно вопросы в этом чате задавать, или лучше пока в Slack?

Alex
27.06.2018
08:44:55
Просто отличие, никакой проблемы тут нету

Roman
27.06.2018
08:45:09

Alex
27.06.2018
08:46:29
То есть, альтернатив кодогенерации в ближайшее время никакой?

Alexander
27.06.2018
08:46:43
Я бы сказал, что GCC - это недостаток. Единественнй недостаток LLVM на мой взгляд - так это отсутсвтие собственной стандартной библиотекки, чтобы совсем быть автономным.

Alex
27.06.2018
08:47:17

Alexander
27.06.2018
08:47:23
Поправочка, собственной стандартной библиотеки под windows/

Roman
27.06.2018
08:47:48

Alexander
27.06.2018
08:47:49
Sorry, я про CLANG

Alex
27.06.2018
08:48:52

Alexander
27.06.2018
08:48:59
Я бы рад вообще отказаться от С/С++ и не вспоминать как о кошмарном сне, но слишком часто требуется их стандартная библиотека.
Конкуренция простите чего?

Alex
27.06.2018
08:49:49
Захочу компайлер написать, и выбор бэкэнда особо не стоит - LLVM

Alexander
27.06.2018
08:49:54
Сделать что-то лучше, чем LLVM очень сложно, слишком много туда усилий вбухано. Причем система низкого уровня, какой хочешь язык поверх нее, такой и пиши

Google

Alexander
27.06.2018
08:50:14
К тому же конкуренция есть, есть Graal. Если доживем до релиза

Alex
27.06.2018
08:50:17
Если сложно, тогда ОК
Совершенно забыл, таки да

Roman
27.06.2018
08:51:18
Ну пока еще есть конкуренция и в лице GCC. Он еще тоже пока не собирается сдаваться LLVM-у без боя.

Alexander
27.06.2018
08:52:19
Есть все-таки две большие разницы, компилировать в С или компилировать в какой-то более менее нейтральный IR
Я видел уже несколько весьма симпатичных проектов, которые используют манипуляции с IR LLVM для всяких клевых метопрограммных штук.
Кстати, про котлин, я так понял, что котлин тоже переходит на схему с IR и с публичным API для работы с этим IR. Шлю, как говорится, лучи поддержки. Мне кажется, что на этом пути можно много всего полезного накопать.

Roman
27.06.2018
08:56:06
GCC != компилироваться в C. У GCC есть множество frontends (C, Fortran, Go, и т.п.) и какой-то внутренний IR, хоть и не так хорошо отделенный как в LLVM.

Konstantine
27.06.2018
08:56:15

Anna
27.06.2018
08:56:46

Roman
27.06.2018
08:57:11

Quantum Harmonizer
27.06.2018
09:01:15

Konstantine
27.06.2018
09:06:26

Quantum Harmonizer
27.06.2018
09:06:59

Konstantine
27.06.2018
09:07:37
Но как выяснилось именно так и делается )

Никита?❄️
27.06.2018
09:08:16
зато сколько пользы будет

Dmitry
27.06.2018
09:09:58

Kirill
27.06.2018
09:11:02

Google

Vishnyakov
27.06.2018
09:12:49

Kirill
27.06.2018
09:13:46
Так котлин LLVM биткод выдает или бинарник!?
Я не вполне понимаю почему это важно. На выходе бинарный код, который компилируется сразу. Под капотом компилятор котлина генерирует биткод LLVM, который дальше тут же компилируется в бинарный код.
С точки зрения реализации это интересно, как это устроено. Но с точки зрения пользователя я не уверен, что это важно.

Dmitry
27.06.2018
09:17:09
Т.е. при сборке иос проекта этип сборки бинарника просто пропускается? Нам же не нужно бинарник в проект добавлять.

Наиль
27.06.2018
09:20:39
Эксперементирую с web клиентом на kotlin/js c react. API предоставляет KTOR.
Изучаю сейчас https://github.com/Kotlin/kotlinx-io
Не могу понять как базовые http запросы начать делать.

Evgeny
27.06.2018
09:25:51
как их делать с web или как оформить api на ktor?

Наиль
27.06.2018
09:28:21
как их делать на стороне клиента. конкретно сейчас это web.
но так как это multiplatform I/O library дальше это должно завестись и на других клиентах - мобильных

Evgeny
27.06.2018
09:32:57
Пока вроде нет общей библиотеки для работы с http вызовами, можно ее самому набросать, а на платформах прокидывать вызовы к axios, apache http и т.п.

Наиль
27.06.2018
09:37:05
Да, про эту возможность знаю.
Пока не хочется этого делать - так как это получится самописный велосипед, ведь если я правильно понял, kotlinx.io как раз для того, чтобы унифицировать io слой между платформами.
Или я неправильно понял планы JB?

Evgeny
27.06.2018
09:40:22
Да, kotlinx.io для этого но он пока в активной разработке. Поэтому пока и нет обшеплатформенной реализации.

Igor
27.06.2018
09:44:31

Roman
27.06.2018
09:44:51
Так котлин LLVM биткод выдает или бинарник!?
Когда вы запускаете компилятор Kotlin/Native из командной строки, то на выходе получаете бинарник. Все эти разговоры про LLVM и биткод это просто детали внутренней архитектуры комплитора K/N. К слову, компиляторы Swift, Rust и многих других современных языков устроены внутри точто так же.

Evgeny
27.06.2018
09:46:23

Dmitry
27.06.2018
09:47:17
Если я собираю ios приложение, котлин код будет прикладываться в виде бинарника со своим рантаймом, или в виде биткода и работать точно так же, как и соседний биткод от свифта, в одном с ним бинарнике?
Этот момент совершенно не понятен

Наиль
27.06.2018
09:51:20
да я тоже не до конца понимаю.
речь вот об этой штуке https://help.apple.com/xcode/mac/current/#/devbbdc5ce4f
в xcode настройка ENABLE_BITCODE

Sergey
27.06.2018
09:51:39
а ktor же будет работать нативно? у него вроде нет привязки к jvm
хотя там netty...

Наиль
27.06.2018
09:52:47

Google

Quantum Harmonizer
27.06.2018
09:52:53

Sergey
27.06.2018
09:53:09

Quantum Harmonizer
27.06.2018
09:53:16
о, надо подружить ktor и веб-сервер wizzardo

Alexander
27.06.2018
10:13:20

Evgeny
27.06.2018
10:15:47
кстати, https://github.com/JetBrains/kotlin не так давно стало больше 23к звезд )

Лёша
27.06.2018
10:18:36

Leonid
27.06.2018
10:33:06
Для http есть такое https://github.com/e5l/http-client-common/ (тоже сыроватое), а если не интересует мультиплатформа, то можно просто react’овский fetch из котлина звать

Наиль
27.06.2018
10:50:10


Dilius
27.06.2018
11:00:31

Наиль
27.06.2018
11:03:01
+ для некоторых задач, где сильный упор в основном на мобилки и процент UI очень большой в проекте - тут неплохо себя начинает показывать Flutter.
Для одного своего проекта как раз его начал использовать.
Оба решения хороши в своих нишах. Kotlin не лезет в UI тему, а Flutter это в основном UI.
Было бы здоро если взаимодейсвие между ними налаживалось со стороны обеих компаний.
Это отсылка к теме о которой я уже говорил - flutter platform channels и K/N

Dilius
27.06.2018
11:07:48

Anton
27.06.2018
11:08:16
нет бриджа