A frequent topic for discussion, I have found, both here and elsewhere, is programming languages for embedded development. Every developer has their favorite and has clear ideas on what is going to happen in the future. Market research also indicates certain trends, but, curiously, many of those trends have fallen victim to the innate conservatism of embedded developers. There is a strong “if it ain’t broke, don’t fix it” culture and I am not about to try to change that.
Currently, C is the dominant programming language for embedded. Market research has frequently told us that C++ usage will steadily increase and overtake C sometime soon. I have seen such surveys for about 20 years now and it does not seem to be happening …
Despite many people believing that C++ is a “better” language than C, its take-up has been sluggish. I am interested in this phenomenon and, although I do not think it is an ideal solution for everyone, I believe that C++ has something to offer many embedded software development teams.
In about a month’s time, I will be presenting a series of online classes on C++ for embedded – you can read full details and sign up here. I am currently developing the materials for the classes and that is where your input would be valuable. Consider these questions:
- If you are using C++, what caused you to make that choice of language? Was the transition hard?
- If you are not using C++, why not?
- What C+ features do you think are particularly useful for embedded developers?
- Are there any aspects of C++ that you regard as problematic/dangerous?
- Have you found any novel ways to apply the capabilities of C++ to an embedded application?
If you have useful/interesting answers to any of these questions, I would love to hear from you – by comment or email. I think that real-world user input would add value to the class and thank you in advance for your help.