

Too many variables and too many project-specific issues must be considered. Unfortunately, I must admit to feeling that this may be a combination of experience, talent, and luck that can't be translated into a formal decision-making process. I think a big part of my success on past projects has been a result of good language choices. A bad language choice may not keep you from finishing, but it could cause a lot of headaches along the way. If you choose wrong, you may run into problems at one of those points or, worse, during the subsequent integration and/or testing phase. If you choose correctly, you will be rewarded with a straightforward design and an even easier implementation. I'm absolutely convinced that matching your choice of programming language to the computing task at hand is essential. All of these things have been done in the process of creating real products that worked and were sold, and were mostly completed on schedule. Heck, I've even written a piece of embedded software in Java (complete with one of those "too big and too slow for use in any embedded system" Java virtual machines). Even more surprisingly, perhaps, I've made use of many parts of the C++ language without ever once paying a performance penalty. I've used C on memory-constrained eight-bit processors. I've used assembly language on occasion, but only once to improve the efficiency of a routine beyond what could have been done by an off-the-shelf C compiler. The fact that some of them always pick assembly and others C is one clue that the language decision is more complicated than they would have the rest of us believe.ĭuring my years as an embedded developer, I've broken many of the conventional language assumptions in this field‹with great success. The majority of embedded programmers just seem to assume that (almost invariably assembly or C when you're talking to embedded folks) is always the right choice. Nor have I ever seen a formal "language selection process" documented at any company. Yet, in all of my years as a software developer, I have never once worked with any engineer or manager who gave either discussion or serious thought to the matter of language selection.
#C more programming software keycode code#
Perhaps you've chosen the language that produces the most efficient code for your particular processor or maybe you've selected the one that will allow you to finish the coding most quickly or with fewer bugs. Have you chosen the best programming language for your current embedded project? Your answer may very well depend on how the phrase "best programming language" is defined. Given a particular programming problem, what language should you use to realize the solution? Your choice could very well affect the success or failure of the project.
