Wenn Sie Embedded-Geräte programmieren, ist die Wahrscheinlichkeit groß, dass Sie Code in der Programmiersprache C/C++ schreiben. C wurde ursprünglich in den frühen 1970er Jahren entwickelt. Doch erst in den 1990er Jahren wurde die Programmierung von Embedded-Geräten von Assembler auf die höhere Programmiersprache C umgestellt. In den darauffolgenden dreißig Jahren war C/C++ dank seiner enormen Leistungsfähigkeit, sowohl in Bezug auf die Geschwindigkeit als auch auf die Kompaktheit, die vorherrschende Programmiersprache für Embedded-Anwendungen. Nun deutet sich mit der zunehmenden Verbreitung von Implementierungen der beliebten Programmiersprache Python für Embedded-Anwendungen eine weitere Verschiebung an.
Python wurde erstmals in den 1990er Jahren eingesetzt und hat seitdem bei Softwareentwicklern stetig an Beliebtheit gewonnen. Im Jahr 2020 erreichte Python bei der jährlichen Umfrage von IEEE Spectrum über die Beliebtheit von Programmiersprachen sogar den ersten Platz. Ursprünglich war Python bei Embedded-Entwicklern als Skriptsprache zum Testen elektronischer Geräte beliebt. Nach und nach wurde die Sprache auch in anderen Bereichen der Entwicklung eingesetzt. Es gibt mehrere Implementierungen von Python, wobei CPython die Referenzimplementierung ist, die häufig für Desktop-Anwendungen zum Einsatz kommt.
Entwickler müssen sich darüber im Klaren sein, dass es keine einheitliche Version der Programmiersprache Python gibt. Es gibt viele Implementierungen, von denen einige speziell für den Einsatz auf Embedded-Plattformen entwickelt wurden. Die Zukunft von Python als wichtige Programmiersprache in der professionellen Embedded-Entwicklung hängt davon ab, ob es die Leistung von C erreichen oder übertreffen kann. Denn der Wechsel von Assembler zu C ist auch nicht über Nacht erfolgt. Assembler wird immer noch für leistungskritische Teile eines C-Programms verwendet, wobei Assembler-Code in C-Makros eingefügt wird. Python und C können in ähnlicher Weise funktionieren.
Ein weiterer wichtiger Aspekt ist die Tatsache, dass die modernen Mikrocontroller heute wesentlich leistungsfähiger sind als die Mikrocontroller von vor zehn oder zwanzig Jahren. Die Taktzyklen sind von einigen Megahertz auf über ein Gigahertz gestiegen. Der Flash-Speicher, der früher nur ein paar Dutzend Kilobyte groß war, beträgt heute mehrere Megabyte. Der erhebliche Leistungssprung ist glücklicherweise nicht mit einem entsprechenden Preisanstieg einhergegangen. So können Entwickler von Embedded-Anwendungen Code in einer höheren Programmiersprache schreiben und dadurch hochwertige und schnelle Produkte entwickeln, ohne dabei jeden einzelnen Taktzyklus oder jedes einzelne Byte des Speichers berücksichtigen zu müssen.
Programmiersprachen entwickeln sich ebenso wie gesprochene Sprachen weiter und passen sich den Anforderungen der Zeit an. CPython-Ableger, die speziell für Embedded-Systeme entwickelt wurden, wie beispielsweise MicroPython und CircuitPython, werden künftig eine Schlüsselrolle in der Embedded-Entwicklung spielen, da sie den Entwicklungsprozess grundlegend vereinfachen. Gemeinsam mit grundlegenden Kenntnissen über elektronische Hardware bieten Embedded-Python-Sprachen den Anwendern unabhängig von ihrer Qualifikation die Möglichkeit, das Physische mit dem Digitalen zu verbinden. Dadurch eröffnen sich Möglichkeiten, die noch vor wenigen Jahren unvorstellbar waren. Auf der ganzen Welt können lokale Communities dank frei zugänglicher, quelloffener Programmiersprachen und Embedded-Plattformen Tools entwickeln, die auf ihre jeweiligen Anforderungen abgestimmt, kostengünstig und nachhaltig sind. Von der Erstellung von Programmen zur Überwachung der Umweltauswirkungen des Verkehrs in Großstädten bis hin zur Überwachung der Wasserqualität in Flüchtlingslagern. Mit Embedded Python wird die Welt mit jeder Zeile Code ein Stückchen besser.
Michael Parks, P.E. ist der Eigentümer von Green Shoe Garage, einem Entwicklungsstudio für kundenspezifische Elektronik und Technologieberatung im Süden von Maryland. Er produziert den S.T.E.A.M. Power-Podcast (ein Podcast über MINT-Themen), mit dem er die Öffentlichkeit für technische und wissenschaftliche Fragen sensibilisieren möchte. Michael ist außerdem zugelassener Ingenieur im Bundesstaat Maryland und hat einen Master-Abschluss in Systemtechnik von der Johns Hopkins University.