История изменений
Исправление
vertexua,
(текущая версия)
:
Если бы Linux был бы написан на Rust, то там было бы полно unsafe и подобных багов.
Нет, была бы другая архитектура. Unsafe был бы изолирован в отдельном модуле взаимодействия с железом. Внаружу торчал бы safe API, который вызывающей стороне значительно сложнее вызвать неправильно, а то и вообще невозможно если тщательно продумать типы.
Так сделана стандартная библиотека если что.
Многие не понимают идею сейф. Это не какой-то религиозный принцип чтобы компилятор за тебя нашел все баги.
Это просто дополнительный инструмент, расширение type system, чтобы между модулями, написанными одним или несколькими людьми, коммуницировать больше.
Вполне нормально писать короткие unsafe фрагменты, которые через safe врапер рассказывают остальному миру как ними пользоваться
Процессоры - unsafe, это нельзя обойти. Rust делает unsafe нижний уровень. С делает всё уровни.
Исправление
vertexua,
:
Если бы Linux был бы написан на Rust, то там было бы полно unsafe и подобных багов.
Нет, была бы другая архитектура. Unsafe был бы изолирован в отдельном модуле взаимодействия с железом. Внаружу торчал бы safe API, который вызывающей стороне значительно сложнее вызвать неправильно, а то и вообще невозможно если тщательно продумать типы.
Так сделана стандартная библиотека если что.
Многие не понимают идею сейф. Это не какой-то религиозный принцип чтобы компилятор за тебя нашел все баги.
Это просто дополнительный инструмент, расширение type system, чтобы между модулями, написанными одним или несколькими людьми, коммуницировать больше.
Вполне нормально писать короткие unsafe фрагменты, которые через safe врапер рассказывают остальному миру как ними пользоваться
Исправление
vertexua,
:
Если бы Linux был бы написан на Rust, то там было бы полно unsafe и подобных багов.
Нет, была бы другая архитектура. Unsafe был бы изолирован в отдельном модуле взаимодействия с железом. Внаружу торчал бы safe API, который вызывающей стороне значительно сложнее вызвать неправильно, а то и вообще невозможно если тщательно продумать типы.
Так сделана стандартная библиотека если что.
Исправление
vertexua,
:
Если бы Linux был бы написан на Rust, то там было бы полно unsafe и подобных багов.
Нет, была бы другая архитектура. Unsafe был бы изолирован в отдельном модуле взаимодействия с железом. Внаружу торчал бы safe API, который вызывающей стороне значительно сложнее вызвать неправильно, а то и вообще невозможно если тщательно продумать типы.
Так сделана стандартная библиотека
Исходная версия
vertexua,
:
Если бы Linux был бы написан на Rust, то там было бы полно unsafe и подобных багов.
Нет, была бы другая архитектура. Unsafe был бы изолирован в отдельном модуле взаимодействия с железом. Внаружу торчал бы safe API, который вызывающей стороне значительно сложнее вызвать неправильно, а то и вообще невозможно если тщательно продумать типы