Size: a a a

Kotlin Community

2020 February 14

IS

Ignat Simonenko in Kotlin Community
Alexander Nozik
Кто знает, на что Бреслва хочет заменить компаньен и чего ему там не нравится?
вроде уже обсудили, но еще накину
https://twitter.com/abreslav/status/1228168384904187906
источник

AN

Alexander Nozik in Kotlin Community
Ну так не понятно, что вместо этого.
источник

AN

Alexander Nozik in Kotlin Community
Про недостатки понятно, но если писать идеоматичный котлин код, то я их особо не чувствую
источник

VP

Vladimir Petrakovich in Kotlin Community
Интересно, кто такие Java-пользователи
источник

AA

Anton Arhipov in Kotlin Community
Vladimir Petrakovich
Интересно, кто такие Java-пользователи
Программисты для котлина пользователи
источник

AA

Anton Arhipov in Kotlin Community
Необычно, когда тебя юзером назвали, да? :))
источник

VP

Vladimir Petrakovich in Kotlin Community
Anton Arhipov
Необычно, когда тебя юзером назвали, да? :))
Не, это понятно, непонятно как пользователи Java связаны с котлином. То есть какое значение вообще имеют подходы, к которым они привыкли в другом языке)
источник

AA

Anton Arhipov in Kotlin Community
Vladimir Petrakovich
Не, это понятно, непонятно как пользователи Java связаны с котлином. То есть какое значение вообще имеют подходы, к которым они привыкли в другом языке)
Привычки же. Способы делания чего либо программистом который перешёл с жавы в котлин
источник

AA

Anton Arhipov in Kotlin Community
Основные пользователи котлина сейчас это программисты с опытом жавы
источник

DB

Dmitry B in Kotlin Community
Здравствуйте. Хотел бы услышать мнение: по вашему котлиновский подход к дженерикам действительно лучше чем в джаве или это скорее маркетинговый буллшит? Я почитал про котлиновский подход и не увидел каких-то явных преимуществ. В целом все выглядит так же сложно как и в java. При этом если нужно будет взаимодействовать с java-кодом, теперь надо знать не один, а два подхода для работы с дженериками.
Спрашиваю скорее из общего интереса и для понимания теории, чем для практических целей
источник

VP

Vladimir Petrakovich in Kotlin Community
Anton Arhipov
Основные пользователи котлина сейчас это программисты с опытом жавы
Так им всегда можно объяснить, что надо забыть про статики, когда ты пишешь на котлине.
Ну то есть это не тянет на недостаток. Вот проблемы со скоупом - да.
источник

RI

Ruslan Ibragimov in Kotlin Community
Dmitry B
Здравствуйте. Хотел бы услышать мнение: по вашему котлиновский подход к дженерикам действительно лучше чем в джаве или это скорее маркетинговый буллшит? Я почитал про котлиновский подход и не увидел каких-то явных преимуществ. В целом все выглядит так же сложно как и в java. При этом если нужно будет взаимодействовать с java-кодом, теперь надо знать не один, а два подхода для работы с дженериками.
Спрашиваю скорее из общего интереса и для понимания теории, чем для практических целей
Да самое простое - в java дженерики неразрешимы, а в kotlin скорее всего разрешимы (пока не доказано). https://raw.githubusercontent.com/namin/unsound/master/doc/unsound-oopsla16.pdf

Ну и в целом на практике очень просто работать с дженериками в котлин, интуитивно и удобно (тот же in/out vs extends/super). А если почитать документацию, то там все хорошо разобрано: https://kotlinlang.org/docs/reference/generics.html#variance Если для вас документация это маркетинговый булшит, то не знаю даже что в замен предложить.
источник

VP

Vladimir Petrakovich in Kotlin Community
Dmitry B
Здравствуйте. Хотел бы услышать мнение: по вашему котлиновский подход к дженерикам действительно лучше чем в джаве или это скорее маркетинговый буллшит? Я почитал про котлиновский подход и не увидел каких-то явных преимуществ. В целом все выглядит так же сложно как и в java. При этом если нужно будет взаимодействовать с java-кодом, теперь надо знать не один, а два подхода для работы с дженериками.
Спрашиваю скорее из общего интереса и для понимания теории, чем для практических целей
Там не то чтобы много отличий, в основном просто удобнее за счёт declaration-site variance
источник

DB

Dmitry B in Kotlin Community
Ruslan Ibragimov
Да самое простое - в java дженерики неразрешимы, а в kotlin скорее всего разрешимы (пока не доказано). https://raw.githubusercontent.com/namin/unsound/master/doc/unsound-oopsla16.pdf

Ну и в целом на практике очень просто работать с дженериками в котлин, интуитивно и удобно (тот же in/out vs extends/super). А если почитать документацию, то там все хорошо разобрано: https://kotlinlang.org/docs/reference/generics.html#variance Если для вас документация это маркетинговый булшит, то не знаю даже что в замен предложить.
Я просто спросил. Потому что в принципе маркетингового буллшита достаточно вокруг
источник

DB

Dmitry B in Kotlin Community
Vladimir Petrakovich
Там не то чтобы много отличий, в основном просто удобнее за счёт declaration-site variance
А можно привести пример, пожалуйста, чем именно declaration-site удобнее. Просто я понял там все равно также есть use-site
источник

VP

Vladimir Petrakovich in Kotlin Community
Dmitry B
А можно привести пример, пожалуйста, чем именно declaration-site удобнее. Просто я понял там все равно также есть use-site
Тем, что можно для любого класса сказать, что "этот тип только на выход", и его пользователю не придётся обмазываться Foo<? extends T> повсюду.
Просто сравните сигнатуры addAll у коллекций:
boolean addAll(Collection<? extends E> c);
vs
fun addAll(elements: Collection<E>): Boolean
В первом случае нельзя просто написать "Collection<E>", потому что Java не поймёт, что E в данном случае - ковариантный параметр, и там спокойно может быть подкласс E.
P.S. Глянул доку по дженерикам - а там как раз этот пример.
источник

VP

Vladimir Petrakovich in Kotlin Community
В общем, дока вполне доходчиво объясняет, в чём суть.
источник

DB

Dmitry B in Kotlin Community
Хорошо, спасибо большое!
источник

AN

Alexander Nozik in Kotlin Community
Dmitry B
Здравствуйте. Хотел бы услышать мнение: по вашему котлиновский подход к дженерикам действительно лучше чем в джаве или это скорее маркетинговый буллшит? Я почитал про котлиновский подход и не увидел каких-то явных преимуществ. В целом все выглядит так же сложно как и в java. При этом если нужно будет взаимодействовать с java-кодом, теперь надо знать не один, а два подхода для работы с дженериками.
Спрашиваю скорее из общего интереса и для понимания теории, чем для практических целей
Вы про что, про отсуствие raw generics или про declaration site variance? Обе штуки упрощают работу с дженериками, если что.
источник

AN

Alexander Nozik in Kotlin Community
Dmitry B
Я просто спросил. Потому что в принципе маркетингового буллшита достаточно вокруг
Ну совсем проблема не решается, там и c declaration site variance можно огрести кучу проблеме и рекурсивные дженерики все равно больно, но проще, чем в java
источник