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

Бьёрн Страуструп (Bjarne Stroustrup), създателят на езика C++, публикува възражения срещу заключенията, направени в доклад на АНБ, в който се препоръчва на организациите да се откажат от използването на програмни езици, като C и C++, които прехвърлят управлението на паметта на разработчика, в полза на езици като C#, Go, Java, Ruby, Rust и Swift, които осигуряват автоматично управление на паметта или извършват проверки за безопасна работа с паметта по време на компилиране.

Според Страуструп споменатите в доклада на АНБ безопасни езици всъщност не превъзхождат C++ в важни, от неговата гледна точка, приложения. В частност, разработените напоследък основни насоки за използване на C++ (C++ Core Guidelines) обхващат методи за безопасно програмиране и предписват използване на средства, гарантиращи безопасна работа с типове и ресурси. В същото време на разработчиците, които не изискват подобни строги гаранции за безопасност, остава възможността да продължат да използват стари методи на разработка.

Страуструп смята, че добър статичен анализатор, съответстващ на насоките на C++ Core Guidelines, може да осигури необходимите гаранции за безопасност на C++ кода, изисквайки значително по-малко разходи, отколкото прехода към нови безопасни програмни езици. Например, повечето от препоръките на Core Guidelines вече са реализирани в статичния анализатор и профила за безопасна работа с паметта в състава на Microsoft Visual Studio. Част от препоръките също са взети предвид в статичния анализатор Clang tidy.

Обект на критика също стана акцентирането на доклада на АНБ само върху проблемите с управлението на паметта, оставяйки без внимание много други проблеми на програмните езици, които влияят на безопасността и надеждността. Страуструп разглежда безопасността като по-широк концепт, различни аспекти на който могат да бъдат постигнати чрез комбинация от стил на писане на код, библиотеки и статични анализатори. За управление на включването на правила, осигуряващи безопасна работа с типове и ресурси, се предлага да се използват анотации в кода и опции на компилаторите.

В приложения, в които производителността е по-важна от сигурността, този подход позволява селективно прилагане на средства, гарантиращи сигурност само там, където е необходимо. Инструменти за повишаване на сигурността също могат да се прилагат частично, например първоначално да се ограничи до правила за проверка на диапазони и инициализация, а след това постепенно да се адаптира кодът за по-строги изисквания.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster