@jvmchat

Страница 2766 из 2890
Никита?❄️
30.08.2018
11:32:45
Чёт желтушный заголовок, в интервью про другое же
Типичное интервью, ничего необычного

Quantum Harmonizer
30.08.2018
12:14:47
> Любая либа становится круче и удобнее, если ты просто начинаешь использовать её из Котлина, просто по факту использования Котлина. > У тебя аж голос изменился, так эмоционально всё описываешь.

Oleksandr
30.08.2018
12:22:22
https://habr.com/company/jugru/blog/421607/
его послушать, так горутины все неправильно делают, вот в котлине-то совсем иначе

это ж надо уметь, сука, выставлять недостатки за достоинства (на словах)

Google
Никита?❄️
30.08.2018
12:25:15
я помню мне в 2013 один кореш показывал в elixir потоки, как быстро они работают

Oleksandr
30.08.2018
12:25:24
Но как только я начну писать сложную бизнес-логику, делать какую-то иерархию классов, моделировать сложный домен, то в нетипизированном языке я очень быстро умру. Очень быстро. И всё это поддерживать будет невозможно. На этом строится философия Kotlin, он еще более типизированный, чем Java, еще более строгий. Это core belief в команде Kotlin, что язык промышленного масштаба должен быть строго типизированным

вот это чистой воды лицемерство

Nikita
30.08.2018
12:29:33
почему?

Oleksandr
30.08.2018
12:36:14
почему?
рассуждение "надо больше типов" правильное, я лично его поддерживаю но 1) в котлине система типов ушла на пол-шага вперед относительно джавы, что превозносится как супер-достижение 2) главное, что баланс "насколько именно надо упороться по типам" диктуется разработчиками котлина

Quantum Harmonizer
30.08.2018
12:37:45
его послушать, так горутины все неправильно делают, вот в котлине-то совсем иначе
Да вообще, в котлине неправильно всё, что только можно. Мы тебя поняли.

Oleksandr
30.08.2018
12:40:42
то есть, если развить аргумент про "строгую типизацию" (в кавычках, тк это точно определенный термин, и не имеет мало общего с контекстом из статьи), то надо переходить на условный хаскель но вот так сходу это сделать, очевидно (не поймут-с), не получится, и нужна серия толчков в нужном векторе

именно то, что делается в, скажем, скале

Quantum Harmonizer
30.08.2018
12:41:48
ну так-то кроме скалы вообще все языки отстой

Nikita
30.08.2018
12:41:55
да не такая строгая эта типизация

Oleksandr
30.08.2018
12:41:56
котлин же занимает позицию "а мы тут улучшим синтаксис, чутка поправим систему типов, и будем орать, что у нас ФП язык"

вот это и бесит

Nikita
30.08.2018
12:42:17
да чувак самопиаром занимается

Google
Nikita
30.08.2018
12:42:23
че подпалился то?

Oleksandr
30.08.2018
12:42:30
по факту, это джава++, и в таком ключе котлин идеален

Nikita
30.08.2018
12:42:51
Java#

Quantum Harmonizer
30.08.2018
12:42:54
https://t.me/kotlin_lang/82711

Nikita
30.08.2018
12:42:55
XD

Quantum Harmonizer
30.08.2018
12:44:31
да можно и без JVM)

Oleksandr
30.08.2018
12:45:31
чому же сходу не получится, вот eta, например - просто взяли и начали делать, и вроде как процесс идёт и финасирование есть. собственно запиливают хаскель на жвм
1) его пилить и пилить ещё 2) критично различие подходов "типичной" джавы (хайбернейты всякие) и хаскеля, они несовместимы

то есть, надо делать свою экосистему

и вот тут возвращаемся к моменту, почему мне не нравится котлин: они хотят сесть на два несовместимых стула

Luger
30.08.2018
12:46:38
1) его пилить и пилить ещё 2) критично различие подходов "типичной" джавы (хайбернейты всякие) и хаскеля, они несовместимы
как будто ты в скале хотел бы видеть хайбернейты всякие. я их вот и в жаве видеть не могу , и собственно не вижу

Oleksandr
30.08.2018
12:46:52
ну то есть офк можно хайберы со спрингами, но это редкость

и вот тут возвращаемся к моменту, почему мне не нравится котлин: они хотят сесть на два несовместимых стула
в ту же копилку про 2 стула: развитие не-джвм таргетов так же заставляет делать свою экосистему

но тогда херится концепт джавы 2

и в итоге получается полная каша

Luger
30.08.2018
12:50:01
в ту же копилку про 2 стула: развитие не-джвм таргетов так же заставляет делать свою экосистему
ну там можно реимплементить довольно большую часть стдлибы , так-то

