{"id":6990,"date":"2014-07-14T11:02:22","date_gmt":"2014-07-14T10:02:22","guid":{"rendered":"https:\/\/blogs.mentor.com\/colinwalls\/?p=6990"},"modified":"2026-03-26T16:43:47","modified_gmt":"2026-03-26T20:43:47","slug":"another-programming-language-survey-what-are-you-using","status":"publish","type":"post","link":"https:\/\/blogs.sw.siemens.com\/embedded-software\/2014\/07\/14\/another-programming-language-survey-what-are-you-using\/","title":{"rendered":"Another programming language survey &#8211; what are you using?"},"content":{"rendered":"<p>As I have <a href=\"https:\/\/blogs.mentor.com\/colinwalls\/blog\/2013\/07\/22\/programming-languages-and-prize-winners\/\" target=\"_blank\" rel=\"noopener noreferrer\">talked about before<\/a>, I am particularly interested in programming languages, with a strong focus on embedded, of course. So, I always take a look when I see a survey that looks at what developers are using and what the trends are. When I saw that the IEEE were publishing some results, they really had my attention.<\/p>\n<p>However, all was not what it seems &#8230;<!--more--><\/p>\n<p>The IEEE results may be viewed interactively <a href=\"http:\/\/spectrum.ieee.org\/static\/interactive-the-top-programming-languages\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>. If you filter on Embedded [by clicking on the other categories to exclude them], then show Show Extended Ranking, the ranking order is like this:<\/p>\n<ol>\n<li>C<\/li>\n<li>C++<\/li>\n<li>Assembly<\/li>\n<li>Arduino<\/li>\n<li>D<\/li>\n<li>Haskell<\/li>\n<li>VHDL<\/li>\n<li>Verilog<\/li>\n<li>Erlang<\/li>\n<li>Ada<\/li>\n<li>TCL<\/li>\n<li>Ladder Logic<\/li>\n<li>Forth<\/li>\n<\/ol>\n<div>\n<div><\/div>\n<\/p>\n<div><a href=\"http:\/\/www.gettyimages.com\/detail\/463376515\" target=\"_blank\" style=\"color:#a7a7a7;text-decoration:none;font-weight:normal !important;border:none\" rel=\"noopener noreferrer\">#463376515<\/a> \/ <a href=\"http:\/\/www.gettyimages.com\" target=\"_blank\" style=\"color:#a7a7a7;text-decoration:none;font-weight:normal !important;border:none\" rel=\"noopener noreferrer\">gettyimages.com<\/a><\/div>\n<\/div>\n<p>The top of the list is fine. C\/C++ are dominant and assembly matters. Arduino is essentially C\/C++ like. Later on there is Ada, Erlang and Forth &#8211; I am OK with those. But then there are so many anomalies:<\/p>\n<ul>\n<li>I have heard of D and Haskell, but are they really being used in a volume that merits their inclusion here?<\/li>\n<li>VHDL and Verilog are hardware definition languages &#8211; nothing to do with embedded programming.<\/li>\n<li>TCL is a widely used scripting language, but Python and Lua are also widely used options. Also, such scripting languages are less likely to be used for programming embedded systems, but are often applied to configuring development tools.<\/li>\n<li>Ladder Logic is used to parametrically program programmable logic controllers [PLCs]. I would not class that as embedded programming.<\/li>\n<li>Where is Java? Although you cannot build a complete embedded system in Java, it has a place.<\/li>\n<li>Javascript and HTML [5] are likely to be of interest to anyone developing a device with a graphical user interface.<\/li>\n<li>Maybe XML should have a look in.<\/li>\n<\/ul>\n<p>I am sure that there are other omissions that I have not thought of.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I have talked about before, I am particularly interested in programming languages, with a strong focus on embedded, of&#8230;<\/p>\n","protected":false},"author":71677,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spanish_translation":"","french_translation":"","german_translation":"","italian_translation":"","polish_translation":"","japanese_translation":"","chinese_translation":"","footnotes":""},"categories":[1],"tags":[312,313,300,340],"industry":[],"product":[],"coauthors":[],"class_list":["post-6990","post","type-post","status-publish","format-standard","hentry","category-news","tag-assembly","tag-c","tag-embedded-software","tag-programming-languages"],"_links":{"self":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/users\/71677"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/comments?post=6990"}],"version-history":[{"count":1,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6990\/revisions"}],"predecessor-version":[{"id":10286,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/posts\/6990\/revisions\/10286"}],"wp:attachment":[{"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/media?parent=6990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/categories?post=6990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/tags?post=6990"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/industry?post=6990"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/product?post=6990"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blogs.sw.siemens.com\/embedded-software\/wp-json\/wp\/v2\/coauthors?post=6990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}