@kotlin_lang

Страница 602 из 982
Mayor
22.03.2018
22:32:57
рил удобно

balolam
22.03.2018
22:33:07
Народ, у вас оффтоп пошел, конфа по Kotlin. Пишите хотя бы в одно сообщение)

Va
22.03.2018
22:33:11
нужно просто научится, привыкнуть, потом поймешь что это удобно
хрен знает, на ноуте это полезно очень редко. сомневаюсь, что на телефоне как-то иначе

вообще, оффтопим

Google
Va
22.03.2018
22:33:41
нельзя так

Тимур
23.03.2018
05:58:30
Можно все автогенеренные методы на этот механизм перевести, включая data.toString и data.equals Вдруг тебе не подходит стандартный паттерн toString, взял и сделал свой.

Boris
23.03.2018
06:05:28
тут такое дело, что в теории это звучит очень разумно, но нужно понимать, что для такого механизма на порядок сложнее делать тулинг и повышается сложность языка. Я так думаю, что из за этого и макросы не завозят. Хотя какой-то инструмент генерации как плагин к компилятору, но сгенерированный код будет сложно поддерживать в иде, автодополения всякие и тд

Тимур
23.03.2018
06:20:41
Imho это не намного сложнее уже существующего annotation processing. По сути это очень схожий механизм, но дающий большую гибкость и удобство. Проблема с макросами, что они могут встретиться где угодно и загрязняют весь язык. Сложно бороться с языком, где можно написать #define true false. А тут все достаточно аккуратно локализовано. Ну да, есть такой-то метод equals, он генерится по такому то шаблону, а не написан руками, но это его личные особенности. Это никак не влияет на весь остальной код, который как вызывал этот equals, так и вызывает, и ему по барабану что у него внутри.

Boris
23.03.2018
06:25:25
так аннотойшн процессинг и не поддерживается в общем случае

нигде

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

Тимур
23.03.2018
06:29:40
Проблема существующих языков, по крайней мере с теми, с которыми я сталкивался, что они имеют крайне слабые возможности для метапрограммирования. По сути даже сериализацию нельзя сделать с существующими языковыми возможностями, приходится наворачивать внешние тулы. И annotation processing из существующих тулов в этом плане выглядит самым удобным и разумным подходом. Но у него, к сожалению, ограниченные возможности. Если б был такой механизм с аннотациями, то в плане метапрограммирования это был бы просто космос.

Boris
23.03.2018
06:31:10
ну вроде обещают что-то на независимом от платформы уровне сделать

со временем

Quantum Harmonizer
23.03.2018
07:06:57
вот, блин, на гомоиконных языках это, наверное, не проблема

Igor
23.03.2018
07:23:56
Ну да макросы там писать хорошо, а вот все остальное… “на любителя”

Google
Alexey
23.03.2018
07:31:05
Ну вобщем с аннотациями и у нам те же проблемы

Тимур
23.03.2018
07:36:43
Если кодогенерация на аннотациях будет проходить как одна из фаз обычной компиляции, то не надо никаких плагинов.

Mikhail
23.03.2018
07:48:03
Если кодогенерация на аннотациях будет проходить как одна из фаз обычной компиляции, то не надо никаких плагинов.
и придется перекомпилировать каждое изменение в коде. Нет уж, спасибо, я уже на AutoValue пописал немного

а потом еще че нить куда нибудь не так сгенерируется - и привет clean build, прощай фокус на задаче и непрерывный workflow

Boris
23.03.2018
07:51:28
Да, понятно почему этого нет в языке

Инлайн функции очень лайтовый вариант макросов

К слову, кодогенерировать лучше на лету, тогда всё гарантии интерфейсов сохраняются, а генерируешь реализацию

Нет проблем с иде

Можно и во время компиляции, но все равно придерживаться этого правила: генерировать только реализацию и никогда интерфейсы и всё будет ок

Alexey
23.03.2018
07:57:04
А как сказать идеи что тут будет сгенерирована реализация?

Boris
23.03.2018
07:57:15
А зачем?

Boris
23.03.2018
07:58:03
Реализацию не надо инстанцировать руками

Vladimir
23.03.2018
07:58:15
На android всякие Room и Dagger же так и работают?

Тимур
23.03.2018
07:59:26
Ну идея же вроде не из компилятора берёт инфу о коде?
идея нет, она сама исходники анализирует

