Задать вопрос
@PrayHero

Хайп вокруг ЯП Rust и C?

Добрый вечер!
Насколько критичной проблемой для программиста является ручное управление памятью, которое называют недостатком языка Си? Новый язык программирования Раст, как заявляют, лишен этого недостатка, но разве число ошибок в программе зависит именно от наличия или отсутствия ручного управления памятью, разве общее число ошибок не перераспределяется на другие недостатки программы или программиста после принудительного автоматического искоренения ошибок с границами, и не являются ли ошибки с памятью ошибками программиста, а не компилятора и языка программирования, допущенными в связи с неточностями в формулировке алгоритма с использованием языка, которые вылились бы в другое русло, не будь этой возможности ошибочного использования памяти?
  • Вопрос задан
  • 653 просмотра
Подписаться 1 Простой 1 комментарий
Ответ пользователя Василий Банников К ответам на вопрос (5)
vabka
@vabka Куратор тега Rust
По порядку:
Насколько критичной проблемой для программиста является ручное управление памятью, которое называют недостатком языка Си?

С неправильным управлением памятью связано очень много ошибок. Например в хроме вроде около половины CVE с этим связано. Ещё можно вспомнить HeartBleed в OpenSSL, который тоже связан с неправильным управлением памятью.

(Дальше какое-то ужасно длинное предложение, которое я разбил на части)
Новый язык программирования Раст, как заявляют, лишен этого недостатка

Да
разве общее число ошибок не перераспределяется на другие недостатки

1. Самые сложные в исправлении ошибки - кривое управление памятью и многопоточность, обе их Rust Решает
2. Нет, ошибки не перераспределяются, это же не тараканы.
являются ли ошибки с памятью ошибками программиста

Если управление памятью ручное, то это ошибки, которые допустил разработчик.
Если управление памятью автоматическое (хоть через GC, хоть через Borrow checker), то это ошибка компилятора/рантайма/языка.

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

Не обязательно.

В целом вопрос очень абстрактный и является скорее поводом для дискуссий. Попробуйте дать более конкретный пример, где ошибка управления памятью превращается в какую-то другую ошибку.
Ответ написан
Комментировать