Информация об изменениях

Сообщение Re[4]: Прощай Rust от 14.09.2016 9:01

Изменено 14.09.2016 10:16 red75

Здравствуйте, VTT, Вы писали:

VTT>Ничего особого в плане безопасности, кроме запрета на множество ссылок на изменяемый объект, раст в общем-то не предлагает.

VTT>Зато использования (прямого или косвенного) unsafe блоков в нем избежать практически невозможно.
VTT>Кроме того, эти заявления по факту исходят в основном от самих разработчиков языка и пока что являются чисто голословными.

Случай так называемого вранья. Кроме отсутствия data race conditions, Rust обеспечивает невозможность разыменования висячих указателей и нулевых ссылок, соответственно и гарантирует отсутствие двойного освобождения памяти.

В моей программе (графика на D3D12, около 6000 строк) unsafe используется только для FFI.

Компиляторы, обеспечивающие математически-доказанное соответствие спецификации, можно пересчитать по пальцам одной руки. Так что в этом отношении Раст не выделяется. Могу добавить, что в разработке системы типов Rust участвует группа математиков, см. http://plv.mpi-sws.org/rustbelt/
Re[4]: Прощай Rust
Здравствуйте, VTT, Вы писали:

VTT>Ничего особого в плане безопасности, кроме запрета на множество ссылок на изменяемый объект, раст в общем-то не предлагает.

VTT>Зато использования (прямого или косвенного) unsafe блоков в нем избежать практически невозможно.
VTT>Кроме того, эти заявления по факту исходят в основном от самих разработчиков языка и пока что являются чисто голословными.

Случай так называемого вранья. Кроме отсутствия data race conditions, Rust обеспечивает невозможность разыменования висячих указателей и нулевых ссылок, соответственно и гарантирует отсутствие двойного освобождения памяти.

В моей программе (графика на D3D12, около 6000 строк) unsafe используется только для FFI. ДОБАВЛЕНИЕ: к хорошему быстро привыкаешь, и когда программа валится с сегфолтом вместо того, чтобы записать в лог сообщение об ошибке (в 95% процентах случаев потому что писатели графических драйверов не предусмотрели какой-то вариант использования API, и один случай был по моей вине: отсутствие ограничения типов COM-интерфейсов, передаваемых в функции, в сгенерированных биндингах к WinAPI (уже исправлено)), это очень раздражает и совершенно не добавляет тёплых чувств к С++, на котором эти самые драйвера написаны. Валить это на программистов, как обычно делается, не вижу смысла. Программисты в NVidia, Microsoft, AMD и Intel наверняка не менее опытны чем я. Кстати, вчера отправил эту самую программку в Microsoft как тест-кейс для поиска багов в GPU-based validation и Microsoft Basic Render Driver.

Компиляторы, обеспечивающие математически-доказанное соответствие спецификации, можно пересчитать по пальцам одной руки. Так что в этом отношении Раст не выделяется. Могу добавить, что в разработке системы типов Rust участвует группа математиков, см. http://plv.mpi-sws.org/rustbelt/