Alexey
23.03.2018
08:01:28
По сути да
Потому что их иде поддерживает

идея нет, она сама исходники анализирует
Ну вот я и говорю, что без плагинов хрен нормально поразрабатываешь, можно смело кодить в виме

Google
Mikhail
23.03.2018
08:06:52
На android всякие Room и Dagger же так и работают?
но все равно, в Room, Dagger, Autovalue и иже с ними есть момент, когда надо сгенерированную реализацию связать с интерфейсом. В Dagger это биндинг DaggerApplicationComponent как минимум, в AutoValue - указание AutoValue_<имя обьекта> в фабричных методах. В Room тоже где-то такое есть

Тимур
23.03.2018
08:08:28
А если делать макросы как в скалке сделали? Мол все локализовано в одном месте и нельзя сделать что то типа #define true false. В итоге макрос можно рассматривать как чистую функцию. А вот с аннотациями надо еше писать плагины к ide
Я не очень в курсе что там в скале Что мне нравится в кодогенерации на основе аннотаций - что этот подход не требует вносить какую-то сложную поддержку в язык, никаких марсианских конструкций, сложных для парсинга человеками Вместо сложной языковой фичи, просто отдельная штука, прикрученная сбоку, которая выдает тебе незатейливые структуры с метаинфой И ты на обычном языке обычными if-ами и for-ами генеришь то что тебе надо И все это просто, как табуретка: делай раз, делай два, делай три. Тот же reflection, только в complie time.

Тимур
23.03.2018
09:09:00
Тимур Бухараев: Ну она будет знать, что если такая-то аннотация стоит, то такой то метод будет сгенерирован и не надо ругаться на его отсутствие.

Она может запустить код генератора и посмотреть на результат.

Денис
23.03.2018
09:10:15
Только как иде поймет генерацию?
Для идеи есть ломбок-плагин же, например. Мне не очень нравится усложнение тулинга, которое следует за этим подходом, но это решаемо на практике, и примеры есть.

Тимур
23.03.2018
09:12:24
Если ограничить scope куда генератор может дотянуться, чтобы он не лазил куда попало, а видел только мету и outputstream для будущего тела метода, то запустить генератор можно быстро и просто.

Maxim
23.03.2018
09:15:30
ну я бы саппортил, если б там было хотя бы 10%
А, т.е. если iOS пользуются 10% пользователей, а андроид аж 90%, то на иОС можно потехоньку забивать? Лень как то для этих 10% на отдельную платформу приложение разрабатывать

Alexey
23.03.2018
09:17:30
Maxim
23.03.2018
09:18:23
Некорректный пример, всё тяки яблочные пользователи больше бабла завозят разработчикам по статистике
Ну так и те, кто флагманами на последнем андроиде пользуются тоже бабла не жалеют, не?

Mayor
23.03.2018
09:18:27
Mayor
23.03.2018
09:19:08
у меня с iOS клики прилетают с 1-2.50$ за 1 клик)

Dmitry
23.03.2018
09:19:10
А, т.е. если iOS пользуются 10% пользователей, а андроид аж 90%, то на иОС можно потехоньку забивать? Лень как то для этих 10% на отдельную платформу приложение разрабатывать
Зависит от юзкейса. За пиксели яблочные 10% платят больше, чем андроидовые 90%. А вот в Московской электричке я уже слышал обьявление, что билет можно купить теперь и приложении под платформу андроид. Про иос ни слова - нефига под них отдельное приложение пилить, и так покупают билеты -)

Quantum Harmonizer
23.03.2018
09:20:09
Mayor
23.03.2018
09:21:11
люди просто зачастую и покупают андроид-телефоны чтоб скачивать бесплатно апкшечки с хрома

Maxim
23.03.2018
09:21:12
Я о том, что принятие решения о том, саппортить или нет не стоит исходя из статистики. Если лень саппортить, то не надо искать причин.

Google
Mayor
23.03.2018
09:21:22
не считаю это плюсом для разработчиков

Костя
23.03.2018
09:21:26
просто интерес

Quantum Harmonizer
23.03.2018
09:21:31
Сочувствую
да ну, мне классно

это какой ?
Nexus 5X. Понятно, что он из прошлого, но это лучше любого последнего самсунга или чего-то такого.

Mayor
23.03.2018
09:22:47
да, самсунг вообще не понятно зачем покупают

