Автор Гілка: Розробка на Rust в 4 рази легша за розробку на C++  (Прочитано 122 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3946
  • Карма: +17/-0
  • Програміст
Результати проведеного дослідження на коді Android показали, що зміни, внесені в коді на Раст, відкочуються в 4 рази рідше, ніж зміни в коді Сі++. Не дивно, що в 2025 розробники на Раст вперше обігнали розробників на Сі++ по кількості змін у коді.



Звіт: https://security.googleblog.com/2025/11/rust-in-android-move-fast-fix-things.html
« Змінено: Вчора о 07:06:52 від Володимир Лісівка »
[Fedora Linux]

Відсутній BeSiDa

  • Кореспондент
  • ***
  • дописів: 112
  • Карма: +0/-0
І на що це вказує?
Їздити по рейках потягом легше ніж автомобілем по всіх видах доріг і без доріг :)
Але рейки поки не всюди...

Графік не містить інформації про кількість людей та їх досвід... Якщо це період "фанатів" то вони більше хочуть розбиратися в мові програмування, а коли то буде період "масовки" то все буде таке саме. Тільки сутність помилок стане іншою.

Та й взагалі слова "легше" не існує, є лише "легше та швидше для певної людини". Наприклад, для вас особисто :) І це не може бути "не правдою". А для ОС то все "бінарники" :)))

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3946
  • Карма: +17/-0
  • Програміст
І на що це вказує?
Їздити по рейках потягом легше ніж автомобілем по всіх видах доріг і без доріг :)
Але рейки поки не всюди...

Це означає економію часу, а отже і економію грошей для Ґуґла.

Цитата
Графік не містить інформації про кількість людей та їхній досвід...
Програмістів на Расті менше чим на Сі++, але вони написали більше коду. Я думаю, що досвід програмістів в Ґуґлі приблизно однаковий.
[Fedora Linux]

Відсутній yvs115

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +7/-0
Наскільки я розумію, у великих галерних структурах важко відслідити якість коду, тому бити растом по рукам ті мульйони на галерах - має сенс, щоб менше багів отримувати на виході тим програмуванням.
А взагалі то вже є різні випадки зі спробами його впровадження - починаючи від firefox що ще досі щось пробують переписати і не дуже далеко зайшли з тим, так і до відносно невеличких проектів як нп "sudo-rs Affected By Multiple Security Vulnerabilities" https://www.phoronix.com/news/sudo-rs-security-ubuntu-25.10

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 3946
  • Карма: +17/-0
  • Програміст
Re: Розробка на Rust в 4 рази легша за розробку на C++
« Відповідей #4 : Сьогодні о 08:28:17 »
А взагалі то вже є різні випадки зі спробами його впровадження - починаючи від firefox що ще досі щось пробують переписати і не дуже далеко зайшли з тим, так і до відносно невеличких проектів як нп "sudo-rs Affected By Multiple Security Vulnerabilities" https://www.phoronix.com/news/sudo-rs-security-ubuntu-25.10

Firefox перейшов на Quantum (їхній двигун на Расті) у 2017-му, він у два рази швидший за стару версію на Сі++: https://blog.mozilla.org/en/mozilla/introducing-firefox-quantum/

Вразливості у sudo-rs — це логічні помилки: 1) не того користувача записували в журнал (записували того, хто запустив, а не того, хто аутентифікувався), та 2) не стирало пароль з екрана, коли увімкнена опція показувати пароль при наборі, у випадку ненормального завершення програми (хтось інший може потім подивитися на екран і побачити пароль). Ніяка мова програмування не захищає від таких помилок.
[Fedora Linux]

Відсутній yvs115

  • Кореспондент
  • ***
  • дописів: 197
  • Карма: +7/-0
Re: Розробка на Rust в 4 рази легша за розробку на C++
« Відповідей #5 : Сьогодні о 15:32:39 »
Цитата
Цитата
А взагалі то вже є різні випадки зі спробами його впровадження - починаючи від firefox що ще досі щось пробують переписати і не дуже далеко зайшли з тим, так і до відносно невеличких проектів як нп "sudo-rs Affected By Multiple Security Vulnerabilities" https://www.phoronix.com/news/sudo-rs-security-ubuntu-25.10

Firefox перейшов на Quantum (їхній двигун на Расті) у 2017-му, він у два рази швидший за стару версію на Сі++: https://blog.mozilla.org/en/mozilla/introducing-firefox-quantum/
може в 2017му і перейшов, але зараз якщо того не видно (мабуть щось залишилося в секціїї other 5%) - то що виходить відмовилися від раст?
JavaScript 28.7%
C++ 28.0%
HTML 21.9%
C 10.4%
Python 2.9%
Kotlin 2.7%
Other 5.4%
https://github.com/mozilla-firefox/firefox

Цитата
Вразливості у sudo-rs — це логічні помилки: 1) не того користувача записували в журнал (записували того, хто запустив, а не того, хто аутентифікувався), та 2) не стирало пароль з екрана, коли увімкнена опція показувати пароль при наборі, у випадку ненормального завершення програми (хтось інший може потім подивитися на екран і побачити пароль). Ніяка мова програмування не захищає від таких помилок.
якого типу помилки для користувача не дуже відіграють роль, нп як приклад - як тільки в 25.10 дефолтні coreutils переключили на раст версію - у мене на десктопі почали вискакувати віконечка щоб отрепортити з backtrace - тому просто переключив на gnu coreutils і працював далі

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1939
  • Карма: +5/-0
Re: Розробка на Rust в 4 рази легша за розробку на C++
« Відповідей #6 : Сьогодні о 18:50:39 »
https://4e6.github.io/firefox-lang-stats/

4,7 млн рядків коду ядра на Rust, тобто десь чверть
Fedora 35 (x86-64)

Відсутній DalekiyObriy

  • Літератор
  • ******
  • дописів: 1939
  • Карма: +5/-0
Re: Розробка на Rust в 4 рази легша за розробку на C++
« Відповідей #7 : Сьогодні о 18:59:11 »
Тип найчастіших помилок в C/C++ що викликають головні CVE:

Цитата
1. Buffer Overflow (stack/heap)

Що це: запис за межі масиву або буфера.
Наслідки: RCE (remote code execution), підвищення привілеїв.
...
Це №1 джерело серйозних CVE протягом десятиліть.

2. Use-After-Free (UAF)

Що це: використання пам’яті після її звільнення (free, delete).
...
Один із найтиповіших експлойтів у браузерах (Chrome/Firefox), PDF-рендерах, графічних драйверах.

3. Double Free

Що це: повторний виклик free() щодо одного й того ж блоку пам’яті.
Наслідки: корупція heap-структур → можливий контроль над heap.

4. Null Pointer Dereference

Зазвичай призводить до краху, але в драйверах чи ядрах може викликати privilege escalation.

6. Out-of-Bounds Read/Write

Не обовʼязково прямий overflow.
...
OOB-read часто стає інфо-витоком (info leak) — дуже важливим кроком для реальних експлойтів.


7. Race Conditions
...
У ядрах (Linux, Windows) це одне з найсерйозніших джерел CVE.

8. Uninitialized Memory Use
...
У криптобібліотеках це може призводити до витоку ключів.

і т.ін.

Тобто основні джерела проблем безпеки в софті на C/C++ не є дозволеними в Rust (без зайвих хитрощів звичайно).
Якщо уявити скільки головняка мають компанії (й не лише софтові) з запобіганням цим CVE або, що гірше, у боротьбі з наслідками, то міграція на Rust — цілком логічний і правильний рух.
Fedora 35 (x86-64)