Бергстром сказав, що хоча Dropbox у 2016 році та Figma у 2018 році пропонували ранні описи переписування коду в безпечному для пам’яті Rust – і сумніви щодо продуктивності та мови вщухли – залишилися занепокоєння щодо його надійності та безпеки.
Про це розповідає ProIT
Але в екосистемі розробки програмного забезпечення відбулися значні зміни.
Наприклад, у новому звіті Офіс національного кібердиректора Білого дому (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 – був однаковим.
Тобто через два місяці приблизно третина розробників вважає, що вони так само продуктивні у своїй новій мові, як і в старій.