> Rust защищает от ошибок, типа переполнений, потом выясняется что только от элементарных, которые в C++ и так сразу ловятся статическими анализаторами.А статические анализаторы прям всемогущи? Загляни в чендж лог любого из них - сразу будут "добавлены такие-то и такие проверки". Те же ребята из pvs studio хвалятся тем, что всё время находят косяки в крупных и не очень опенсорсных проектах. В расте же благодаря внутренней семантике языка и различных ограничений возможностей программиста (владение, заимствование и т.п.) и была достигнута безопасность. При написании на расте не раз было чувство, что компилятор попусту трещит и ошибок нет, однако после повиновения компилятору приходит осознание возможных последствий этой с виду неошибки. Возможно, компилятор может и пропустить какую-нибудь экзотичесикую багу в релиз, но благодаря своей архитектуре с каждым релизом цепи становятся всё прочнее и прочнее. Не стоит забывать, что вне области действий компилятора (ОС, код других ЯП) всё есть unsafe.
|