@kotlin_lang

Страница 771 из 982
Vladimir
25.07.2018
08:58:30
Ручками. Вообще не вижу проблемы
Ну как бы использование любых Java библиотек потребует хоть немного смотреть, что там (да даже примеры в доках). Не говоря о стандартной библиотеке. Ну и многопоточность в JVM - отдельная обширная тема, это придётся изучать.

Pavel
25.07.2018
08:58:42
Ребята остановитесь)))) Я просто спросил))

Alexander
25.07.2018
08:58:45
Не обязательно совершенно.

Google
Alexander
25.07.2018
08:58:56
Это тут нормальный треп

Андрей
25.07.2018
08:59:16
а нахрена JS? :)
шоб свистелки и перделки на сайте были в угоду заказчику

Quantum Harmonizer
25.07.2018
08:59:45
шоб свистелки и перделки на сайте были в угоду заказчику
на лендинге котлин не нужен, а серьёзные приложения в вебе делать нельзя

Quantum Harmonizer
25.07.2018
09:00:14
почему нельзя, кстати?
говно получится

Андрей
25.07.2018
09:00:28
говно получится
так и с js говно получится

и с typescript

Quantum Harmonizer
25.07.2018
09:00:40
да, поэтому просто не надо

Vladimir
25.07.2018
09:01:25
Если сразу работать с корутинами, то про треды вообще можно не думать
Спорное утверждение. Легко столкнуться с проблемами, тем более, когда корутины не совсем в релизе. Можно конечно и на спринге писать, не зная, что внутри. Только хорошая ли это идея?

Sergey
25.07.2018
09:01:38
Google
Quantum Harmonizer
25.07.2018
09:02:37
можно, у нас пишут)
ну, у вас и на пхп пишут...

Евгений
25.07.2018
09:03:02
так говорите, как будто это что то плохое

Mayor
25.07.2018
09:03:30
Kirill
25.07.2018
09:03:48
ну, у вас и на пхп пишут...
Пхп 7 -- нормальный язык...

Sergey
25.07.2018
09:03:49
ну, у вас и на пхп пишут...
ну вот, без JVM бекграунда берут и пишут на котлине. проблемы только в многопоточностью возникают иногда

Mayor
25.07.2018
09:04:20
Alexander
25.07.2018
09:05:48
Sergey
25.07.2018
09:06:40
многих ли из них можно подпускать к разработке?
достаточно одного человека в команде, который сможет проревьювить это. а в течении пару месяцев и вся команда вьедет(при желании)

Andrew
25.07.2018
09:07:16
Спорное утверждение. Легко столкнуться с проблемами, тем более, когда корутины не совсем в релизе. Можно конечно и на спринге писать, не зная, что внутри. Только хорошая ли это идея?
*стандартная напоминалка о том, что корутины — об асинхронности, а не о параллельности* Тредики с корутинками для внешнего наблюдателя сталкиваются, насколько я помню, только в виде CoroutineContext. Потоковая часть которого, в свою очередь, спрятана от пользователя за fun ExecutorService.asCoroutineDispatcher(). Ну и ещё, пожалуй, за моментами, когда важно выполнить операцию на конкретном потоке — это тоже покрыто всяческими kotlinx-coroutines-javafx да kotlinx-coroutines-android.

Quantum Harmonizer
25.07.2018
09:07:55
достаточно одного человека в команде, который сможет проревьювить это. а в течении пару месяцев и вся команда вьедет(при желании)
зачастую команда состоит из нескольких человек, каждый из которых фрагментарно что-то где-то знает/понимает...

Sergey
25.07.2018
09:07:57
но как правило, желания в окружающих не наблюдается
тоже самое о спринг макаках можно сказать.. так что дело то такое)

Никита
25.07.2018
09:08:01
Может кто нибудь чуть подробнее объяснить про: Note: unlike Java, arrays in Kotlin are invariant. This means that Kotlin does not let us assign an Array<String> to an Array<Any>, which prevents a possible runtime failure?

Vladimir
25.07.2018
09:08:22
Мы говорим про изучать, а не про продакшн. Много ли людей, пишущих на Java понимают, как работают threadы? А ForkJoinPool?
Я - нет, оттуда, видимо, и недопонимание. Просто изучать и писать что-то для себя можно вообще не понимая, что происходит) Надеюсь, что из тех, кто пишет "в прод" - достаточно.

Никита
25.07.2018
09:08:36
private val list : List<Any> = ArrayList<String>() private List<?> list = new ArrayList<String>(); у меня оба варианта работают

а бля... массивы...

сорян

Vladimir
25.07.2018
09:10:48
Google
Alexander
25.07.2018
09:10:57
Я - нет, оттуда, видимо, и недопонимание. Просто изучать и писать что-то для себя можно вообще не понимая, что происходит) Надеюсь, что из тех, кто пишет "в прод" - достаточно.
Я в целом понимаю, это бывает нужно для оптимизации производительности в математике, но для начального знакомства скорее вредно, чем полезно

Sergey
25.07.2018
09:18:05
https://github.com/Kotlin/kotlinx.coroutines/issues/119#issuecomment-407669245 какая-то сложная магия пошла в бой

Alexander
25.07.2018
09:22:30
Они прокачались и теперь могут кастовать магию следующего уровня.

Sergey
25.07.2018
11:01:35
на сколько окей дата классы держать в минимальном скоупе, например внутри лямбды? судя по байткоду вообще без разницы где они задекларированы будут вроде как

