Vladimir
да даже если либу, поставил требование .net standard 3.0 и все)
Bonart
Да хоть что ты пишешь. Всегда будет море кода, который на твои наллы класть хотел. А система типов НЕ препятствует.
Vladimir
ну если они 100% стандартной либы покроют и ты будешь юзать только либы .net standard 3.0
Vladimir
то все будет ок)
Bonart
Не будет. Это как с питоном 3 в лучшем случае
Анна
Не, если язык не препятствует, то кто-то обязательно будет так писать
Bonart
Bonart
Т.е. проблема не в самих not nullable типах, а в том, что для рантайма они идентичны с nullable
Bonart
И это эпик фейл
Vladimir
ну в фшарпе же тоже так, но более-менее привыкли
Bonart
А нормально сделать не?
Vladimir
видимо нормально и с обратной совместимостью не выходит)
Bonart
видимо нормально и с обратной совместимостью не выходит)
Не захотели. Смотри - делаешь обертку NotNull<T>. С неявной конвертацией в T и нулевым оверхедом. Это уже сейчас спокойно делаешь. И потом сыпешь сахару в розлин, что string это теперь NotNull<string>. И ВСЕ блин.
Vladimir
ну вот был у тебя код string s = null, как это будет работать на новой версии?
Bonart
Атрибутиками посыпаешь легаси, чтобы string могло неявно конвертиться в NotNull<string> когда там null нет по построению.
Vladislav
Vladislav
Плюсы просочились
Bonart
Vladimir
Vladimir
Vladimir
старый код не может взять и считать что string это теперь NotNull<string>
Bonart
Именно. СТАРОМУ коду это и не надо.
Vladimir
о_О
Vladimir
у меня есть проект сейчас в котором есть такая строчка
Vladimir
получается я не смогу апгрейднуться на 8.0?
Bonart
Смотри - старый код опирается на нуллабельность всего ссылочного
Bonart
Ввод НЕнуллабельности обратную совместимость по исходникам ломает в любом случае. Не надо иллюзий.
Vladimir
сейчас ничего не ломается, только варнинги будут
Bonart
Vladimir
=) видишь, ты все-таки хочешь обратную совместимость сломать
Vladislav
Vladimir
да, и чтобы пофиксить это предложил сломать обратную совместимость)
Vladimir
Vladislav
не понял коммент =(
Прикол с типами только для компилятора уже есть для типов значений
Vladislav
И все работает
Vladimir
Igor
Лучше бы сломали нафиг, но например нет кор 3.0 можно было отключить где-нибудь, например в App.config, а в нет кор 5.0 уже нельзя
Ayrat
Я потерял суть вашего спора
Ayrat
По-моему вы про одно и то же. Но это не точно
Ayrat
Ayrat
Обмазывай атрибутами свой код)
Bonart
Я потерял суть вашего спора
Нет. Народ не догоняет, что я считаю костылем, когда тип NotNull для компилятора и очень даже null в рантайме
Ayrat
Но чот атрибуты там сложнее теорката
Ayrat
Ayrat
То есть фича добавляет кучу бойлерплейта
Bonart
Надеюсь им там уже хуев в панамку накидали
Bonart
Андерс, вернись, мы все просрали!
Vasily
Ну я прочитал до конца
Vasily
Скажу честно
x
Ayrat
Bonart
не надо!
Хейлсберга не надо? Еретик!
Vasily
Фича направлена на job security
Vasily
И унижение рядовых гребцов
x
Bonart
Я бы сказал на тотальное унижение не только рядовых
Vasily
Многие будут тешить самолюбие на собеседованиях
Vasily
Путем навешивания на метод кучи атрибутов
Vasily
И вопрос типа как поведет себя код?
Bonart
да пребудет с вами Сайм
Сайм хорош, но Хейлсберг умеет делать из говна конфету. Typescript почти даже не пахнет, хотя внутри там....
Vasily
В общем, долбоебам раздолье
Vasily
А работать, как обычно, будет некому
Vasily
С другой стороны
Bonart
Vasily
Возможно, народ начнет уходить в фшарп
Bonart
Хоть какая-то польза
Bonart
x
Ilya
Не начнёт. Это так не работает. Проще не использовать эту фичу. Жили с NRE и дальше будем.