
Kirill
25.06.2018
09:38:25
List<List<Any>> -> List<Any>

Quantum Harmonizer
25.06.2018
09:38:35

Artyom
25.06.2018
09:38:48
опоздал )

Google

Kirill
25.06.2018
09:38:57
точно
пасиб)

Evgeny
25.06.2018
09:39:42

Vladimir
25.06.2018
09:40:47

Roman
25.06.2018
09:43:02


Павел
25.06.2018
09:45:19
I'm intrigued. Can you, please, point which particular sample from that article does not work for you? I've tried a few and they all convert nicely from Java to Kotlin via build-in converter tool.
Hmm, My last try was on kotlin 1.1, maybe it's fixed… Did you try
abstract class NodeScaffold<THIS extends NodeScaffold<THIS>> {
private final List<THIS> children;
public Stream<THIS> children() {
return children.stream();
}
public Stream<THIS> grandChildren() {
return children.stream()
.flatMap(child -> child.children());
}
}
abstract class SpecialNodeScaffold<THIS extends SpecialNodeScaffold<THIS>>
extends NodeScaffold<THIS> {
// special methods
}
abstract class VerySpecialNodeScaffold<THIS extends VerySpecialNodeScaffold<THIS>>
extends SpecialNodeScaffold<THIS> {
// more special methods
}
public class Node
extends NodeScaffold<Node> { }
public class SpecialNode
extends SpecialNodeScaffold<SpecialNode> { }
public class VerySpecialNode
extends VerySpecialNodeScaffold<VerySpecialNode> { }


Quantum Harmonizer
25.06.2018
09:46:43

Павел
25.06.2018
09:47:05

Roman
25.06.2018
09:48:49
Does it even compile in kotlin?
Why it would not compile? I don't see any compilation problems here: https://gist.github.com/elizarov/30ca944eb5390caac3362590c8472b89

Павел
25.06.2018
09:50:55
Also I can't initialize children to any sane value… even Delegates.notNull()
@relizarov why are we speaking in english?

Quantum Harmonizer
25.06.2018
09:56:31
Error message explains itself

Google

Павел
25.06.2018
09:57:54
Well, now I see that it's fault of java to kotlin converter

Andrew
25.06.2018
10:03:21

Андрей
25.06.2018
10:04:28

Павел
25.06.2018
10:04:58
Только что
@relizarov I've found reported bug. I was close: https://youtrack.jetbrains.com/issue/KT-17186

Andrew
25.06.2018
10:07:43
Для классов, которые в Java помечены как public?
Интересно, на основании чего он решает, где поставить public, а где internal.

Павел
25.06.2018
10:09:09
@Harmonizr do you agree that those reported bug is incompatibility?

Quantum Harmonizer
25.06.2018
10:11:16

Roman
25.06.2018
10:18:56
Note, that the corresponding Java code does not really compile either (produces warnings)

Павел
25.06.2018
10:22:45
Thing is it works somehow on java and doesn't in kotlin

Quantum Harmonizer
25.06.2018
10:23:50

Павел
25.06.2018
10:26:08
Also while you think that this is corner case - it leads me to bad-quality production code (in tests)

dimiii
25.06.2018
10:33:59
Кто-то заморачивался подобным для Идеи? https://www.ibm.com/developerworks/java/library/j-class-sharing-openj9/index.html?ca=drs-

Vladimir
25.06.2018
10:37:55

dimiii
25.06.2018
10:42:39

Vladimir
25.06.2018
10:44:05

Google

dimiii
25.06.2018
10:49:25

Yehor
25.06.2018
11:01:15
Подскажите где почитать как хранить в Котлине / Джаве конфиги для сервисов?
Хотелось все поместить в одну папку и дать администратору возможность настроить
./someapp/app.conf
в джаве есть ресурсы но при сборке артифатка fat jar все оно помещается в этот архив.
где можно почитать best practices? или подсмотреть в проекты какие?
буду очень признателен.

1337
25.06.2018
11:03:36
application.yml
или спринг конфигуратор сервис, не помню точно как

Nikolay
25.06.2018
11:04:45

Павел
25.06.2018
11:04:59

Roman
25.06.2018
11:31:36

Павел
25.06.2018
11:35:11

Roman
25.06.2018
11:38:40
It was never a goal to write the same code in Kotlin as in Java. Kotlin is neither subset nor a superset of Java. Compatibility (being able to use Java classes from Kotlin and vice versa) is a goal, though. So, if you explicitly specify type parameter as <Nothing> the compiler infers exactly what you write. No need to guess. It would not even show "type hint", since the "inferred type" would be exactly the same as the type you write on the right-hand side.

1337
25.06.2018
11:40:54
kotlin is superior

