This means that Python-based boards have a much quicker prototyping cycle: as soon as you press save, your code will start running. Python is also more readable, making it seem less daunting to people who aren’t already programmers. For organisations such as micro:bit and Adafruit, this is key: making hardware welcoming to beginners will increase the size of their community.
There are two main trade-offs: speed and availability of libraries. Compiled languages are faster, and there are currently far more libraries available for Arduino C++ than any other hobbyist language.
The two most popular implementations of Python for microcontrollers are MicroPython – created by Damien George for STM32, and now used by micro:bit and ESP32 – and CircuitPython – a fork of MicroPython that Adafruit manages, focussed on the Atmel ARM SAMD family and a Nordic BLE microcontroller. They are similar, but CircuitPython requires the microcontroller to support USB, and has sacrificed some functionality in favour of simplicity.
Another exciting development is that Python can also be used to actually design hardware, thanks to open-source projects such as Migen and LiteX. Migen is a Python framework for describing digital circuitry at a higher level than Verilog. LiteX builds upon Migen to enable you to build a fully functioning system on a chip (SoC), including a processor core, that can be loaded into an FPGA. Leveraging the accessibility of Python for chip design is a fascinating idea – I can’t wait to see how it evolves!