The Rise of Python for Embedded Systems
Well, &quot;Embedded Systems&quot; represents a continuum ranging from simple non-smart programmable thermostats to microwave ovens, televisions, engine controllers, navigation systems, high performance servo controllers and more.  I have always found discussion about programming languages to completely miss the reality of what it is to deliver, support and maintain these products.<p>I have developed embedded systems in the context of a real business manufacturing and supporting these products using everything from assembly language, through Forth, C, C++ and, yes, Python.<p>There was always a good reason to make an choice at the time.  For example, an embedded system running a sophisticated control panel with dozens of knobs and buttons was done entirely in assembly language eons ago.  It didn&#x27;t take long for that to become a very bad idea.  It was very difficult to maintain, improve and evolve the system.  We ultimately decided to bite the bullet and port the code to C.  The difference in the ability to express ideas was massive.<p>The only two languages I would avoid today are assembly language and Forth.  The first because it is a nightmare to support, maintain and evolve outside of trivial systems.  The second because it is impossible to find good Forth programmers these days and the ecosystem (libraries, etc.) is nonexistent.  That said, I still think everyone should learn both.<p>I have yet to see an embedded system that can&#x27;t be done well (and by that I mean the entire life cycle of a product) with plain-old C.  Nothing wrong with the language.  No magic.  It works and it can produce clean, reliable fast code.<p>C++.  Well.  If you came up through assembler and Forth you learn to despise waste.  And that&#x27;s what forcing an object oriented approach tends to be when there is, in the end, no real need to take this route.  Sometimes I see OO as a tool lazy programmers reach for.  Some of the funniest code I&#x27;ve seen are things like erecting a complex OO solution to implement a state machine when a simple lookup table and minimal procedural code could do exactly the same, run faster and with less resources.  I also do hardware in FPGA&#x27;s so that&#x27;s a formula for being keenly aware of resources and not wasting them.<p>As for Python.  Well, frankly, it&#x27;s about the libraries and nothing else.  If you need to do an advanced embedded system with, for example, vision, you almost can&#x27;t beat the Python ecosystem.  Not because of the language.  No.  I couldn&#x27;t care less.  I care about time to market and the Python ecosystem offers a cornucopia of solutions covering just about any field one might care to name.  You can hire Python programmers and anyone who knows C-like languages can learn it fast.  That&#x27;s important.<p>In the end we build products and all that matters is to build said products as cost-effectively as possible and the ability to support, maintain and evolve them just as effectively.