Excellent questions.  First, there is the complexity of setting up a cross-development environment for your chosen controller.  Take the 8-bit AVR&#x27;s as found in Arduino.  I was using those before Arduino, and frankly didn&#x27;t see the point of Arduino.  But then given my prior experience it was not much of an issue for me to set up a good cross-dev environment and write C to the bare-metal, and pretty soon was sending patches to gdb-avr. But... the magic of Arduino, I see now, was that it created an approachable development environment for AVR&#x27;s that was friendly to people that didn&#x27;t come to AVR&#x27;s ready to patch gdb to their liking.<p>Now fast-forward to today, when 8-bit controllers are pretty much a thing of the past and ARM Cortex-Mx processors are the  way to go.  Setting up C&#x2F;C++ cross-development is a bit more challenging.  Writing enough code to get out of reset, get your I&#x2F;O mux&#x27;es set, and actually wiggle an output pin is a lot of work.  What Micropython does is turn a USB cable into a development environment that allows you to try things on an ARM a few minutes after your PyBoard arrives in the mail.  It also provides a BSD-licensed base of code that works with a well-defined and easy to install build chain so that you can reflash the part with a custom build of your liking.  So for the performance-critical parts, you can write a C extension,  if it comes to that. But a little bit of in-line assembly (which Micropython supports) might be all you need.<p>TL;DR: You can avoid a lot of time-consuming heavy lifting and focus your energy on the part that matters to you, accessible through a very powerful language.<p>I&#x27;m admittedly a Micropython partisan. But FWIW I have been doing embedded development off-and-on since the 6502 was the hot new chip (yes, gray beard and all) and to me Micropython is the most interesting development in embedded development since Arduino.<p>All that said: Is it really a viable way to ship a commercial product?  I say yes: 1. The licensing is there. 2. You can easily write C extensions for the performance critical parts. 3. Python should give you time-to-market advantages over C-on-the-bare-metal.