Embedded

Share:

This section includes responses from those who reported that they develop hardware or home automation solutions.

Languages used in embedded development

31%

Python

20%

C++

15%

C

13%

Java

11%

JavaScript

8%

C#

7%

TypeScript

This chart includes the languages used by those who selected “Hardware” or “Home Automation solutions” in response to the question “What types of software do you develop with your main languages?”

Which C standard(s) do you regularly use?

47%

45%

C99

41%

34%

C11

16%

23%

C17

4%

C2x

30%

32%

Embedded C

10%

11%

I'm not sure

3%

3%

Other

Which C++ standard(s) do you regularly use?

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%

I'm not sure

Inbal Levi

Lead Software Engineer at MPGC Services Ltd (Millennium)

It’s great to see such a significant proportion of embedded developers working with C++20 already. This version extends compile-time abilities, which is very beneficial for industries with a lot of emphasis on runtime performance. I hope to see similar adoption rates for C++23 in the upcoming years.

Which IDE / editor do you use the most?

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%Other
0%47%

Do you develop in C or C++?

CLion is a powerful cross-platform IDE used by many embedded developers around the world. Check out if it’s right for you and the hardware you work with.

Which IDE or editor do you use the most for Python development?

34%

Visual Studio Code

26%

PyCharm Professional Edition

22%

PyCharm Community Edition

7%

Jupyter Notebook

3%

Notepad++

2%

IntelliJ IDEA

1%

Sublime Text

Which unit testing frameworks do you regularly use?

35%

24%

GoogleTest

23%

I don’t write unit tests for C / C++

15%

6%

Catch

8%

4%

CppUnit

5%

4%

Boost.Test

Ivan Kravets

Ph.D., Inventor, CEO at PlatformIO Labs

The increasing adoption of testing frameworks in the embedded software development ecosystem is a promising trend, despite the current 20% of developers still not using them. This shift toward test-driven approaches signifies a positive direction, enhancing reliability and quality in embedded systems and demonstrating the industry’s commitment to delivering robust products.

Which project models or build systems do you regularly use?

74%

59%

CMake

44%

45%

Makefile

27%

21%

Visual Studio project

26%

16%

Ninja

6%

Gradle

How do you manage your third-party libraries in С or C++?

29%

24%

I use a system package manager

28%

The library source code is part of my build

22%

I compile the libraries separately using their instructions

15%

I download prebuilt libraries from the internet

13%

8%

vcpkg

8%

6%

NuGet

Ivan Kravets

Ph.D., Inventor, CEO at PlatformIO Labs

This poll highlights a concerning trend in embedded development, where many developers continue to struggle with the outdated practices of managing third-party libraries. Embracing a declarative approach is crucial as it can not only alleviate this complexity but also significantly enhance the overall developer experience. This results in more efficient handling of multiple libraries, ultimately accelerating progress in the field of embedded software development.

Which compilers do you regularly use?

81%

82%

GCC

50%

32%

Clang

31%

20%

MSVC

21%

43%

Compiler for microcontrollers

14%

Clang-cl

Ivan Kravets

Ph.D., Inventor, CEO at PlatformIO Labs

The overwhelming preference for the GCC compiler can be attributed to its open-source nature, extensive architecture support, and robust optimization capabilities, which collectively empower developers with flexibility and cost-effective solutions for their embedded projects.

Embedded:

2023

Thank you for your time!

We hope you found our report useful. Share this report with your friends and colleagues.

If you have any questions or suggestions, please contact us at surveys@jetbrains.com.