The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Выпуск языка программирования Rust 1.39"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для слежения за появлением новых сообщений в нити, нажмите "Проследить за развитием треда".
. "Выпуск языка программирования Rust 1.39" +/
Сообщение от Ordu (ok), 10-Ноя-19, 17:25 
> То есть, психологически проще постоянно писать аккуратно и осмотрительно, чем переключаться "тут safe, тут unsafe, а тут рыбу заворачивали".

Нет. Психологически невозможно выдерживать бдительность на постоянно высоком уровне. Концентрация внимания всегда плавает, это замерялось неоднократно в экспериментах. Это ведь очень важная штука в некоторых профессиях, в которых секундное ослабление внимания может привести к катастрофе. В тех профессиях, людей тренируют специально, и внимание им тренируют, и вырабатывают такие навыки привычки, чтобы максимум деятельности был бы автоматизирован и происходил бы вне зависимости от внимания.

Программистов никто не тренирует этому, поэтому они гораздо хуже всяких там пилотов, диспетчеров в авиации, и прочих. Те, прям скажем, не идеальны, программисты же среднестатистически плохи.

Чтобы минимизировать количество ошибок, тебе надо писать код так, чтобы разделять зоны ответственности между разными кусками кода. Скажем, есть динамический массив, есть его реализация, есть API к этой реализации. Инварианты динамического массива -- size>=len, например, -- это ответственность реализации динамического массива, и клиентский код должен быть лишён возможности эти инварианты нарушить. Если ты, реализуя динамический массив, осознал какие инварианты ты должен соблюдать, и сделал всё грамотно, то дальше, когда ты используешь динамический массив, тебе не надо бояться испортить динамический массив. Если ты сделал неграмотно реализацию, то будешь ли ты бояться или не будешь, это никак не спасёт от сегфолта вызванного неграмотной реализацией.

Когда ты разделяешь ответственность за корректность таким образом, тебе меньше надо удерживать во внимании, более того, есть триггер: unsafe. Если ты не можешь что-то сделать без unsafe, то вот тут надо думать. Можно остановиться, пойти покурить и подумать минут десять или даже полчаса, о том, что можно сломать используя unsafe так, как тебе хочется.

Это позволит тебе более эффективно расходовать свои ресурсы внимания и времени. Это позволит более эффективно работать даже с C, но в C нет такого триггера как unsafe, там проще не заметить момент, когда пора остановиться и подумать.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск языка программирования Rust 1.39, opennews, 09-Ноя-19, 09:25  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру