3 причины для перехода с C на C ++
На протяжении десятилетий среди разработчиков встроенного программного обеспечения велись споры о том, следует ли им использовать C или C ++. По большей части программное обеспечение, предоставляемое производителями микроконтроллеров, предоставляется на языке C, и, по данным исследования рынка встроенных систем за 2019 год, 56% встроенного программного обеспечения написано на языке C. Однако C ++ постепенно набирает популярность, и примерно 23% новых проектов встроенного программного обеспечения написаны на C ++. Когда C приближается к 50 th годовщина, возможно, пора начать переход с C на C ++. Вот три причины, по которым разработчикам следует подумать о внесении изменений.
Причина №1:улучшенная архитектурная реализация
Язык программирования C предоставляет разработчикам инкапсуляцию и некоторые базовые возможности полиморфизма через указатели на функции. Однако C на самом деле является процедурным языком и не предоставляет без дополнительных усилий такие механизмы, как наследование или композиция. Это может сделать общий архитектурный дизайн системы менее идеальным, что затем может повлиять на то, как программное обеспечение будет повторно использоваться и поддерживаться, и даже ограничить его гибкость.
C ++ предоставляет разработчикам возможность реализовывать действительно объектно-ориентированные шаблоны проектирования, разрабатывать реальные абстракции и реализовывать шаблоны проектирования, которые можно не только повторно использовать от одного приложения к другому, но и повысить гибкость архитектуры. Это позволяет повторно использовать программное обеспечение, что, в свою очередь, может привести к более быстрой разработке продукта, более короткому времени настройки клиентских приложений и многим другим преимуществам.
Причина №2:C ++ - развивающийся современный язык
В сегодняшней сложной и инновационной среде разработки разработчикам нужны не только передовые аппаратные решения, но и передовые программные и языковые решения. Это означает, что языки, используемые для написания программного обеспечения, должны быть актуальными, чтобы предоставить разработчикам новейшие инструменты, необходимые для реализации их систем. Последнее обновление языка C было в 2018 году, и похоже, что он был обновлен недавно. Однако, если вы посмотрите на стандарт, в него не было добавлено никаких новых функций, а единственные изменения заключались в исправлении проблем по сравнению с предыдущей версией, которая была в 2011 году! Да, потребовалось семь лет, чтобы выпустить пересмотренный стандарт, в котором были устранены проблемы предыдущего стандарта!
Что касается C ++, то комитет по стандартам стремится обновлять стандарт каждые три года! Следующая редакция ожидается в этом году, 2020, а последняя версия будет выпущена в 2017 году. В отличие от C, новые версии не просто исправляют ошибки, а вместо этого добавляют новые функции и функции к языку, чтобы он мог быть текущим и обеспечивать инструменты, необходимые для конкуренции с другими языками, такими как Python. Новые стандарты даже удаляют устаревшие функции, такие как триграфы.
Причина №3:C ++ - более богатый язык
Большая часть встроенного программного обеспечения, которое я написал для микроконтроллеров, использовала язык программирования C примерно до 3-4 лет назад. C ++ всегда предлагал более богатый набор функций, чем C, но примерно в то время казалось, что компиляторы достигли точки, когда скомпилированный код был эквивалентен или лучше. Именно тогда я начал погружаться в C ++ и обнаруживать, насколько богатым стал этот язык и сколько еще мне нужно было узнать о нем.
C ++ позволяет разработчикам использовать такие функции, как:
- Шаблоны - которые позволяют писать код независимо от любого конкретного типа.
- Динамический полиморфизм - позволяет назначать реализацию во время выполнения.
- Обработка исключений - обнаружение ошибок (шокирует любого разработчика C)
- Статические операторы if во время компиляции
- Виртуальные функции
Это всего лишь несколько примеров, и это еще не все! Все эти инструменты упрощают программирование встроенной системы.
Заключение
C ++ - это современный и развивающийся язык, в котором C кажется статичным и развивается намного медленнее. Фактически, C становится пресловутым динозавром в эпоху, когда языки программирования стремительно развиваются. Поскольку разработчики сталкиваются с постоянно растущей сложностью своих систем, им нужен язык, который позволил бы им быть гибкими и максимально увеличивать повторное использование. Многие жалобы «старых дней» просто больше не относятся к C ++, особенно с учетом того, насколько эффективными стали компиляторы C ++. Если когда-нибудь и было время начать переход на C ++, вполне возможно, что это так.
В следующих нескольких статьях мы более подробно рассмотрим C ++ и то, как разработчики могут использовать его для разработки и создания драйверов для микроконтроллеров.
Встроенный