Езици за програмиране: Време е да спрете да използвате C и C++ за нови проекти, казва техническият директор на Microsoft Azure

  • Sep 04, 2023

Индустрията трябва да третира езиците C и C++ като „отхвърлени“, казва техническият директор на Azure Марк Русинович.

Човек, работещ на бюро с два монитора
Deagreez/Getty Images

Марк Русинович, главен технологичен директор на Microsoft Azure, казва, че разработчиците трябва да избягват използването на C или Програмни езици C++ в нови проекти и вместо това използвайте Rust поради сигурност и надеждност опасения.

Разработчик

  • Това е краят на програмирането, каквото го познаваме - отново
  • Разработчиците се чувстват сигурни в работата си, но все още обмислят да напуснат
  • Бъдещето на мрежата ще се нуждае от различен вид разработчик на софтуер
  • Най-добрите Linux лаптопи за потребители и разработчици

Ръжда, която достигна версия 1.0 през 2020 г и е роден в Mozilla, сега се използва в рамките на Android Open Source Project (AOSP), в Мета, в Amazon Web Services, в Microsoft за части от Windows и Azure, в ядрото на Linux и на много други места.

Инженерите ценят неговите „гаранции за безопасност на паметта“, които намаляват необходимостта от ръчно управление на паметта на програмата и на свой ред намаляват риска от пропуски в сигурността, свързани с паметта, натоварващи големи проекти, написани на „опасен за паметта“ C или C++, което включва Chrome, Android, Linux ядрото и Windows.

Също:Разбиране на голямата визия на Microsoft за изграждане на следващото поколение приложения

Microsoft доведе до това точка през 2019 г., след като разкри 70% от своите корекции през последните 12 години бяха поправки за грешки в безопасността на паметта, дължащи се главно на това, че Windows е написан предимно на C и C++. Екипът на Chrome на Google претегли със собствените си открития през 2020 г, разкривайки, че 70% от всички сериозни грешки в сигурността в кодовата база на Chrome са били грешки в управлението на паметта и безопасността. Написан е предимно на C++.

„Освен ако не се случи нещо странно, така [Rust] ще влезе в 6.1”, написа Линус Торвалдс в понеделник, като изглежда сложи край на дългогодишния дебат за това, че Rust ще стане втори език след C за ядрото на Linux.

Единственият квалификатор на Azure CTO за използването на Rust е, че е за предпочитане пред C и C+ за нови проекти, които изискват език без събиране на отпадъци (GC). GC двигателите управляват управлението на паметта. Go на Google е език за събиране на отпадъци, докато проектът Rust насърчава, че Rust не е. Инженери на AWS като Rust над Go заради ефективността, която предлага без GC.

„Говорейки за езици, време е да спрете стартирането на нови проекти в C/C++ и да използвате Rust за онези сценарии, при които се изисква език, различен от GC. В името на сигурността и надеждността. индустрията трябва да обяви тези езици за отхвърлени“, пише Русинович.

Също: Най-популярните езици за програмиране и къде да ги научите

Rust е обещаващ заместител на C и C++, особено за програмиране на системно ниво, инфраструктурни проекти, разработка на вграден софтуер и други - но не навсякъде и не във всички проекти.

Наистина, Русинович добавен по-късно: „Има огромно количество C/C++, което ще се поддържа и развива в продължение на десетилетия (или повече). Снощи кодирах функция за Handle, добавяйки към приблизително 85 000 реда код на Sysinternals C/C++, който съм написал. Въпреки това ще се ориентирам към Rust за нови инструменти."

Rust със сигурност върви напред и е вероятно да бъде в ядрото на Linux скоро.

AOSP, който е Linux дистрибуция, започна да използва Rust на нов код през април 2021 г., но остави кодовата си база C/C++ на място. Този месец, AOSP също подкрепени повиквания за Rust като опция за нов код в ядрото на Linux.

Също:Windows 11 22H2: Това са големите нови функции за сигурност

Мета наскоро популяризира Rust като основен поддържан език от страна на сървъра заедно със C++. AWS инвестира в Rust за инфраструктурен софтуер. Инженерите на Azure са го използвали изграждане на облачни инструменти за тестване на модули WebAssembly в Kubernetes. От друга страна, екипът на Chrome е обвързан с C++ в обозримо бъдеще, въпреки интереса към Rust; просто преминаване към Rust няма да елиминира значителна част от уязвимостите в сигурността в продължение на години, те казаха. Вместо това Chrome осигурява безопасност на паметта в своята C++ кодова база.

Също така, Rust не трябва да се разглежда като сребърен куршум за всички лоши навици, които разработчиците практикуват, когато кодират на C или C++.

Боб Рудис, изследовател на киберсигурността за GreyNoise Intelligence, който преди е работил в Rapid7, отбеляза разработчиците могат да пренесат същите лоши навици за сигурност на Rust.

„Като се има предвид какво е необходимо (време/пари/хора/услуги), за да се направят „истински“ C/C++ проекти безопасни при всякаква скорост, съм склонен да се съглася [с Russinovich]. Като каза това, възможно е да пренесем същите лоши практики в Rust“, пише той.

Стивън Дж. от ZDNet Вон-Никълс общо съгласие с това чувство:

„Както казаха други, можете да пишете „безопасно“ на C или C++, но е много по-трудно, независимо какъв диалект използвате, отколкото в Rust. Имайте предвид, че все още можете да провалите сигурността в Rust, но това избягва много стари проблеми с паметта."

Сигурност

8 навика на много сигурни дистанционни работници
Как да намерите и премахнете шпионски софтуер от телефона си
Най-добрите VPN услуги: Как се сравняват топ 5?
Как да разберете дали сте замесени в нарушение на сигурността на данните -- и какво да направите след това
  • 8 навика на много сигурни дистанционни работници
  • Как да намерите и премахнете шпионски софтуер от телефона си
  • Най-добрите VPN услуги: Как се сравняват топ 5?
  • Как да разберете дали сте замесени в нарушение на сигурността на данните -- и какво да направите след това