C++ побеждает просто потому, что самый быстрый без всяких компромиссов.
Не. За счёт того, что очень долгое время был единственным вариантом языка практически не накладывающим ограничений (можно выразить практически всё, что позволяет аппаратура).
Да множество есть попыток исправить строки в С++. Но сама эта множественность свидетельствует о неуспехе. Вот, в языках, при создании которых сначала головой подумали, Java, например, или Go (там и зарплаты выше), такой фигнёй не страдают.
Не. За счёт того, что очень долгое время был единственным вариантом языка практически не накладывающим ограничений (можно выразить практически всё, что позволяет аппаратура).
Почему был, остался же. Rust даёт гораздо больше ограничений: пока напишешь то же самое, что на крестах, в дурку уже увезут. Да, получится в итоге строже и формально верифицируемо, но Rust не единственный путь достигать такого, если это нужно: есть всякие там статические анализаторы и доказатели корректности, а если программа зависит от данных, то и в Rust будет оверхед на проверки в рантайме… Ну и часть возможностей Rust достигается оборачиванием его кода в какой-то там unsafe блок, что превращает его в сишечку с void* указателями.
С++ — это длящаяся уже четыре десятилетия безуспешная попытка написать годный класс для строк. А быстро у вас получается только память портить.
Эту задачу не решили в стандарте, чтобы оставить эту задачку для собесов, ведь нужно фильтровать даунов на входе в профессию!
P.s. никогда не испытывал проблем со строками в проклятых крестах, не понимаю почему эта тема так раздута. Щас же есть возможность написать
auto s = std::format("hello {} blabla {}, hehehe {}", 1, 2, 3);
и где тут какие проблемы я чё-то не понял. Кому там чего не хватает? Ладно, тупой вопрос, всегда есть те, кому чего-то не хватает - живут у кремля и жалуются, что метро далековато. Ну ладно не будем поднимать срачь, у меня есть гораздо более интересные проблемы в жизни - например как эффективно сливать блоки B+-Tree дерева
Да, на C++ бывает сидиш пишешь маленький велосипед для какой-то мелкой вещи. Каждый крестовик уже давно в жизни разработал свою маленькую библиотеку и таскает из проекта в проект. Типа строки свои там всякие зачем-то. Можно сказать, что С++ - язык со встроенным в жизненный цикл профилактическим прохождением LeetCode.
Да был в соседней теме тоже один, которому пробелы мешали. Мол считать сложно. Он их, наверное, с калькулятором проставляет, чтобы со счёта не сбиться.
Таким объяснять что-то - только время зря тратить.
Немеркнущая классика: два С++’шника выразили два прямо противоположных мнения о строках в С++. Стоит ли удивляться, что у вас там эдакий зоопарт творится.
С x86 асма - да, тяжело. А какой-нибудь ARM/RISC-V/MIPS - очень даже неплохо.
В принципе, чтобы понять суть и смысл всей этой охоты с программированием достаточно вообще на Z80/6502 или 8-мибитных однокристалках потренироваться. Как дойдёт что именно вот в это всегда и превращается код на абсолютно любом языке и что вся глубинная суть программирования - заставить вот именно так устроенную железку решать нужную задачу, можно уже и к прочим аспектам программирования переходить.