В Google вважають, що мова програмування Rust вдвічі ефективніша за C++

Опубликовал
Ігор Шелудченко

Бергстром сказав, що хоча Dropbox у 2016 році та Figma у 2018 році пропонували ранні описи переписування коду в безпечному для пам’яті Rust – і сумніви щодо продуктивності та мови вщухли – залишилися занепокоєння щодо його надійності та безпеки.

Але в екосистемі розробки програмного забезпечення відбулися значні зміни.

Онлайн-курс "Маркетолог" від Laba.
Пройдіть повний шлях розробки маркетингових стратегій на практиці та з фідбеком від CEO бренд-маркетингової агенції.
Програма курсу і реєстрація

Наприклад, у новому звіті Офіс національного кібердиректора Білого дому (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 – був однаковим.

Тобто через два місяці приблизно третина розробників вважає, що вони так само продуктивні у своїй новій мові, як і в старій.

Disqus Comments Loading...