Зато пайтон, при относительной простоте обучения, один из самых высокооплачиваемых языков.
Ну он типо сначала изучал Питон, а потом решил С++ изучать. Питон считается очень простым языком, который очень легко освоить. А типо С очень мразотный язык. Вот Тимми как туториал по С увидел, решил, легче удавиться =)
Где челлендж? Где восемьсот способов сделать одно и то же, на которые кучей гуру запилены туториалы, какой же из способов самый труъ in modern c++? Где ub, торчащее из под каждого поворота? Скукота...
Проект развивается - легаси остаётся. Недавно видел использование коллекции, реализующей чёрно-красное дерево, там, где достаточно вектора.
Как несложно догадаться, потребление памяти сократили в разы.
Там класс с закрытыми полями, все случаи использования - в рамках одного файлика, и их немного. Плюс сама логика, ради которой делали быстрое определение вхождений, больше не востребована.
C - не "мразотный язык". На C обычно программируют железо (различные драйвера для ПК, микроконтроллеры).
И в результате ошибки на C, управляемая электроника реально может сгореть.
С++ и С компилируются примерно одинаково, никакого преимущества у С нет.
На С программируют под железки только потому, что на них сделали компилятор С лет 30 назад, а С++ туда не дотянулся. И С - это боль везде, где им приходится пользоваться.
Ну к тому, что если писать на С++ как положено - с классами, то объем кода растет из-за таблиц виртуальных функций и стек вызовов становится не очевидным.
А на С машинный код практически один в один с исходником, особенно без опций оптимизаций.
Но если сравнивать с каким-нибудь байт-кодом, то С и С++ очень похожи.
Если писать на С аналогичный по функциональности код, он может и больше занимать. За счёт того, что подобные идеи придётся выражать громоздкими конструкциями.
В прикладных задачах - несомненно, а в каких нибудь загрузчиках/драйверах/протоколах простой с выигрывает
Не поэтому, а потому что ядро линукса написано на C, а драйверы - встраиваемый в него код. На винде примерно так же.
Драйверы же не "встраиваются", это отдельные модули. На Windows, например, они даже не должны поддерживать С-нотацию вызовов, запросы через IRP передаются. Так что писать сам драйвер можно как угодно.
Кстати, я конкретно на С драйвер делал. Но только потому, что его начали на C писать. А так-то - врагу не пожелаешь, С сейчас проще воспринимать как безбожно урезанный C++.
Настолько же, насколько в C++ не хватает async/await, когда надо интегрироваться с использующим их кодом (например, если в проекте есть интеграция C++ с JavaScript/TypeScrypt). А иногда и без интеграции, когда думаешь, что лучше: callback hell, заморочный конечный автомат или выносить всю логику в фоновый тред, который будет отправлять вызовы в главный (для гуя) и ждать ответа...
В питоне особенно в последних версиях хороший подробный трейсбек. В с++ компилятор может ругнуться и не сказать почему, или сказать совсем неочевидное. А на с часто контроллеры программируют, и если там что то не так, куда нибудь не туда пойдет повышенное напряжение, то все сгорит





IT-юмор
7.5K постов53.3K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору