Встраиваемые системы

Поделиться:

Этот раздел содержит ответы тех, кто занимается программированием аппаратных устройств и решений для умного дома.

Популярные языки программирования встраиваемых систем

31%

Python

20%

C++

15%

C

13%

Java

11%

JavaScript

8%

C#

7%

TypeScript

На диаграмме представлены языки, используемые теми, кто выбрал варианты «оборудование» или «решения для умного дома», отвечая на вопрос «Какое ПО вы разрабатываете на своих основных языках?».

Какими стандартами языка C вы регулярно пользуетесь?

47%

45%

C99

41%

34%

C11

16%

23%

C17

4%

C2x

30%

32%

Embedded C

10%

11%

Затрудняюсь с ответом

3%

3%

Другое

Какими стандартами C++ вы регулярно пользуетесь?

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.

Какую IDE или редактор вы используете чаще всего?

C++CRust
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%Другое
0%47%

Программируете на C или C++?

CLion — мощная кросс-платформенная IDE, которой пользуются разработчики встраиваемых систем по всему миру. Узнайте, подходит ли она вам для работы над вашим оборудованием.

Какую IDE или редактор вы чаще всего используете для разработки на Python?

34%

Visual Studio Code

26%

PyCharm Professional Edition

22%

PyCharm Community Edition

7%

Jupyter Notebook

3%

Notepad++

2%

IntelliJ IDEA

1%

Sublime Text

Какие фреймворки вы регулярно используете для юнит-тестирования?

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

Как вы управляете сторонними библиотеками на С или C++?

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 можно объяснить его открытым исходным кодом, расширенной поддержкой архитектур и выдающимися возможностями оптимизации. В совокупности это дает разработчикам гибкое и экономичное решение.

Встраиваемые системы:

2023

Спасибо, что уделили время!

Если результаты исследования показались вам интересными, поделитесь ими с друзьями и коллегами.

Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.