Создатель С++ ответил на критику американских властей
В конце февраля Белый дом призвал разработчиков отказаться от уязвимых языков программирования наподобие С и С++ в пользу тех, которые обеспечивают безопасную работу с памятью. Создатель С++ Бьёрн Страуструп высказался в защиту популярного языка в комментарии Infoworld.
Страуструп подчеркнул, что в заявлении игнорируются преимущества С++, появившегося в далеком 1979 году. «Удивительно, что авторы тех правительственных документов, кажется, упускают из вида достоинства современной версии С++ и усилия по обеспечению надёжных гарантий памяти. С другой стороны, они, кажется, осознали, что язык программирования является лишь одним из компонентов в цепочке инструментов, а потому улучшение инструментов и процессов разработки имеет важнейшее значение», — отметил Страуструп.
Он заявил, что разработчики С++ всегда стремились повысить безопасность работы с памятью и далеко продвинулись в этом направлении. «Улучшение безопасности памяти было одной из целей С++ с самого первого дня и на протяжении всей его эволюции. Сравните язык С из книги K&R с ранним С++, а потом ранний С++ с современным С++. Я описывал эту эволюцию в своём выступлении на CppCon 2023», — отметил программист. Он добавил, что качественный код на С++ пишется с использованием концепции RAII (Resource Acquisition Is Initialization, «получение ресурса есть инициализация»), контейнеров и умных указателей, а не «традиционного месива указателей C».
Также Страуструп назвал ряд усилий по повышению безопасности памяти в С++. «Существует две проблемы, связанные с безопасностью. Из миллиардов строк кода на С++ очень немногие полностью соответствуют современным стандартам, а у людей различные понятия о том, какие аспекты безопасности важны. Я и комитет по стандартизации пытаемся решить их», — сказал Страуструп.
Одна из таких инициатив — фреймворк Profiles, который позволяет улучшить гарантии, например относительно быстро устранить большинство ошибок диапазона, и постепенно ввести гарантии для крупных кодовых баз путём локального статического анализа и минимальных проверок во время выполнения программы. Страуструп утверждает, что его долгосрочной целью было и остаётся обеспечить в C++ безопасность типов и ресурсов там и тогда, где и когда это необходимо. Он также посоветовал ознакомиться с документами на странице WG21 на сайте комитета.
Читать на dev.by