Python vs. C++

Die Qual der Wahl

Software für den Picoboy wird immer am PC programmiert und später übertragen. Sie lässt sich allerdings in zwei völlig unterschiedlichen Sprachen entwickeln, C++/Arduino und MicroPython. Beide haben gemeinsam, dass es sich um textuelle Sprachen handelt, die Programmierung also durch das Schreiben von Quelltext geschieht und nicht durch das Zusammenschieben von Blöcken wie in Scratch! oder Ardublockly.

Damit du dich besser zwischen ihnen entscheiden kannst, werden sie in den folgenden Abschnitten kurz vorgestellt.

MicroPython

Python ist eine Programmiersprache, die ursprünglich als Anfängersprache entworfen wurde. Daher ist sie leicht verständlich, gut strukturiert und dokumentiert. Python wird allerdings auch von fortgeschrittenen Programmierern gerne verwendet, sodass es laut TIOBE-Index im März 2023 die weltweit beliebteste Programmiersprache war.

MicroPython ist eine auf Microcontroller, wie dem RP2040 im Picoboy, zugeschnittene Variante. Wie auch die meisten anderen Varianten von Python ist auch MicroPython eine interpretierte Sprache. Das bedeutet, dass der Programmcode jedes Mal während der Ausführung in eine direkt für den Prozessor verständliche Sprache gewandelt wird. Daher erreichen Programme in Micropython nur einen Bruchteil der Geschwindigkeit von Programmen, die in C++ verfasst wurden.

Für den Einstieg ist MicroPython dennoch eine sehr sinnvolle Sprache, da es sehr einfach ist und sich die grundlegenden Konzepte kaum von denen in C++ unterscheiden.

Ein Programmbeispiel in MicroPython:

print("Die Zahlen von 1 bis 100 sind")
for i in range(1,101):
  print(i)

C++/Arduino

C++ wurde im Gegensatz zu Python nicht als Anfängersprache entworfen und ist daher schwieriger zu erlernen. Sie ist ebenfalls eine der weltweit beliebtesten Sprachen (Platz 3 des TIOBE-Index im März 2023) und wird oft für Anwendungen verwendet, die eine hohe Ausführungsgeschwindigkeit erfordern, zum Beispiel für Spiele oder Grafikanwendungen.

Der Geschwindigkeitsvorsprung resultiert vor allem darauf, dass der Programmcode von C++ vor der Ausführung noch auf dem Rechner in eine direkt vom Prozessor ausführbare Form übersetzt wird.

Entwickelst du in C++ Software für den Picoboy, so steht dir die Arduino-Umgebung zur Verfügung. Sie gibt eine gewisse Programmstruktur vor und stellt dir eine Menge nützlicher Funktionen zur Verfügung. Sie ist im Hobbybereich aktuell der Standard für die Programmierung von Microcontrollern.

Solltest du bereits Kenntnisse in Java oder C# haben, so fällt dir der Einstieg vermutlich leicht, da viele Strukturen ähnlich zu denen in C++ sind.

Ein Programmbeispiel in C++:

void setup() {
  Serial.begin(9600);
  Serial.println("Die Zahlen von 1 bis 100 sind");
  for(int i = 1; i < 101; i++){
    Serial.println(i);
  }
}

void loop() {
}