Welche Programmiersprache sollte man für einen Raspberry Pi verwenden?
Wenn Sie neu auf dem Raspberry Pi sind, stehen Sie vielleicht vor der Entscheidung, welche Programmiersprache Sie lernen möchten.
Es gibt so viele Sprachen, und die Entscheidung, welche Sie lernen wollen, hat einen großen Einfluss darauf, was Sie tun können. Werfen wir also einen Blick auf die Sprachen, die Sie mit dem Raspberry Pi verwenden können.
Vorinstallierte Sprachen auf dem Raspberry Pi
Der vielleicht wichtigste Hinweis, den Sie vom Raspberry Pi mitnehmen können, sind die Sprachen, die auf dem Raspberry Pi OS vorinstalliert sind.
Bei jeder Installation sind Python, Scratch und C oder C++ vorinstalliert.
Schauen wir uns also zunächst diese drei Sprachen an.
Python: großartige Allzwecksprache für Raspberry Pi
Vorteile:
- Leicht zu erlernen
- Eine Vielzahl von Bibliotheken für Komponenten
- Viele tolle Tutorials, die Sie auf den neuesten Stand bringen
- Kann auf den Raspberry Pi-Mikrocomputern und der Pico-Serie verwendet werden
Nachteile:
- Nicht geeignet für die Website-Entwicklung (insbesondere Frontend)
- Langsamer als C oder C++
Wenn Sie bei Null anfangen, dann ist Python wahrscheinlich der schnellste und effizienteste Weg, um loszulegen.
Zum einen ist Python eine der leichter zu erlernenden Sprachen.
Ein weiterer Grund ist, dass es viele in Python geschriebene Bibliotheken für verschiedene Sensoren und Komponenten gibt. Infolgedessen werden viele Skripte für Tutorials und Projekte in Python geschrieben sein.
Wenn Sie eine andere Sprache, z. B. JavaScript (über NodeJS), verwenden würden, könnten Sie ohne eine Bibliothek für einen gängigen Sensor nicht weiterkommen.
Schließlich hilft Ihnen das Erlernen von Python bei der Interaktion mit allen Boards der Raspberry Pi-Produktpalette. Sie können Projekte sowohl für den Raspberry Pi 4 als auch für den Raspberry Pi Pico erstellen.
Die Hersteller des Raspberry Pi machen es Ihnen auch leicht, Projekte in Python zu erstellen. Zum einen werden alle Raspberry Pi-Mikrocomputer (z. B. Pi 4) mit Thonny geliefert, einer Python-IDE, und alle Raspberry Pi Picos lesen standardmäßig MicroPython.
Thonny macht Python auf dem Raspberry Pi einfach
Auf dem Raspberry Pi OS ist außerdem Thonny vorinstalliert, mit dem sich Python-Skripte ganz einfach ausführen lassen.
Thonny macht das Programmieren in Python einfach, denn Sie können Skripte ganz einfach starten und stoppen, indem Sie die Schaltfläche "RUN" oder "STOP" in der IDE drücken.
Wenn Sie hingegen einen anderen Editor verwenden, müssen Sie das Skript wahrscheinlich in das Terminal eingeben, um es auszuführen.
MicroPython für Raspberry Pi Pico
Python ist besonders nützlich, wenn Sie den Raspberry Pi Pico verwenden möchten.
Im Gegensatz zu den Raspberry Pi-Mikrocomputern unterstützt der Raspberry Pi Pico standardmäßig nur drei Sprachen: C oder C++ und MicroPython.
Das bedeutet, dass Sie, wenn Sie Python gelernt haben, in der Lage sein werden, MicroPython zu schreiben, da die Syntax dieselbe ist.
Der Hauptunterschied zwischen Python und MicroPython besteht darin, dass letzteres eine kleinere Standardbibliothek hat.
SchaltkreisPython
Neben MicroPython ist CircuitPython ein weiteres Python-Derivat, das auf dem Raspberry Pi Pico verwendet wird. CircuitPython wird von Adafruit entwickelt.
Ist Python eine gute Sprache für Raspberry Pi-Benutzer?
YES. Auf jeden Fall.
Wenn Sie Projekte für den Raspberry Pi erstellen möchten, benötigen Sie auf jeden Fall Python-Kenntnisse.
Ich habe meine Programmierreise mit JavaScript begonnen. Außerhalb der Raspberry Pi-Sphäre ist JavaScript eine sehr effiziente Sprache, weil man damit Programme und Websites erstellen kann.
Eines Tages musste ich jedoch ein Programm für eine Sieben-Segment-Anzeige erstellen, und es gab keine Möglichkeit, dies in JavaScript zu tun.
Ich fand ein Skript im Internet, aber es war in Python, und das brachte mich auf den Weg, Python zu lernen.
Wenn Sie den effizientesten, schnellsten und einfachsten Weg suchen, um Raspberry Pi-Projekte zu erstellen, dann ist das Erlernen von Python der richtige Weg.
Wo man Python für die Raspberry Pi Programmierung lernen kann
Lernpfad - Diese Ressourcen stellen Links zusammen, mit denen Sie bestimmte Teile von Python lernen können. Es sind allgemeine Lernpfade und nicht spezifisch für den Raspberry Pi.
Harvard OpenCourseWare, CS50s Einführung in die Programmierung mit Python
YouTube Videos
Corey Schafers Wiedergabeliste mit Python-Tutorials für Anfänger
Raspberry Pi-spezifische Kurse - Diese Kurse sind für Anfänger gedacht
Raspberry Pi Stiftung - Dieser Kurs gibt Ihnen einen allgemeinen Überblick über die Programmierung in Python und geht auf die Spieleprogrammierung und die Interaktion mit Sensoren und Komponenten ein.
Echte Python, Physikalische Projekte mit Python auf dem Raspberry Pi erstellen - Dies ist ein großartiger Leitfaden für Leute, die ein Sensor- und Komponenten-Kit haben und in den Code eintauchen wollen, der mit den GPIO interagiert. Im Gegensatz zu allgemeinen Python-Tutorials lernen Sie hier, wie man einfache Sensoren verdrahtet und wie man mit einem Raspberry Pi 4 mit ihnen interagiert.
Scratch für Raspberry Pi
Einer meiner Freunde hat mir seine LED-Ampel gezeigt, die er mit seinem Raspberry Pi 4 gebaut hat.
Er ist ein erfahrener Entwickler mit umfangreichen Kenntnissen in der Java- und JavaScript-Programmierung, daher habe ich erwartet, dass er es in einer Programmiersprache geschrieben hat.
Aber nein...
Er hat Scratch benutzt.
Wie?
Warum hat ein erfahrener Softwareentwickler Scratch benutzt?
Scratch beschreibt sich selbst als "die weltweit größte Coding-Community für Kinder und eine Coding-Sprache mit einer einfachen visuellen Schnittstelle, die es jungen Menschen ermöglicht, digitale Geschichten, Spiele und Animationen zu erstellen".
Mein Freund war definitiv kein Kind.
Als ich ihn nach dem Grund fragte, gab er mir eine Antwort, die so nützlich war wie eine Git-Commit-Nachricht: "Nun, es ist einfach zu programmieren".
Um fair zu sein, als ich den Raspberry Pi Store in Cambridge, UK, besuchte, hatten sie auch einen Pi, auf dem Scratch lief.
Es muss also für irgendetwas gut sein!
Ist Scratch eine gute Programmiersprache für Raspberry Pi-Benutzer?
Ich nehme an, es ist gut, um an der Oberfläche der Programmierung zu kratzen.
Das Ziel von Scratch ist es, Kindern und Jugendlichen das Programmieren leicht zu machen. Anstatt abstrakten Code zu schreiben, kann man mit Scratch Programme erstellen, indem man Blöcke zusammenfügt.
Um mit Scratch eine LED blinken zu lassen, musst du diese Blöcke zusammensetzen:
Vergleichen Sie dies nun mit einem Python-Skript zum Blinken der LED,
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BOARD)
GPIO.setup(8, GPIO.OUT, initial=GPIO.LOW)
while True:
GPIO.output(8, GPIO.HIGH)
sleep(1)
GPIO.output(8, GPIO.LOW)
sleep(1)
Vielleicht ist das derselbe Grund, warum manche Leute lieber eine grafische Benutzeroberfläche als eine Befehlszeile verwenden. Anstatt den Wert einer Variablen mit mehreren Leerzeichen, Pfeiltasten und anderen Tastendrücken zu ändern, würde man einfach klicken und auswählen.
Für einfache Projekte, zum Lernen und Lehren ist Scratch eine gute Wahl.
Die Nachteile von Scratch für Raspberry Pi
Falls Sie das Wortspiel im vorigen Abschnitt verpasst haben, hier ist es noch einmal: Scratch kratzt nur an der Oberfläche.
Sobald Ihr Projekt größer wird, werden Sie unweigerlich eine gängigere Sprache wie Python, C oder C++ verwenden wollen, weil Sie dann auf eine Fülle von Code, Bibliotheken und Skripten zugreifen können, die online verfügbar sind.
Scratch lernen
Wenn du neugierig bist, wie Scratch funktioniert, kannst du dir schnell einen Eindruck davon verschaffen, wie die Methode der "Bausteine" funktioniert über seine Online-Umgebung.
- Raspberry Pi hat ein paar Scratch-Kurseauch solche, die den Bau von Hardware beinhalten.
- Aaron Maurer hat ein YouTube-Tutorial um dir zu zeigen, wie du Scratch 3 verwendest und eine LED blinken lässt.
C oder C++ für Raspberry Pi
Die ultimativen Programmiersprachen, die Ihnen die ultimative Kontrolle geben, sind auch mit am schwierigsten zu erlernen und zu beherrschen.
Was ist der Unterschied zwischen C und C++?
C++ ist in gewisser Weise eine erweiterte Version von C, die viele Funktionen wie die Unterstützung der objektorientierten Programmierung von Haus aus mitbringt. Das ++ ist ein Wortspiel mit der Art und Weise, wie Operatoren in C und C++ selbst inkrementiert werden können. Wenn Sie z. B. eine Variable cats haben und ihr einen Wert hinzufügen wollen, können Sie einfach cats++ schreiben;
Insbesondere C++ ist sehr dynamisch und wird ständig aktualisiert. Es ist eine komplexe Sprache, die man lernen muss. Für Anfänger könnte C eine geeignetere Sprache sein.
Worin besteht der Hauptunterschied zu anderen für den Pi verwendeten Sprachen?
Diese Sprachen werden kompiliert, d. h. Sie schreiben Code und verwenden dann eine spezielle Anwendung, die als Compiler bezeichnet wird, um Maschinen-Byte-Code zu erzeugen, den der Prozessor Ihrer Zielarchitektur von Haus aus versteht. Mit anderen Worten: Wenn Sie eine Anwendung sowohl auf dem Pico W und dem Raspberry Pi als auch auf Ihrem Desktop-Computer (x86-basiert) ausführen möchten, müssen Sie für jede dieser Architekturen einen speziellen Compiler verwenden.
Ein weiteres Beispiel für eine kompilierte Sprache ist Rust, das einige große Vorteile hat. Bei C und C++ müssen Sie sich um bestimmte Dinge wie die Garbage Collection kümmern - wenn Sie das nicht tun, kann Ihre Anwendung abstürzen. Oder der ganze Computer könnte abstürzen, wenn Sie Gerätetreiber schreiben. Bei Rust gibt es zusätzliche Sicherheitsvorkehrungen für den Entwickler.
Eine weitere beliebte kompilierte Sprache, die von Google entwickelt wurde, heißt Go. Möglicherweise werden Sie von Zeit zu Zeit Hinweise auf sie finden.
Wenn Sie noch nie programmiert haben, empfehle ich Ihnen für den Einstieg interpretierte Sprachen. Sie benötigen keinen Kompilierungsschritt, sondern werden von einer Anwendung eingelesen, die dann den richtigen Befehl ausführt. Eine gute Sprache für den Einstieg ist Python (oder MicroPython).
Wenn Sie jedoch jemals eine verblüffende Projekte wie das Spielen von Doom auf einem Raspberry Pi Pico dann müssen Sie C oder C++ beherrschen.
C oder C++ sind im Allgemeinen eine der drei Sprachen, die am häufigsten auf dem Raspberry Pi verwendet werden, die andere ist Python. Daher wird ein großer Teil dieses Abschnitts über die Vor- und Nachteile der beiden Sprachen sprechen.
Beginnen wir mit einem Vergleich der drei:
C und C++ | MicroPython | |
Geschwindigkeit | Schneller | Langsamer |
Lernkurve | Härter | Einfacher |
Speicherverwaltung | Handbuch | Automatisch (Müllabfuhr) |
Kompiliert? Interpretiert? | Kompiliert | Gedolmetscht |
Verwendung durch die Gemeinschaft | Breite Verwendung, insbesondere bei fortgeschrittenen Projekten, bei denen eine genaue Kontrolle erforderlich ist | Weit verbreitet bei Anfängern und fortgeschrittenen Benutzern. |
Bibliotheken für Komponenten | Generell verfügbar | Generell verfügbar |
Sollte ein Anfänger C oder C++ lernen?
Es gibt nichts, was Sie davon abhalten könnte, eine Feuerprobe zu machen.
Denn was dich nicht umbringt, macht dich stärker.
Die meisten Projekte können sowohl mit Python als auch mit C oder C++ durchgeführt werden. Die Verfügbarkeit von Bibliotheken für die drei Sprachen ist ebenfalls weit verbreitet und es ist unwahrscheinlich, dass Sie durch das Fehlen einer Bibliothek in einen Engpass geraten.
Wie hartnäckig sind Sie?
C oder C++ machen Anfängern weniger Spaß, weil es viele Aspekte gibt, über die man sich Gedanken machen muss, was bei Python nicht der Fall ist.
In C und C++ zum Beispiel müssen Sie Ihren Speicher verwalten. Außerdem müssen Sie sich überlegen, welchen Datentyp Sie einer Variablen zuweisen. Das kann mühsam werden, wenn Sie sich der Auswirkungen der Vor- und Nachteile der Wahl eines Typs nicht bewusst sind.
Wenn Sie zum Beispiel eine ganze Zahl in C und C++ zuweisen wollen, müssen Sie entscheiden, ob Sie das wollen:
- int
- char
- unsigned char
- signiertes Zeichen
- unsigned int
- kurz
- unsigned short
- lang
- unsigned long
Die Wahl einer dieser Optionen hat Auswirkungen auf die Geschwindigkeit und den Speicherbedarf Ihres Programms.
Und obwohl Python weniger effizient ist, müssen Sie dies nur tun, wenn Sie eine ganze Zahl deklarieren wollen:
integer = 999999999999999
Aber ohne Fleiß kein Preis, richtig?
Sobald Sie mit der Funktionsweise von C oder C++ vertraut sind, werden Sie von den Vorteilen profitieren. Da der Raspberry Pi nach heutigen Maßstäben kein sehr leistungsfähiger Computer ist, wird Ihnen die Fähigkeit, effizienten Code zu schreiben, dabei helfen, die beste Leistung aus seiner begrenzten Hardware herauszuholen.
Die Einrichtung von C und C++ nimmt mehr Zeit in Anspruch
Als die Raspberry Pi Pico Boards herauskamen, musste ich über die Einrichtung des Pico für Python und C und C++ schreiben.
Python war super einfach. Thonny herunterladen. Pico einstecken. MicroPython flashen. Erledigt.
C und C++ waren viel schwieriger und langwieriger. Es ist offensichtlich - Raspberry Pi veröffentlicht ein PDF nur zum Thema C/C++ einrichten. Sagen wir einfach, Sie mussten mit der Befehlszeile interagieren, um es einzurichten.
Du wirst immer C das Licht
C ist etwa 40 Jahre alt und wird auch heute noch verwendet.
Was sagt das über sie aus?
Es ist eine der dynamischsten Sprachen, die man lernen kann, um Software zu erstellen und Hardware zu manipulieren.
Wenn Sie also eine äußerst nützliche und leistungsstarke Sprache lernen möchten, ist C die beste erste Sprache, die Sie lernen können.
Psst... C und C++ können auf anderen Boards verwendet werden
Ich schreibe dies im Jahr 2022, in dem der Bestand an Raspberry Pi ein großes Thema ist.
Eine der wichtigsten Fragen, die sich die Leute stellen, ist: "Welche alternativen Boards gibt es? Ich kann keine Projekte mit einem nicht existierenden Raspberry Pi bauen."
Es gibt viele alternative Bretter, und Sie können sie hier nachlesen.
Wenn Sie C oder C++ gelernt haben, können Sie direkt mit einem Arduino-, ESP32- oder ESP8266-Board arbeiten, dessen Programme fast ausschließlich in C oder C++ geschrieben sind.
Diese Boards können möglicherweise nicht mit Python umgehen. Wenn der Grund, warum Sie sich für den Raspberry Pi interessieren, die Erstellung von Projekten mit Mikrocontrollern ist, finden Sie vielleicht C oder C++ als eine besser übertragbare Sprache.
C oder C++ für Raspberry Pi lernen
MagPi veröffentlicht ein kostenloses Magazin für Anfänger.
Hier sind Drachen
Im obigen Abschnitt haben wir über die Programmiersprachen gesprochen, die Sie lernen sollten.
Im folgenden Abschnitt geht es um mögliche Sprachen, die auch mit dem Raspberry Pi verwendet werden können, aber die Anwendungsfälle und die Community sind nicht so groß wie bei Python, C, C++ und Scratch.
JavaScript (einschließlich NodeJS)
JavaScript ist eine der nützlichsten Sprachen für Hobbyprogrammierer, da man mit ihr Anwendungen, Websites (mit HTML und CSS) und Backends erstellen kann.
Einer der größten Fortschritte im Bereich JavaScript heißt NodeJS. Früher war JavaScript hauptsächlich browserbasiert, aber mit NodeJS können Sie ein Backend ausführen und Anwendungen für Ihren Raspberry Pi und andere Computer erstellen.
Speziell für den Raspberry Pi gibt es Bibliotheken, mit denen Sie die GPIO-Pins des Raspberry Pi manipulieren können. Wenn Sie also ein einfaches Projekt bauen wollen, werden Sie kein Problem haben, ein JavaScript-Programm auszuführen.
Der größte Engpass in Ihrem Projekt ist jedoch das Fehlen einer Gemeinschaft, in der sich Raspberry Pi und JavaScript überschneiden.
Das wird deutlich, wenn Sie die Github-Seite von jemandem besuchen und sein Projekt unweigerlich in Python oder C, C++ geschrieben ist. Nur sehr wenige Programmierer verwenden JavaScript für den Raspberry Pi.
Ist JavaScript also eine Abschreibung?
Nein, nicht wirklich.
Sie hat immer noch ihre Berechtigung.
Ein Anwendungsfall, bei dem das Erlernen von JavaScript Ihnen helfen kann, Ihre Ziele zu erreichen, ist, wenn Sie Ihren Raspberry Pi als Webserver verwenden möchten. Sie können das Backend in ExpressJS (ein Backend-Framework) und das Frontend in React/Angular/Vue (Frontend-Frameworks) schreiben und dann PM2 (einen Prozessmanager) verwenden, um das Back- und Frontend bereitzustellen. In diesem Szenario können Sie es komplett in JavaScript machen.
Raspberry Pi Pico W benötigt JavaScript
Vor einiger Zeit wurde ich auf einem React-Treffen von jemandem dafür gehänselt, dass ich Vanilla JavaScript schreibe. Er stichelte: "Welches Jahr haben wir? Die 2000er?"
Wenn Sie einen Raspberry Pi Pico W haben, müssen Sie irgendwann wissen, wie man Vanille-JavaScript.
Wer lacht denn jetzt?
Während die Welt der Webentwicklung dazu übergegangen ist, ein Frontend-Framework wie React, Angular oder Vue zu verwenden, erfordert die Bedienung von Websites auf dem Raspberry Pi Pico im Allgemeinen, dass Sie wissen, wie man Vanilla JavaScript schreibt. Wenn Sie sich unsere Tutorials in unserem Pico W mega Artikel, Sie werden sehen.
Einer der größten Vorteile des Pico W besteht darin, dass er eine Webseite bereitstellen kann, die Sie wahrscheinlich zur Steuerung von etwas verwenden werden. Zum Beispiel könnte der Pico W eine Webseite mit einem Schieberegler anzeigen, der einen Servo steuert. Um den Wert des Schiebereglers an den Pico W zu übermitteln, müssen Sie JavaScript beherrschen.
JavaScript lernen
Ich kann nur die eine Webseite empfehlen, die sich für mich als die beste Ressource zum Erlernen von JavaScript erwiesen hat:
Diese Ressource ist SEHR gut für Pico W-Benutzer, weil sie Ihnen jeden Aspekt von Vanilla JavaScript und auch Browser-Ereignisse beibringt. Letztere müssen Sie kennen, um den Pico W und die UX der Webseite, die Sie bedienen, effektiv zu steuern.
HTML + CSS
HTML und CSS sind eigentlich keine Programmiersprachen, aber sie sind eng mit dem Bereich JavaScript verwandt. Sie sind nützlich, wenn:
- Sie planen eine webbasierte Aktivität
- Sie möchten eine Webseite mit dem Pico W
Diese eine Website hat mir sehr geholfen: Internet ist schwer
Es ist ein wenig veraltet. Zum Beispiel deckt es nicht CSS Grid oder aspect-ratio.
Aber Interneting is Hard hat eine effektive Lehrmethode und kann Ihnen genug beibringen, um eine Webseite für den Pico W zu erstellen.
Empfehlungen, wenn Sie...
Schnell Ergebnisse erzielen: Python oder Scratch
Bringen Sie Kindern das Programmieren bei: Kratzer
Erhalten Sie die ultimative Kontrolle über Ihre Hardware: C oder C++
Erstellen von Hardware-Projekten: Python oder C oder C++, alles andere ist egal
Einen Webserver hosten und Websites erstellen: HTML, CSS, JavaScript
Erstellen Sie ein IoT-Projekt mit dem Pico W: Python, HTML, CSS, JavaScript
Gottähnlich werden (mit einem ungöttlichen Zeitaufwand): C oder (insbesondere) C++
Bitte bezeichnen Sie "C/C++" nicht als 1 Sprache. Das verwirrt Anfänger nur. Es sind ZWEI sehr unterschiedliche Sprachen mit unterschiedlichen Lernkurven und unterschiedlichen Fähigkeiten.
Vielen Dank für Ihr Feedback - ich habe den Artikel geändert und den Unterschied zwischen den Sprachen etwas näher erläutert.
Ich stimme nicht mit der Aussage "Es sind ZWEI sehr unterschiedliche Sprachen" überein. C ist eine Teilmenge von C++. Natürlich ist C++ viel schwieriger zu lernen als C.
Vielen Dank für diesen Artikel