
OlegKrikun
20.05.2018
09:05:40
я как то попривык в джаве =)

Жабра
20.05.2018
09:05:45

OlegKrikun
20.05.2018
09:06:36
Ну просто что бы код на котлине был не блювотный приходится логику менять по сравнению с явой, иначе будет пестрить от "?"

Vladimir
20.05.2018
09:06:45

Google

Vladimir
20.05.2018
09:07:10

Жабра
20.05.2018
09:07:30

OlegKrikun
20.05.2018
09:08:51
имха, котлин сделан так что бы даже херовый дев смог не отстрелить себе ногу или чо более важное, за счёт этого страдает немного локаничность и красота языка - имха без нулабл типов можно было бы обойтись

ISkylake
20.05.2018
09:09:25
Многострочнaя лямбда для однострочной функции, List#forEach, который чуть медленее, насколько я помню

Vladimir
20.05.2018
09:09:30
Сарказм?)
Не, чего?) ?. - не хватает мне на жаве

OlegKrikun
20.05.2018
09:09:36

Жабра
20.05.2018
09:10:10

OlegKrikun
20.05.2018
09:10:52
ну и конечно же как не сказать про царицу полей =) про тернарный наш оператор (или как он там называется) =)

Vladimir
20.05.2018
09:11:11
Тернарный )

Жабра
20.05.2018
09:11:30

OlegKrikun
20.05.2018
09:11:34

Жабра
20.05.2018
09:11:36
Больше when

Google

OlegKrikun
20.05.2018
09:12:40
да он редко нужен, но я каждый раз испытываю страдания когда можно было бы коротенько в одну строчку записать, а не мутить 5 строк с ифом (и не уговаривайте меня иф писать в одну строку)
тем более кодестайл котлин-андроид это запрещают =)))

Жабра
20.05.2018
09:13:37

Quantum Harmonizer
20.05.2018
09:13:38
ага, всегда хотелось перепилить энамы

OlegKrikun
20.05.2018
09:15:06

Жабра
20.05.2018
09:15:11

OlegKrikun
20.05.2018
09:15:20

Quantum Harmonizer
20.05.2018
09:15:33

Igor
20.05.2018
09:15:51

OlegKrikun
20.05.2018
09:19:23
Каких дел?
ну это не совсем по это, а про кейс когда if без {}, но не в одну строку, когда бабезян коментит (удаляет) то что под ифом и код начинает очень странно работать. Кейснемного другой, но всё равно мне (да и судя по гкодестайлам от гугла - не только мне) стрёмно иф без скобок писать
проще как и делает гугл - запретить писать иф без {}

Igor
20.05.2018
09:20:18

OlegKrikun
20.05.2018
09:20:38
это примерно как нулб в котлине

Quantum Harmonizer
20.05.2018
09:20:40
Что делать? Запретить «бабезян»? :)

OlegKrikun
20.05.2018
09:20:43
тупо и мешает

Quantum Harmonizer
20.05.2018
09:21:14
тупо и мешает
Ну если всё делать нуллабельным, то, конечно, мешает.
Профит в том, чтобы делать не-нуллабельным :)

OlegKrikun
20.05.2018
09:22:06

Quantum Harmonizer
20.05.2018
09:22:15
А вообще, мне всегда хочется выставить наружу unmodifiableList(Arrays.asList(values())), но тоже говнокод получается.

balolam
20.05.2018
09:32:20
да что вы говорите =))))))
Если вы не смогли научится писать в парадигме где существует not nullable, то это уже ваша проблема. Для чего же завезли в Java уродливый Optional? Он лучше будет выглядеть?

Google

Dumitru
20.05.2018
09:34:19
как это:
lateinit var allRadio: NodeList
allRadio = document.querySelectorAll(".radio-inline")
превратить в Array / List из HtmlElement что бы можно было использовать .forEach{ it.onclick = {} }
как NodeList превратить в обычный котлиновский List

Алексей
20.05.2018
09:38:44

Quantum Harmonizer
20.05.2018
09:39:11

Алексей
20.05.2018
09:39:28
И это главная проблема - nullable везде, но никто не тыкает тебя в этот факт
отсюда и извечные NPE

Igor
20.05.2018
09:40:35

OlegKrikun
20.05.2018
09:41:13

balolam
20.05.2018
09:42:40

OlegKrikun
20.05.2018
09:43:54

Алексей
20.05.2018
09:45:23
а можно небольшую вводную? а то я дезориентирован, а интересно поспорить с кем-нибудь

balolam
20.05.2018
09:47:31

Alexey
20.05.2018
09:47:55
Я думаю что not nullable by default лучше nullable by default просто потому что явное лучше неявного.

OlegKrikun
20.05.2018
09:48:31

Алексей
20.05.2018
09:49:29
да-да это всё так ) но имха, это лишнее =)
Лишнее - это писать код, который работает неизвестно как. А если твой взгляд вечно цепляется за вопросы - ты рано или поздно задумаешься "А всё ли с этим кодом в порядке?"
я молчу о том, что в котлине завезли smart cast, let/also/... и прочие красивости

OlegKrikun
20.05.2018
09:50:09
Ну дык, кто мешает в java написать код который работает изветно как? =)
Так я и не говорю что не используйте котлин
я не разу не сказал что котлин плох

Google

Алексей
20.05.2018
09:50:58

