Встраиваемые системы
Поделиться:
Этот раздел содержит ответы тех, кто занимается программированием аппаратных устройств и решений для умного дома.
На диаграмме представлены языки, используемые теми, кто выбрал варианты «оборудование» или «решения для умного дома», отвечая на вопрос «Какое ПО вы разрабатываете на своих основных языках?».
47%
45%
C99
41%
34%
C11
16%
23%
C17
–
4%
C2x
30%
32%
Embedded C
10%
11%
Затрудняюсь с ответом
3%
3%
Другое
12%
6%
C++98 / C++03
33%
28%
C++11
24%
27%
C++14
41%
48%
C++17
23%
37%
C++20
–
14%
C++23
12%
13%
Затрудняюсь с ответом
Инбал Леви
Ведущая разработчица в MPGC Services Ltd (Millennium)
Приятно видеть, что значительная часть разработчиков ПО для встраиваемых систем уже пользуется C++20. Эта версия расширяет возможности компиляции, что особенно важно в тех областях разработки, где большое внимание уделяется производительности во время выполнения. Надеюсь, в ближайшие годы мы сможем наблюдать такие же темпы перехода на C++23.
C++ | C | Rust | |
---|---|---|---|
34% | 34% | 47% | Visual Studio Code |
29% | 20% | 21% | CLion |
19% | 9% | 0% | Visual Studio |
– | – | 15% | IntelliJ IDEA |
6% | 14% | 8% | Vi / Vim |
2% | 4% | – | Eclipse CDT |
2% | 3% | 3% | Emacs |
1% | 3% | 1% | Sublime |
8% | 13% | 6% | Другое |
35%
24%
GoogleTest
23%
–
Я не пишу юнит-тесты для C/C++
15%
6%
Catch
8%
4%
CppUnit
5%
4%
Boost.Test
Иван Кравец
Ph.D., изобретатель, руководитель PlatformIO Labs
Рост использования фреймворков тестирования в экосистеме разработки встраиваемого ПО — обнадеживающий тренд, несмотря на то, что 20% опрошенных пока еще их не используют. Переход к методам разработки, основанной на тестировании, свидетельствует о положительной динамике: повышается качество встраиваемых систем, и мы видим приверженность индустрии к созданию надежных продуктов.
74%
59%
CMake
44%
45%
Makefile
27%
21%
Проектная модель Visual Studio
26%
16%
Ninja
6%
–
Gradle
29%
24%
Использую системный менеджер пакетов
28%
–
Включаю исходный код библиотек в свою сборку
22%
–
Компилирую библиотеки отдельно, пользуясь их инструкциями
15%
–
Скачиваю уже собранные библиотеки из интернета
13%
8%
vcpkg
8%
6%
NuGet
Иван Кравец
Ph.D., изобретатель, руководитель PlatformIO Labs
Эти результаты демонстрируют тревожную тенденцию: многие разработчики продолжают мучаться с устаревшими практиками управления сторонними библиотеками. Важно переходить на декларативный подход, поскольку он не только позволяет устранить эти сложности, но и значительно улучшает жизнь разработчиков. Повышается эффективность работы с многочисленными библиотеками, что в конечном итоге ускоряет прогресс в области разработки ПО для встраиваемых систем.
81%
82%
GCC
50%
32%
Clang
31%
20%
MSVC
21%
43%
Компилятор для микроконтроллеров
14%
–
Clang-cl
Иван Кравец
Ph.D., изобретатель, руководитель PlatformIO Labs
Столь большой перевес в пользу компилятора GCC можно объяснить его открытым исходным кодом, расширенной поддержкой архитектур и выдающимися возможностями оптимизации. В совокупности это дает разработчикам гибкое и экономичное решение.
Спасибо, что уделили время!
Если результаты исследования показались вам интересными, поделитесь ими с друзьями и коллегами.
Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.