![]() |
От: |
velkin
|
https://kisa.biz |
Дата: | 25.01.23 19:32 | ||
Оценка: |
![]() |
В своем открытом письме, опубликованном на open-std.org, Страуструп выразил несогласие с позицией агентства. Во-первых, он отметил, что его представители «смешали в одну кучу» C и C++, несмотря на то, что языки развивались независимо на протяжении последних 30 лет.
В действительности же, по его мнению, C++ ни в чем не уступает современным так называемым безопасным языкам вроде C#, Go, Java, Ruby, Rust и Swift.
По мнению программиста и ученого, помимо прочего, авторы рекомендаций не видят всю картину целиком. В их представлении безопасность ПО якобы ограничивается безопасной работой с памятью.
C++ приводит к действительно очень плохому выбору дизайна. Вы неизменно начинаете использовать "приятные" библиотечные возможности языка, такие как STL и Boost, и другую полную и полную чушь, которая может "помочь" вам программировать, но вызывает:
— бесконечное количество боли, когда они не работают (и любой, кто говорит мне, что STL и особенно Boost стабильны и переносимы, настолько полон BS, что это даже не смешно)
— неэффективные абстрактные модели программирования, когда через два года вы замечаете, что какая-то абстракция была не очень эффективной, но теперь весь ваш код зависит от всех хороших объектных моделей вокруг него, и вы не можете исправить это, не переписав свое приложение.
Другими словами, единственный способ сделать хороший, эффективный, системный и переносимый C++ заключается в том, чтобы ограничить себя всеми вещами, которые в основном доступны на Си. И ограничение вашего проекта Си означает, что люди не облажаются в этом, а также означает, что вы получаете много программистов, которые действительно понимают проблемы низкого уровня и не облажаются с какой-либо идиотской "объектной моделью".