Developers have to take several critical decisions and one of them is language selection. This decision needs to be undertaken at the start of a project for implementing the system. Language selection impacts the execution of a system as well as its design.
Several times, we come across an approach wherein language selection is based greatly on aspirations, rather than reality. Generally speaking, there are two languages which are commonly used-C and C++. In order to select a language for an embedded system programming, the availability and skill of the developer needs to be taken into consideration. For instance, whether a developer should use a procedural language or an object-oriented one? This decision could have long-term implications for a project.
Often developers are ignorant about the biases they have for the languages they select. In reality, there is no perfect language. For example, several developers who usually make use of run-time languages like Python or Java might claim that embedded C++ or C can place a burden on the developers as they need to pay attention to low-level details like memory management. They would also need to care about the restricted granularity related to compile-time type check. Many times, developers pick a certain language or tools supported by a language because they know of its availability.