balolam
20.05.2018
09:51:00
Вам видимо нравится NullPointer)

OlegKrikun
20.05.2018
09:51:07
я просто высказал своё имха что с нулб они перебздели в угоду быдлокодерам которые не осилили нилбл в яве

Alexey
20.05.2018
09:51:29
Ну конструкция Int? выглядит значительно проще, чем возня с Optional. Легче читается, плюс идет в унисон с другими популярными языками (C#, PHP)

Алексей
20.05.2018
09:51:32

OlegKrikun
20.05.2018
09:52:06

Алексей
20.05.2018
09:53:25
Если ты убеждён, что ты супермен, который может писать на Java на 100% без NPE - дело твоё:) а я привык лишний раз подстраховаться, вместо того, чтобы быть таким самоуверенным

Виталий
20.05.2018
09:53:39
Подскажите как получить тип класса у которого есть входящие параметры ?

Dumitru
20.05.2018
09:54:03

Алексей
20.05.2018
09:54:30

OlegKrikun
20.05.2018
09:54:33

Bogdan
20.05.2018
09:55:12

Виталий
20.05.2018
09:55:48
что?
val claz = Class().javaClass
но в Class() требует передать переменную, так что ошибка.

Bogdan
20.05.2018
09:55:48

OlegKrikun
20.05.2018
09:56:16

Bogdan
20.05.2018
09:56:34

Алексей
20.05.2018
09:56:36

Google

Bogdan
20.05.2018
09:56:47

OlegKrikun
20.05.2018
09:57:04

Виталий
20.05.2018
09:57:19

OlegKrikun
20.05.2018
09:57:19
в общем мне кажется я донёс своё мнение, ваше мнение я тоже понял, пойду слив у умывальника мутить =))))

Виталий
20.05.2018
09:57:58
с принимающей*

Алексей
20.05.2018
09:58:13
вот и всё

Alexey
20.05.2018
09:58:20
При nullable by default ты не можешь быть уверен что внутри цепочки вызовов где-то [ошибочно] все-таки проскочит null. Хуже того - когда конкретно твой код завалится (или код, базированный на твоем завалится) - проблема будет недостаточно локализована. Скорее всего, ты добавишь проверку на null у себя, либо же уйдешь в дебри разбираться откуда в цепочке null взялся.
Not nullable by default гарантирует идеальную точность локализации проблемы. Компилятор не пропустит передачу nullable аргумента в параметр который объявлен как not nullable.
Это элементарное quality of life улучшение которое экономит время на дебаге.

Dumitru
20.05.2018
09:58:22
нашел https://kotlinlang.org/api/latest/jvm/stdlib/org.w3c.dom/-radio-node-list/index.html

Bogdan
20.05.2018
09:58:29

Алексей
20.05.2018
09:59:11

Виталий
20.05.2018
09:59:12

OlegKrikun
20.05.2018
09:59:21
Очень может быть вы все и правы, но я редко работаю в проектах где я не один =) возможно из за этого у меня своя правда, у вас своя =)))


Alexey
20.05.2018
10:06:46
Плюс, not nullable by default облегчает взаимодействие с чужими кусками кода (и речь не о количестве работников на проекте - мы еще также используем чужие либы) которые не null-safe. Если ты пытаешься интегрировать не null-safe результат внутрь своей null-safe кодбазы, компилятор заставит тебя сделать проверку еще на самой первой точке входа, и далее ты будешь работать в полностью безопасном режиме.
Если в процессе рефакторинга эта проверка потеряется - опять же, проект даже не скомпилируется. Без null-safety, ты либо вынужден, как писали выше, пихать проверки на null при каждом обращении чтобы получить действительно безопасный код, либо же рискуешь совершенно непонятно завалится когда кто-нибудь изменит точку входа и забудет в ней сделать проверку на null.
Причем это будет самый ужасный тип баги, который "вот никогда такого не было, и в модуле который 2 года работал идеально оно таки случилось".


Жабра
20.05.2018
10:22:10
Плюс, not nullable by default облегчает взаимодействие с чужими кусками кода (и речь не о количестве работников на проекте - мы еще также используем чужие либы) которые не null-safe. Если ты пытаешься интегрировать не null-safe результат внутрь своей null-safe кодбазы, компилятор заставит тебя сделать проверку еще на самой первой точке входа, и далее ты будешь работать в полностью безопасном режиме.
Если в процессе рефакторинга эта проверка потеряется - опять же, проект даже не скомпилируется. Без null-safety, ты либо вынужден, как писали выше, пихать проверки на null при каждом обращении чтобы получить действительно безопасный код, либо же рискуешь совершенно непонятно завалится когда кто-нибудь изменит точку входа и забудет в ней сделать проверку на null.
Согласен. Ко всему прочему, not nullable by default намного логичнее, ведь когда пишешь, к примеру
val user: User
то подразумеваешь что там может лежать только User, а не null.


dimiii
20.05.2018
12:40:33
У сторонников nullable by default какая - то инверсия-перверсия приоритета. Алё, immutable, non-nullable, public - это как раз то что чаще всего встречается в коде и требует дефолтности, тут даже обсуждать нечего, это даже не вопрос вкуса

Quantum Harmonizer
20.05.2018
12:40:53
про public поспорил бы

dimiii
20.05.2018
12:41:39
я про паблик добавил для пущей весомости доводов )