Quantum Harmonizer
25.07.2018
11:02:29
нормально, и тут нет разницы, дата они, или нет

Sergey
25.07.2018
11:04:29
на дата не обращай внимания)

dimiii
25.07.2018
13:58:27
Накину ещё
Я тоже накину: pony — язык известный тем, что в нем безопасность работы с памятью доказана _математически_. И в то же время, в трекере которого годами висят отчеты о крэшах.

Андрей
25.07.2018
14:28:06
посоны простой вопрос

есть в качестве параметра такое action:()->Unit = {}

но надо знать там дефолтное значение, т.е. {} или нет

как это обычно делается?

Андрей
25.07.2018
14:29:32
if (onSuccess != {}) же не отработает?

Quantum Harmonizer
25.07.2018
14:29:41
private val NoOp = {} action: () -> Unit = NoOp action != NoOp

а, собственно, нахрена?

Андрей
25.07.2018
14:30:21
да для алертдиалога

создавать каждый раз лень

и если коллбэка нет, то кнопка не должна создаваться

но да, так по ссылке проверит и в принципе логично

Quantum Harmonizer
25.07.2018
14:31:17
и если коллбэка нет, то кнопка не должна создаваться
тьфу, а если я передаю туда пустую функцию с таким же айдентити и хочу кнопку, которая ничего не делает?

Google
Igor
25.07.2018
14:32:10
Quantum Harmonizer
25.07.2018
14:32:21
пусть лучше нуллабельное будет, между нуллом и функцией большая разница в этом контексте

Андрей
25.07.2018
14:33:15
пожалуй что так

Beholder
25.07.2018
14:45:41
вот эти скобки "лишние" только раздражают... я как-то предлагал синтаксис что-то вроде () ->? Unit

Quantum Harmonizer
25.07.2018
14:45:59
typealias Action = () -> Unit

Beholder
25.07.2018
15:05:37
ну так ещё больше букв :)

Igor
25.07.2018
15:13:27
Это если тебе такое очень редко надо, но тогда это вообще не проблемма.

Admin
ERROR: S client not available

Beholder
25.07.2018
15:17:03
это вам не хаскель, тут такие цепочки не позволяются

Mikhail
25.07.2018
15:17:26
высмсле не позволяются?

очень даже нормально компилируются

и работают

Beholder
25.07.2018
15:19:07
fun foo(bar: () -> String -> Int) { TODO() } Такие что ли?

Expecting comma or ')'

Можно такое веселье вообше зафигачить :) fun foo(bar: (((() -> Int?)?) -> String?)?) {} Я понимаю, что это слишком :)

Mikhail
25.07.2018
15:41:42
fun foo(bar: () -> String -> Int) { TODO() } Такие что ли?
fun foo(bar: () -> (String) -> Int) { TODO() } вот так правильно

Nick Senchurin
25.07.2018
15:47:19
всем привет, а можно в котлине вычесть одну коллекцию из другой по предикату?

Google
Nick Senchurin
25.07.2018
15:47:28
а то subtract в доках как то сухо описан

ну например у меня есть 2 коллекции юзеров и надо вычесть по совпадению двух полей

или тут через фильтр как то можно... в общем буду рад любым подсказонькам

Vladimir
25.07.2018
15:50:50
или тут через фильтр как то можно... в общем буду рад любым подсказонькам
Через фильтр точно можно, с проверкой на наличие во второй коллекции элемента с таким же значением этих полей

Mikhail
25.07.2018
15:51:15
хм, не знал
я еще вот так развлекался https://gist.github.com/Mishkun/f93915426c777c937b5fb6c8c3d21beb

Nick Senchurin
25.07.2018
15:52:01
ну через фильтр там получится громоздко, может быть как то можно одним методом, передать туда 2 коллекции и предикат ....

Mikhail
25.07.2018
15:52:28
Nick Senchurin
25.07.2018
15:53:00
массивы небольшие

Vladimir
25.07.2018
15:53:44
ну через фильтр там получится громоздко, может быть как то можно одним методом, передать туда 2 коллекции и предикат ....
Этот метод всегда можно написать самому. Всё-таки не для всех возможных случаев есть готовое решение в stdlib.

Nick Senchurin
25.07.2018
15:54:22
да можно то конечно ) просто думал что стдлиб умеет

Vladimir
25.07.2018
15:54:31
можно сделать a - (a union b) если юзеров немного
minus точно через equals будет работать, а тут особый критерий

Если бы реализацию equals можно было определять отдельно, как Comparator, в некоторых случаях жизнь была бы проще.

Beholder
25.07.2018
15:58:43
мне кажется, тут не про тайпклассы. нужно чтобы в конкретную коллекцию как компаратор передавалсь бы функция сравнения

в эклипсовских библиотеках было что-то подобное

это как в своё время припаяли wait/notify ко всем объектам намертво и жалели

так теоретически можно и equals/hashCode отпаять

Vladimir
25.07.2018
16:04:23
голосуй за KEEP-87 https://github.com/Kotlin/KEEP/pull/87
Ну я, если честно, не знаю, что такое тайпклассы. Тут скорее вопросы к Java, почему не все объекты обязаны иметь natural ordering, но иметь реализацию сравнения равен/не равен обязаны все. А сколько этих проблем с equals/hashCode и наследованием.

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