История изменений
Исправление eao197, (текущая версия) :
Способность людей ошибаться не стоит недооценивать. Плюс элементарная глупость, незнание, непонимание и т.д.
Вот, недавно, на одном из ресурсов дали ссылку на какой-то крошечный рендер. Заглядываешь в код. С одной, стороны, вроде бы нормальный C++. С другой ручное управление памятью, зачем-то ручное дергание close, повсеместное использование int-ов для индексации (причем, иногда с явным приведением size_t к int). Ну вот как такое объяснить?
Или, еще из недавнего. Попал на оценку доработок относительно недавно написанный код. В одном из мест разработчик использует шаренные между потоками данные. Только при read-only доступе к ним он mutex не захватывает, а при read-write доступе захватывает (но структуры данных там не такие, чтобы выжить при подобных обращениях). При этом остальной код более чем нормальный.
И такие внезапные помутнения доводилось видеть хоть в C++, хоть в Java, хоть в Ruby. Тут уж точно, если что-то может быть использовано не правильно, оно будет использовано не правильно.
Посему дуракоустойчивость языка — это важная характеристика. C++ здесь сильно проигрывает той же Java. А вот что будет с Rust-ом нужно будет посмотреть.
Исходная версия eao197, :
Способность людей ошибаться не стоит недооценивать. Плюс элементарная глупость, незнание, непонимание и т.д.
Вот, недавно, на одном из ресурсов дали ссылку на какой-то рендер. Заглядываешь в код. С одной, стороны, вроде бы нормальный C++. С другой ручное управление памятью, зачем-то ручное дергание close, повсеместное использование int-ов для индексации (причем, иногда с явным приведением size_t к int). Ну вот как такое объяснить?
Или, еще из недавнего. Попал на оценку доработок относительно недавно написанный код. В одном из мест разработчик использует шаренные между потоками данные. Только при read-only доступе к ним он mutex не захватывает, а при read-write доступе захватывает (но структуры данных там не такие, чтобы выжить при подобных обращениях). При этом остальной код более чем нормальный.
И такие внезапные помутнения доводилось видеть хоть в C++, хоть в Java, хоть в Ruby. Тут уж точно, если что-то может быть использовано не правильно, оно будет использовано не правильно.
Посему дуракоустойчивость языка — это важная характеристика. C++ здесь сильно проигрывает той же Java. А вот что будет с Rust-ом нужно будет посмотреть.