Борцы с unsafe забывают, что это всё чудесно работает до первого обращения вне приложения, то бишь в стороннее приложение/БД. Тот же PostgreSQL может вернуть валидную строку даты достаточно большим диапазоном видов, если не приводить тип на выдаче принудительно, ну и с числами там мемы, так как системы типов между Rust и этим диалектом SQL сильно расходятся, ибо SQL не знает такого типа как массив нативно, для неё это всё строка с разными правилами парсинга, а не разные структуры. То же самое касается условного ответа по API или чтения XML-шины.
Во всех этих ситуация, Rust вроде как по-дефолту просто упадет (давно не писал на нем и не помню это было поведение с коробки или это я чего настроил) при несоответствии типов, но это такой себе safe, о котором любят умалчивать и не вспоминать)
Все штуки на грани интерфейсного общения двух независимых высокоабстрактных юнитов не могут быть type-safe.
А потом ты такой взял библиотеку с подобной хернёй под капотом, передаёшь параметры в метод. А TypeScript тебе говорит - несовместимы твои параметры, иди разгадывай в каком из 10 extend-ов и &-ов оно определилось да переопределилось. И никакой понтовый редактор кода тебе не подскажет, какой параметр от Рюриковичей, а какой от финно-угорских племён.
Фу Any. Пахнешь слабостью. Хорошо не на rust пишешь, а то борцы с unsafe обоссали бы
Борцы с unsafe забывают, что это всё чудесно работает до первого обращения вне приложения, то бишь в стороннее приложение/БД. Тот же PostgreSQL может вернуть валидную строку даты достаточно большим диапазоном видов, если не приводить тип на выдаче принудительно, ну и с числами там мемы, так как системы типов между Rust и этим диалектом SQL сильно расходятся, ибо SQL не знает такого типа как массив нативно, для неё это всё строка с разными правилами парсинга, а не разные структуры.
То же самое касается условного ответа по API или чтения XML-шины.
Во всех этих ситуация, Rust вроде как по-дефолту просто упадет (давно не писал на нем и не помню это было поведение с коробки или это я чего настроил) при несоответствии типов, но это такой себе safe, о котором любят умалчивать и не вспоминать)
Все штуки на грани интерфейсного общения двух независимых высокоабстрактных юнитов не могут быть type-safe.
Люблю незащищенный
А потом ты такой взял библиотеку с подобной хернёй под капотом, передаёшь параметры в метод. А TypeScript тебе говорит - несовместимы твои параметры, иди разгадывай в каком из 10 extend-ов и &-ов оно определилось да переопределилось. И никакой понтовый редактор кода тебе не подскажет, какой параметр от Рюриковичей, а какой от финно-угорских племён.
Мое любимое
Как же сложно жить пиздец
А вот жить вас никто не заставляет