ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
6 июля
162814 Топик полностью
Ксения (04.08.2009 14:33, просмотров: 214) ответил Snaky на Интересный график по статистике ASM/C/C++ в ембеддинге за последние 13 лет.
До тех пор пока ембеддинг юзает примитивные МК ("всю программу держу в своем флэше"), до тех пор C++ большим спросом пользоваться не будет. Всё равно что на трейлере за покупками по городу ездить. Было бы большой ошибкой считать, что все, кто применяет C++ в своих разработках, используют ООП. Вовсе нет! Спрос на C++ чаще всего определяется "послаблениями", которые он допускает против чистого C. А именно - возможность определять переменные где захочется, а не в заголовке; иметь перегружаемые функции с одинаковым именем, но с разным списком аргументов и т.п. Что же касается потокового вывода, то даже фанаты C++ далеко не всгда им пользуются, предпочитая форматированный вывод. C++ хорош тогда, когда программу пишут в РАЗВИТОЙ СРЕДЕ! Т.е. в таком ОКРУЖЕНИИ, которое предоставляет огромное число ВНЕШНИХ функций и библиотек. "Внешних" в смысле специализированных, а не тех, что лишь поддерживают функции самого языка (типа CLIB или DLIB). На чистом C только ногодрыгалки писать :), а когда имеешь дело с крупными и сложными объектами, то примитивы языка отходят на второй (вспомогательный) план, а на первый план выступают манипуляции с вызовом функций. На этом уровне разницы между языками практически не видно, будь то C или FORTRAN, поскольку суть кода представляет хитрая манипуляция вызовами функций, имена которых на языке не фиксированы. Например, если мы займемся программированием 3D-графики и возьмем соответствующую 3D-библиотеку, то наша программа получится как последовательность вызова функций из такой библиотеки, и почти одинаково будет выглядеть на всех языках. Однако с увеличением сложности и специфичности задачи начинает сильно мешать дефолтная (default - по умолчанию) работа функций, подобная сборке из детских кубиков, которые позволяют собирать только то, что уже собиралось на фабрике. Чтоб выйти из этих ограничений, функциям приходится иметь список аргументов, стремящийся к бесконечности. ООП как раз и возник для обеспечения тех случаев, когда список аргументов становится непозволительно велик. ООП это и есть эффективный способ не таскать наработанное из функции в функцию через список аргументов, а сформировать данные в отдельном блоке, который как бы прикладывается ко всем функциям данного класса. Таким образом, класс - это набор функций, имеющих ОБЩИЙ список аргументов, как бы вынесенный за скобки.. Надобность в таком инструменте остро возникает при работе со сложными объектами, а в тех случаях, когда задачи настолько просты, что формулируются на уровне языка, без обращения к специализированным библиотекам, то в таких случаях в ООПе нет насущной необходимости. Короче говоря, здесь не C++ плох, а задачи не доросли до того уровня, чтобы ООП оказался востребован. А кашу, несомненно, удобнее черпать из тарелки ложкой, а не ковшом экскаватора.