«Спасите C++»: отец языка программирования просит помощи у сообщества
Создатель C++ Бьёрн Страуструп призвал разработчиков защитить от исчезновения его язык программирования, который в последние годы критикуют эксперты по кибербезопасности. Основной причиной нападок является проблема безопасности памяти, что привело к исключению C++ из числа рекомендуемых языков в государственных и корпоративных проектах, пишет The Register.
C и C++ требуют ручного управления памятью, что делает их уязвимыми к ошибкам, таким как выход за границы массива или утечки памяти. Эти проблемы составляют основную часть уязвимостей в крупных кодовых базах. Поэтому ведущие мировые организации всё чаще выбирают языки с лучшей защитой памяти — Rust, Go, C, Java, Swift и Python.
Сообщество C/C++ отреагировало серией инициатив, направленных на повышение безопасности, включая проекты TrapC, FilC, Mini-C и Safe C++. Однако, по мнению Страуструпа, проблема не только в медленном прогрессе, но и в отсутствии чёткого публичного нарратива, который мог бы конкурировать с растущей популярностью Rust. В обращении к комитету по стандартам C++ (WG21) он призвал принять срочные меры и предложил использовать свой фреймворк Profiles для улучшения безопасности.
Страуструп подчёркивает, что обеспечение безопасности памяти всегда было одной из ключевых задач C++, и призывает не принимать его спокойный тон за безразличие к происходящему. Он напомнил, что ранее предупреждал сообщество о риске разрушения C++ из-за хаотичных изменений в языке.
Одной из причин обеспокоенности стало требование Агентства по кибербезопасности и инфраструктуре США (CISA), согласно которому к 2026 году производители должны либо устранить все уязвимости, связанные с управлением памятью, либо полностью перейти на безопасные языки. Страуструп называет это серьёзной угрозой для будущего C++.
Программистам, работающим с C++, предлагают различные решения, но ни одно из них пока не стало стандартом. Например, проект TrapC предполагает использование «безопасных указателей», которые предотвращают выход за границы памяти и сегментационные ошибки. Однако подобные решения требуют значительных изменений в коде и не могут быть внедрены мгновенно.
Эксперты разделились во мнениях о будущем C++. Некоторые считают, что полная замена C++ на другие языки невозможна, поскольку на нём написано слишком много кода. Вместо этого предлагается эволюционный подход — постепенная модернизация языка с внедрением инструментов повышения безопасности.
Тем временем Google и другие техногиганты всё активнее выступают за переход на языки с полной защитой памяти, что создаёт дополнительное давление на сообщество C++. Вопрос в том, успеет ли оно предложить спасительное решение до 2026 года.
Читать на dev.by