Даже большинство людей, которые любят С++, признают, что у него много бородавок, не связанных с его нишей, как язык программирования системы/производительности. К ним относятся его устаревшая система управления модулем (заголовочные файлы), требование для форвардных объявлений, синтаксические причуды, которые делают его грамматику неразрешимой (например, < > угловые скобки для объявления шаблона), включение макросов, которые работают на текстовом уровне, а не в реальном языковые функции для решения макросов, которые используются для дублирования функций, таких как массивы и строки (версии STL и C этих типов), практически без синтаксического сахара и общего отсутствия современных функций, таких как потоки, сборка мусора, делегирование/закрытие, и т.д. (Примечание. Да, в средах с ограниченным объемом памяти или в реальном времени у вас могут быть веские причины не желать сбора мусора, но это может быть легко отключено и быть стандартным способом управления памятью.)
С другой стороны, С++ - единственный основной язык, который позволяет писать код эффективно и близко к металлу, но также обеспечивает, по крайней мере, некоторую абстракцию высокого уровня. Он является зрелым, стандартизированным и имеет множество реализаций и библиотек компилятора и большую устаревшую кодовую базу.
Для тех из вас, кто использует С++ в качестве основного языка, что заставило вас лично решить, что его бородавки стоит смириться? Что нужно сделать, чтобы вы передумали и решили использовать более новый язык с меньшим количеством подобных бородавок? Вы используете С++, потому что вам это действительно нравится, или вы неохотно используете его из-за устаревших проблем или потому, что для его ниши не существует другого зрелого, основного языка?