Oleksandr
30.08.2018
12:50:26
можно, скала-джс так и делает

Google
Oleksandr
30.08.2018
12:52:25
часть поста про корутины читается как "ну крч мы сделали хуже, но так надо, и вообще, на самом деле, это лучше"

сделай они либу, вообще претензий не было бы но нет

Quantum Harmonizer
30.08.2018
12:53:16
а ты необучаемый

Nikita
30.08.2018
13:11:40
Есть вопрос, distinct удалит все элементы кроме первого встреченого?

речь про collection stream

Никита?❄️
30.08.2018
13:12:00
Nikita
30.08.2018
13:12:08
ну понятно что дубликаты

Никита?❄️
30.08.2018
13:12:28
первый элемент останется, да

то есть 1 2 1 2 3 3 distinct даст 1 2 3

Nikita
30.08.2018
13:13:42
с цифрами то ок, а если {{key0, val0}, {key1, val1}, {key0, val2}}

то останется {{key0, val0}, {key1, val1}}

?

Никита?❄️
30.08.2018
13:14:14
Nikita
30.08.2018
13:14:25
нет

лист пожо

но дистинкт по свойству

Никита?❄️
30.08.2018
13:14:49
смотри на реализацию equals

Евгений
30.08.2018
13:14:52
пожо сравнивается через equals и hashcode

Nikita
30.08.2018
13:14:58
ох

Google
Евгений
30.08.2018
13:15:12
ох
@javastart

Nikita
30.08.2018
13:15:25
это все понятно

не понятно первый или не первый)

может он их сортирует сначала или с конца идет

Евгений
30.08.2018
13:16:03
если equals возвращает true то они одинаковые

Никита?❄️
30.08.2018
13:16:11
Евгений
30.08.2018
13:16:12
не важно, первый или последний

Nikita
30.08.2018
13:16:18
важно

Евгений
30.08.2018
13:16:26
не важно

Nikita
30.08.2018
13:16:36
если eq сравнивает айдишники а кроме них есть другие поля

Admin
ERROR: S client not available

Евгений
30.08.2018
13:16:51
у тебя equals вообще определен?

Никита?❄️
30.08.2018
13:16:55
важно
{a a} {b a} {b b} {b b} -> disctinct -> size == 3

Евгений
30.08.2018
13:16:59
что значиьт "если"?

Mikhail
30.08.2018
13:17:16
Евгений
30.08.2018
13:17:26
@javastart ?

Никита?❄️
30.08.2018
13:17:32
Nikita
30.08.2018
13:18:27
я обьект обернул

мне надо миграцию сделать, чтобы дубликаты убрать

да кароче быстрее эксперимент провести)

Google
Евгений
30.08.2018
13:19:08
блин как ты в сет кладешь элементы?

здесь тоже самое

сделай new HashSet(list)

Никита?❄️
30.08.2018
13:20:02
мне надо миграцию сделать, чтобы дубликаты убрать
смотри на реализацию конкретно нужного тебе класса, там equals какой

Евгений
30.08.2018
13:20:28
еще можно повесить @EqualsAndHashcode

для ленивых

Nikita
30.08.2018
13:20:58
Inline: public class EqualizeWrapper<T> { private T t; private Function<T, ?> getKey; public EqualizeWrapper(T t, Function<T, ?> getKey) { this.t = t; this.getKey = getKey; } public T unwrap() { return this.t; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; EqualizeWrapper<T> that = (EqualizeWrapper<T>) o; return Objects.equals(getKey.apply(this.t), getKey.apply(that.t)); } @Override public int hashCode() { return Objects.hash(getKey.apply(this.t)); } }

Никита?❄️
30.08.2018
13:21:03
ну или создай класс-обертку, заэкстендься от нужного класа, override equals как тебе надо и в стриме .map юзай для получения нужного класса

совсем дикий вариант, но чё поделать)

Nikita
30.08.2018
13:21:21
дак так и есть

вопрос же был не как, а что будет)

XD

Никита?❄️
30.08.2018
13:23:26
он сделает 100500 сравнений equals

с предыдущими

и где true - те будут выкинуты из стрима

Nikita
30.08.2018
13:24:43
ну дак вот об этом и речь) первый или последний останется

по логике вещей последний)

Никита?❄️
30.08.2018
13:24:52
первый останется

но тебя это не должно волновать

они же равны)

Евгений
30.08.2018
13:25:24
они не равны

они разные!!111

Nikita
30.08.2018
13:25:43
ну с точки зрения алгоритма будут равны)

Страница 2766 из 2890