Alexey
25.06.2018
11:44:18

Yehor
25.06.2018
11:46:07

Konstantine
25.06.2018
12:03:10
Если я в when передаю выражение - оно высчитывается каждый раз или как?

1337
25.06.2018
12:06:15
1 раз

Sergey
25.06.2018
13:02:44
неплохо так ktor доку обновили

Kirill
25.06.2018
13:05:49
С картинками прямо.

Sergey
25.06.2018
13:07:37
я уже подумываю выбросить к херам spring и на ktor поменять

Kirill
25.06.2018
13:13:17
От размера проекта зависит. Всякие штуки из коробки типа Spring Security или Spring Cloud из коробки это приятно.

Наиль
25.06.2018
13:16:01
Эта картинка там уже месяц

Google

Sergey
25.06.2018
13:17:01
особенно если это kubernetes, где свой сервис дискавери и управление конфигами

Kirill
25.06.2018
13:27:12
Это правда.

Sergey
25.06.2018
13:35:38
но к примеру на ktor с корутинками у тебя сервер на 90мб памяти сможет держать сотню конкуретных запросов, а на спринге 450мб+ выйдет

Никита?❄️
25.06.2018
13:36:21

Kirill
25.06.2018
13:37:52
Я совершенно согласен, что спринг это гигантская энтерпрайз система, которая, как правило, не стоит того чтобы с ней возиться.

Mikhail
25.06.2018
13:39:10

Sergey
25.06.2018
13:40:21
я б поспорил)

Bogdan
25.06.2018
13:41:45

Mikhail
25.06.2018
13:42:26
я не спорю, что спринг - треш и угар, но разработчики везде есть

Kirill
25.06.2018
13:42:48
вы это бизнесу скажите, на спринг гораздо проще найти разработчиков
Сам работаю в проекте со спрингом и я прекрасно понимаю о чём вы. Я думаю, что это инерция рынка труда. Скоро его доля начнёт снижаться. Молодёжь любит новое. Новое - это Котлин. Через пару лет это будет зрелая экосистема которая будет лишена многих проблем сегодняшнего дня.

Mikhail
25.06.2018
13:43:09
я вот бекенд для стартапа на нем пишу только потому, что в будушем разработчиков проще найти будет

Sergey
25.06.2018
13:43:33

Mikhail
25.06.2018
13:43:34
хотя спринга у меня мало, надо выпилить к черту

Sergey
25.06.2018
13:44:17
спринг реактор сложная штука, я не много людей видел которые умеют его готовить

Mikhail
25.06.2018
13:44:39
а нафиг он нужен?

Sergey
25.06.2018
13:44:56
асинхронность и все такое

Dmitry
25.06.2018
13:45:04
Народ, а есть ли в котлине пропосал каким-либо образом помешать создавать лямбды, которые захватывают родителя?
Регулярно вижу, что в кликлисенера пихают обращение к полю предка и от этого много проблем возникает. Например, если класс с лямбдой должен быть сериализуем. Хочу, чтобы такое не компилировалось.

Mikhail
25.06.2018
13:45:50

Роман
25.06.2018
13:46:19
есть асинхронный для postgres в мавене валялся

Google

Sergey
25.06.2018
13:46:34

Роман
25.06.2018
13:46:42
но это не точно, он называется postgres-async-jdbc
https://mvnrepository.com/artifact/com.github.mauricio/postgresql-async
https://github.com/mauricio/postgresql-async

Mikhail
25.06.2018
13:48:06
а какой профит от всей этой асинхронности?

Роман
25.06.2018
13:48:19
геморой? Пардон сильная головная боль*

Mikhail
25.06.2018
13:48:46
ну серьезно, в каком месте получается лучше?

Kirill
25.06.2018
13:48:46
Тред не блокируем?

Mikhail
25.06.2018
13:49:27
все равно где-то какой-то тред ждет ответа

Sergey
25.06.2018
13:49:37
не в каждом проекте jdbc юзается

Роман
25.06.2018
13:50:05
а это точно всегда нужно? Скажем для игрового сервера норм будет?
Если он из 20 разных мест тыкается в бд
при том каждый раз в разную может

Kirill
25.06.2018
13:51:05

Quantum Harmonizer
25.06.2018
13:51:14

Kirill
25.06.2018
13:51:21
Тред занят другой рутиной.

Sergey
25.06.2018
13:51:40

Kirill
25.06.2018
13:52:22

Mikhail
25.06.2018
13:53:35

Sergey
25.06.2018
13:53:49
у меня есть сервис завязанный на IO, где среднее время ответа 5 секунд, и из них 98% это время ожидания
и чтобы поддерживать кучу клиентов, нужно держать много потоков в пуле сервера, иначе они быстро кончаются