• XSS.stack #1 – первый литературный журнал от юзеров форума

Создатель C++ раскритиковал навязывание безопасных языков программирования

INC.

REVERSE SIDE OF THE MEDAL
Эксперт
Регистрация
02.02.2008
Сообщения
3 950
Реакции
1 872
Бьёрн Страуструп (Bjarne Stroustrup), создатель языка C++, опубликовал возражения против выводов, сделанных в отчёте АНБ, в котором организациям было рекомендовано отойти от использования языков программирования, таких как Си и Си++, перекладывающих управление памятью на разработчика, в пользу языков, таких как C#, Go, Java, Ruby, Rust и Swift, обеспечивающих автоматическое управление памятью или выполняющих проверки безопасной работы с памятью во время компиляции.

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

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

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

В приложениях, в которых производительность важнее безопасности, подобный подход даёт возможность выборочного применения средств, гарантирующих безопасность только там, где это необходимо. Инструменты повышения безопасности также можно применять частично, например, вначале ограничиться правилами проверки диапазонов и инициализации, а затем постепенно адаптировать код для более строгих требований.
 
Напоминает нытье дедов про автомобили.
Сидит такой дед в гараже, колупает свой Москвич и ноет, что настоящий автомобиль должен в поле молотком чиниться, а автомат - полная фигня, нужна только механика, а еще лучше, чтобы механика без синхронизаторов.
 
C++ code will not magically disappear, and even “safe” code (in any language) will have to call traditional
C or C++ code or be called by traditional code that does not offer specific safety guarantees.
Ignoring the safety issues would hurt large sections of the C++ community and undermine much of the
other work we are doing to improve C++. So would focusing exclusively on safety.

Бьярн жил в эпохе когда не было блока unsafe. И не было TCP/IP или только возрождалось.


КРИТИКА где? он просто сказал что кто умеет писать на С/С++, не будет совершать ошибки.
Но он явно неправ в данный момент.

Жду где он "РАСКРИТИКОВАЛ" другие языки.
 
Последнее редактирование:
Но он явно неправ в данный момент.
И в чем он не прав? Если руки по х@й заточены, то никакие ЯП выполняющих проверки безопасной работы с памятью не помогут :cool:
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх