Бергстром сказал, что, хотя Dropbox в 2016 году и Figma в 2018 году предлагали ранние описания переписывания кода в безопасном для памяти Rust — и сомнения относительно производительности и языка утихли — остались опасения по поводу его надежности и безопасности.
Но в экосистеме разработки программного обеспечения произошли значительные изменения.
Например, в новом отчете Офис национального кибердиректора Белого дома (ONCD) призвал разработчиков использовать «безопасные для памяти языки программирования» и отказаться от инструментов программирования на C или C++. Совет является шагом к «защите строительных блоков киберпространства».
По мнению правительства, C и C++ позволяют произвольную арифметику с указателями с прямыми адресами памяти без проверки границ. Вместе с тем автор C++ Бьярн Страуструп раскритиковал правительство США.
«Я считаю странным то, что авторы этих постановлений не замечают сильных сторон современного C++ и усилий, направленных на обеспечение безопасности», — отметил он.
Основная проблема заключается в том, что большинство уязвимостей безопасности в больших базах кода можно отследить из-за ошибок безопасности памяти. И Rust может в значительной степени, если не полностью, избежать таких проблем при правильном использовании.
Еще в сентябре 2022 года технический директор Microsoft Azure Марк Руссинович утверждал, что проекты программного обеспечения, которые, возможно, были начаты на C/C++, должны использовать Rust. Теперь эта рекомендация распространяется за пределы новых проектов и призывает к переработке старого кода.
Rust лучше C++, а Kotlin — чем Java
Ларс Бергстром отмечает, что переписывание кода Go в Rust показало значительные преимущества.
«Когда мы переписали системы из Go в Rust, мы обнаружили, что для их создания требуется примерно такая же команда по размеру, примерно столько же времени. То есть при переходе с Go на Rust нет потери производительности. И что интересно, мы видим от этого некоторые преимущества», — сказал Бергстром.
Более важным, по словам Бергстрома, является сравнение переработки кода C++ в Rust.
«В каждом случае мы наблюдали уменьшение более чем в 2 раза объема усилий, необходимых как для создания служб в Rust, так и для поддержки и обновления тех служб, написанных в Rust. Для нас это действительно значимо, потому что код C++ очень дорогой. Это большие команды и много работы. Есть риски», — сказал он.
Бергстром сказал, что Google проводит аналогичную миграцию, перемещая разработчиков с Java на Kotlin, и что время, необходимое для переподготовки разработчиков в обоих случаях — Java на Kotlin и C++ на Rust — было одинаковым.
То есть через два месяца примерно треть разработчиков считает, что они так же продуктивны в своем новом языке, как и в старом.
Продолжается конкурс авторов ИТС. Напиши статью о развитии игр, гейминг и игровые девайсы и выигрывай профессиональный игровой руль Logitech G923 Racing Wheel, или одну из низкопрофильных игровых клавиатур Logitech G815 LIGHTSYNC RGB Mechanical Gaming Keyboard!