Костя
23.03.2018
09:23:00
у меня был он, крутой девайс, мне очень нравился, жалко только словил бутлуп

там бывает у них это (

Quantum Harmonizer
23.03.2018
09:23:11
да, самсунг вообще не понятно зачем покупают
ну пылесосы у них норм, вдруг и телефоны хорошие?

Mayor
23.03.2018
09:23:24
лежит рядом S6 галактика, работает хуже чем 5й айфон

Mayor
23.03.2018
09:23:56
а приложения которые были вшиты вендором начали скачивать сами по себе хрен пойми что, и добавили рекламу на экран блокировки

Boris
23.03.2018
09:24:06
Правда к котлину никакого отношения не имеет

Mikhail
23.03.2018
09:24:18
Для идеи есть ломбок-плагин же, например. Мне не очень нравится усложнение тулинга, которое следует за этим подходом, но это решаемо на практике, и примеры есть.
я слышал, что JB нормальный туллинг для скалы не завезли не потому, что им лень, а потому что там зоопарк либ с макросами, кодогенерацией и плагинами к ним

Quantum Harmonizer
23.03.2018
09:24:38
лежит рядом S6 галактика, работает хуже чем 5й айфон
звучит как ужасающий приговор) ибо шестой айфон, по моим ощущениям, неюзабелен вообще

Vitalii
23.03.2018
09:24:50
Mayor
23.03.2018
09:24:52
я сам 6м пользуюсь))

Mayor
23.03.2018
09:25:15
не могу не согласится что он дитчайше лагает

Google
Boris
23.03.2018
09:25:43
я слышал, что JB нормальный туллинг для скалы не завезли не потому, что им лень, а потому что там зоопарк либ с макросами, кодогенерацией и плагинами к ним
Да, ломбок это несколько аннотаций, которые можно просто перебрать. В общем случае это на порядок сложнее

Mayor
23.03.2018
09:25:44
но глянуть на S6 того же года (а вроде и позже), начинаешь понимать что лагает уже и не так дико

Костя
23.03.2018
09:25:52
звучит как ужасающий приговор) ибо шестой айфон, по моим ощущениям, неюзабелен вообще
у девушки такой, вроде как вполне неплохо, если ещё юзать аккуратно, следить )

Mikhail
23.03.2018
09:25:56
Лг этим вообще грешит
Это проблема была 6P и 5X нексусов, у меня 6P вон сгорел также. Гуглы даже тем кто из их стора покупал эти девайсы меняли на пиксели первого поколения

Konstantin
23.03.2018
09:26:14
звучит как ужасающий приговор) ибо шестой айфон, по моим ощущениям, неюзабелен вообще
Ну такое. Айфон в целом получше самсунгов, если привыкнуть. Но 6 уже староват

Mayor
23.03.2018
09:26:46
6/6плюс вообще такие переходные телефоны, я изначально не видел в них смысла

до сих пор не могу пользоватся одной левой рукой телефоном, пока ем например

Sergey
23.03.2018
09:28:20
@kotlin_mobile <- welcome

Boris
23.03.2018
09:28:32
Думаю телефоны можно обсуждать в мобильном чате ?

Mikhail
23.03.2018
09:30:16
ну чтож вы так плохо к оффтопу относитесь? Тут же не слак с каналами на любой вкус

Boris
23.03.2018
09:31:20
ну чтож вы так плохо к оффтопу относитесь? Тут же не слак с каналами на любой вкус
Я думал ты скажешь: что же вы так плохо о мобильном канале думаете ?

Mikhail
23.03.2018
09:35:35


Sergey
23.03.2018
09:37:39
а чо бекендеры в мобилках не шарят? ?

Mikhail
23.03.2018
09:38:28
а чо бекендеры в мобилках не шарят? ?
не, они-то шарят, но непорядок, о мобилках надо в специальном чатике про мобилки разговаривать)

Alexandr
23.03.2018
09:49:16
Всем привет. У меня есть пара Pair<ArrayList<Assessment>, ArrayList<Assessment». Можно как-то в одном цикле пройти сначала по first, а потом по second ??

Руслан
23.03.2018
09:50:43
(pair.first + pair.second).map {}

Vyacheslav
23.03.2018
09:52:58
Парни, начал фигачить проект на джаве, оказалось нужно было на котле

как быстро его переевести в котл

Руслан
23.03.2018
09:53:19
ctrl+shift+k

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