Size: a a a

Programming Offtop

2021 March 01

KK

Kirill Knize in Programming Offtop
Моя любимая картинка про политкомпас.
источник

I

Ilmir in Programming Offtop
Kirill Knize
Моя любимая картинка про политкомпас.
У меня только две картинки про политкомпас. Эта и вот эта.
источник

I

Ilmir in Programming Offtop
источник

KD

Konstantin Dovnar in Programming Offtop
Кто-нибудь может объяснить мне, это какой-то недочет или продуманный шантаж языка?

В Dart’е, при включенном null-safety, если у нас есть immutable class с final полями, то после проверки поля на налл, нам всё равно приходится вставлять !. для обращения к полю.
источник

KD

Konstantin Dovnar in Programming Offtop
Бедный котлин, без sound null safety, умеет понимать, что если поле файнал, то коль оно не налл, то и дальше оно не налл, а тут вот такая дрянь, от которой кровь в жилах покрывается NPE.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Кто-нибудь может объяснить мне, это какой-то недочет или продуманный шантаж языка?

В Dart’е, при включенном null-safety, если у нас есть immutable class с final полями, то после проверки поля на налл, нам всё равно приходится вставлять !. для обращения к полю.
Это тебя просто котлин разбаловал. В свифте, к примеру, тоже такого нет.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Это тебя просто котлин разбаловал. В свифте, к примеру, тоже такого нет.
Бля, как так то?
Казалось бы, элементарное приведение типов, но нет:(
Выглядит будто какая-то глупая недоработка
источник

AM

Andrew Mikhaylov in Programming Offtop
Andrew Mikhaylov
Это тебя просто котлин разбаловал. В свифте, к примеру, тоже такого нет.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Бля, как так то?
Казалось бы, элементарное приведение типов, но нет:(
Выглядит будто какая-то глупая недоработка
Скорее flow analysis. Компилятор по ходу выполнения программы должен самостоятельно уточнять типы в зависимости от того, какой путь до данного места в коде был пройден, какие контракты явные или неявные на типы присутствовали. Я не думаю, что это простая в имплементации штука, но утверждать не могу.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Скорее flow analysis. Компилятор по ходу выполнения программы должен самостоятельно уточнять типы в зависимости от того, какой путь до данного места в коде был пройден, какие контракты явные или неявные на типы присутствовали. Я не думаю, что это простая в имплементации штука, но утверждать не могу.
Возможно.
Просто, коль язык умеет определять, что if(a is AType) => a в рамках этого if будет AType, значит ему не должно составлять труда понять, что if(s != null), тогда s в рамках if является не наллабл тайпом.
источник

KD

Konstantin Dovnar in Programming Offtop
Однако, я не занимался системами типов и уж тем более чем-то уровня серьезных языков программирования. Возможно это какая-то нетривиальная задача. Я сужу со стороны пользователя.
источник

AM

Andrew Mikhaylov in Programming Offtop
А, то есть там можно сделать if(a is String && a.length > 0), но нельзя if(a != null && a.length > 0) ? :)
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
А, то есть там можно сделать if(a is String && a.length > 0), но нельзя if(a != null && a.length > 0) ? :)
Насколько я знаю да.
Но я уже не за компом, не могу проверить на практике.
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
Насколько я знаю да.
Но я уже не за компом, не могу проверить на практике.
Ну если так, тогда, очевидно, недоработка. Ты ж сам выше говорил, что наллабилити там сбоку прилеплена, возможно, не протянули ещё везде, где надо. Тем более юзеры всегда могут восклицательный знак ляпнуть, так что не критикал 🌚
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
Ну если так, тогда, очевидно, недоработка. Ты ж сам выше говорил, что наллабилити там сбоку прилеплена, возможно, не протянули ещё везде, где надо. Тем более юзеры всегда могут восклицательный знак ляпнуть, так что не критикал 🌚
Беда в том, что там как раз на днях вышел стабильный API надо сейфти, который уже не должен меняться.

Возможно, конечно, я тупанул и не обновился на пьяную голову, но если окажется, что в стейбл полетит такое, то это лютый стыд.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
А, то есть там можно сделать if(a is String && a.length > 0), но нельзя if(a != null && a.length > 0) ? :)
А в свифте такого нет?
источник

AM

Andrew Mikhaylov in Programming Offtop
Konstantin Dovnar
А в свифте такого нет?
А я уже вырубил машину :( Завтра гляну, если вспомню.
источник

KD

Konstantin Dovnar in Programming Offtop
Andrew Mikhaylov
А я уже вырубил машину :( Завтра гляну, если вспомню.
источник

AI

Arkadii Ivanov in Programming Offtop
Ляпнуть восклицательный знак, а потом убрать проверку на null. Мммм))
источник

AD

Aleksey D. in Programming Offtop
Arkadii Ivanov
Ляпнуть восклицательный знак, а потом убрать проверку на null. Мммм))
ссзб)
источник