Wer die für sich und sein Projekt passende Programmiersprache wählt, spart viel Zeit. Auf dem Raspberry Pi kommen dabei andere Kriterien in Betracht als auf einem Desktop-PC.
README
Wer auf oder für den Raspberry Pi entwickelt, muss sich bei seinen Projekten für eine Programmiersprache entscheiden. Der Artikel zeigt, welche Sprache sich in welchen Fällen für den Minicomputer eignet sowie welche Entwicklungsumgebungen infrage kommen.
Wer Software für den RasPi schreiben möchte, findet eine Vielzahl an Möglichkeiten vor. Der eine möchte ein konkretes Endprodukt erstellen, der andere nur seine Programmierkenntnisse vertiefen oder das Kodieren erst noch von der Pike auf erlernen. Im Folgenden gehen wir auf diese einzelnen Anwendungsgebiete ein und bieten eine Entscheidungshilfe für das Finden der jeweils richtigen Sprache. Für alle, die nicht nur für, sondern auch auf dem RasPi entwickeln möchten, empfehlen wir fallweise schlanke Entwicklungsumgebungen, welche die ARM-CPU nicht überfordern.
Scratch
Seit 2007 entwickelt eine Forschergruppe am MIT die visuelle Programmiersprache Scratch [1], die es Kindern erleichtern soll, das Programmieren zu erlernen. Doch auch Erwachsene mit wenig Programmiererfahrung profitieren von der Sprache.
Da man bei Scratch keinen Text eintippt, sondern stattdessen Befehle als visuelle Blöcke auf dem Bildschirm anordnet (Abbildung 1), gestaltet sich der Einstieg sehr einfach. Mit nur wenigen Klicks lassen sich “Sprites” auf einer Bühne anordnen sowie Ereignisse und Befehle definieren, was für ein schnelles Erfolgserlebnis sorgt.
Dies mag trivial anmuten, ist jedoch didaktisch sehr ausgeklügelt: Mithilfe von Scratch erlernen Sie spielerisch wichtige Grundkonzepte des Programmierens, wie etwa Kontrollstrukturen, Ereignisorientierung oder parallele Programmierung. Durch eine Kultur des “Remixing”, bei der Nutzer oft die Projekte von anderen erweitern und neu zusammenstellen, motivieren sich Lernwillige zusätzlich.
Für die RasPi-Version von Scratch gibt es die Erweiterung Scratch GPIO [2], mittels derer Sie die Pins der gleichnamigen Schnittstelle ansprechen [3]. Auch wurde einige Hardware speziell für das Zusammenspiel mit Scratch entwickelt, wie etwa das Senseboard oder das Picoboard.
Wenn Sie auf dem Pi das Programmieren von Grund auf erlernen möchten, jedoch über keine Vorkenntnisse verfügen, ist diese bei Raspbian vorinstallierte Sprache genau das Richtige für Sie.
Python
Das Pi im Namen des Raspberry Pi leitet sich von der Programmiersprache Python [4] ab: Die Schöpfer des Minicomputers wollten damit zum Ausdruck bringen, dass sie diese moderne Skriptsprache besonders empfehlen.
Auf der einen Seite ist Python-Quellcode sehr leicht lesbar, sodass Anfänger die Sprache schnell erlernen können, sobald sie über Scratch “hinauswachsen”. Auf der anderen Seite eröffnet Python die Möglichkeit, auf eine Vielzahl an mächtigen Bibliotheken für so gut wie jeden Verwendungszweck zuzugreifen. Selbst die Google-Programmierer entwickeln einige Komponenten ihrer Dienste in dieser Skriptsprache.
Raspbian bringt die Python-Entwicklungsumgebung Idle [5] bereits vorinstalliert auf dem Desktop mit, sodass Sie bei Bedarf direkt loslegen können. Beim Surfen im Mikrokosmos der Raspberry-Pi-Community bemerkt man sehr schnell die Dominanz dieser Sprache: Etliche RasPi-Programmiertutorials beziehen sich explizit darauf, und kreative Bastler liefern ihre Hardware-Erweiterungen für den Pi in der Regel mit entsprechenden Software-Bibliotheken für Python aus.
Alternativlos?
Wäre es also am sinnvollsten, auf dem RasPi stets nur Python zu verwenden, und alle anderen Sprachen keines Blickes zu würdigen? Nein, definitiv nicht. Zwar eignet sich Python beispielsweise gut für Konsolenskripte oder auch zur Ansteuerung einfacher Hardware-Komponenten. Doch um GUI-Anwendungen für den Raspbian-Desktop zu entwerfen, existieren bessere Lösungen.
Auch ist die Geschwindigkeit des Python-Interpreters nicht mit jener kompilierter C-Programme vergleichbar. Selbst die Zuhilfenahme des Python-JIT-Compilers PyPy [6] (für den RasPi noch im Beta-Status) bringt da wenig Verbesserung. Zudem erlaubt Python – wie die meisten anderen interpretierten Skriptsprachen auch – dynamisch typisierte Variablen, was zu einem unsauberen Programmierstil verleiten kann.







