«Отец» C++ выступил в его защиту — в АНБ США требуют отказаться от языка

Создатель C++ — одного из самых популярных сегодня языков программирования и «языка года» по версии TIOBE — Бьёрн Страуструп отреагировал на призыв Агентства национальной безопасности США отказаться от использования языков программирования, в которых ответственность за управление памятью возложена на разработчика, таких как C и C++, в пользу более обеспечивающих безопасную работу с памятью, например Rust.

5 комментариев

В открытом письме Страуструп не согласился с позицией агентства. Во-первых, он отметил, что там «смешали в одну кучу» C и C++, хотя языки развивались независимо на протяжении последних 30 лет. Впрочем, и практика применения C++ во многом «застряла в прошлом» — разработчики нередко игнорируют изменения в языке, которые позволяют кардинально повысить безопасность кода, сетует Страуструп.

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

Серьёзным подспорьем программисту станет добротный статический анализатор кода, считает Страуструп. Внедрение такого инструмента приведёт к куда меньшим трудозатратам, чем переход на «безопасные» языки.

Агентство национальной безопасности призвало разработчиков отказаться от С/С++
По теме
Агентство национальной безопасности призвало разработчиков отказаться от С/С++

По мнению датского программиста и учёного, у авторов рекомендаций в АНБ слишком узкое представление о безопасности ПО, которое ограничивается безопасной работой с памятью. В то же время существует свыше десятка других сценариев, при которых особенности конкретного языка можно — умышленно или нет   использовать в ущерб безопасности софта, отмечает создатель C++.

«Отец» C++ считает, что добиться безопасности ПО возможно, сочетая различные стили программирования, проверенные библиотеки и обязательный статический анализ кода.

Страуструп призвал АНБ сперва серьёзно подумать о «безопасности» новых языков и лишь затем предложить что-нибудь разумное по этому поводу. «Разумным» Страуструп счёл бы формирование списка проблем безопасности C++, которые впоследствии можно было бы устранить путём принятия поправок к международным стандартам языка. «Этим я и планирую заняться», — отметил программист.

В 2022 году Страуструп и Габриэль дос Рейс из Microsoft, опубликовали работу, в которой разобрали частые ошибки программистов, приводящие к «поломке» системы типов данных и возникновению проблем с безопасностью использования системных ресурсов (в частности, памяти), а также предложили меры по их предотвращению.

В заключение письма Страуструп намекнул, что авторам доклада АНБ следовало бы обращаться за экспертным мнением к представителям комитета ISO по стандартам C++, а не опираться на точку зрения некоего «всеобъемлющего сообщества разработчиков ПО, представляющего частный и государственный сектора экономики США, а также академическую среду». Именно так в отчёте АНБ обозначены инициаторы повсеместного перехода на языки программирования, обеспечивающие безопасную работу с памятью.

TIOBE выбрал «язык года»-2022
По теме
TIOBE выбрал «язык года»-2022

Читать на dev.by