Scratch: Programmiersprache für Einsteiger

Mit 9 Jahren habe ich mit dem Programmieren angefangen - zunächst noch mit kleinen Python-Programmen, dann bin ich aber schnell zur Sprache Scratch gewechselt, die ich in diesem Blog-Artikel kurz vorstellen möchte.

Was ist Scratch?

Scratch ist eine visuelle Programmiersprache, die seit 2007 vom MIT speziell für Kinder und Jugendliche entwickelt wird. Ziel der Sprache ist es, den "Programmier-Neulingen" mit den grundlegenden Konzepten und Ideen der Programmierung vertraut zu machen. Wichtige Programmierparadigmen, wie die objektorientierte, die eventorientierte und die imperative Programmierung, werden von Scratch angeboten.

In Scratch kann der Programmierer Objekte definieren, die dann auf der sgn. Bühne in Form von Bildern dargestellt werden. Jedes Objekt besitzt mindestens ein Kostüm (ein Bild, das auf der Bühne angezeigt wird) und kann beliebig viele Sounds besitzen, die aus der Programmierung heraus abgespielt werden können. Die Programmierung erfolgt nicht - wie in vielen Sprachen -  in Textform, sondern mit Hilfe von kleinen Blöcken (einzelnen Anweisungen), die dann per Drag'n Drop zu großen Anweisungen zusammengeführt werden. Ein Objekt kann mehrere solcher Blöcke besitzen, die scheinbar gleichzeitig ausgeführt werden. Entweder wird ein solcher Block beim Programmstart ausgeführt, oder bei bestimmten Ereignissen (zum Beispiel, wenn ein Objekt angeklickt wird).

Die Entwicklungsumgebung von Scratch kann auf der Scratch-Webseite direkt im Browser geöffnet werden. Alternativ kann diese auch heruntergeladen, und lokal ohne Internet ausgeführt werden.

Ein kleines Beispiel

In diesem kleinen Beispiel ist eine Katze (die am Rande erwähnt zugleich das Logo von Scratch ist) das einzige Objekt. Ziel ist es, dass sich die Katze auf der Bühne umher bewegt und dabei eine farbige Linie hinterlässt. Außerdem soll die Katze dem Benutzer die aktuelle Uhrzeit ansagen können.

Um die beiden Anforderungen zu erreichen, werden zwei getrennte Blöcke erstellt. Beide Blöcke werden je durch ein Ereignis ausgelöst - entweder, wenn das Programm gestartet wird, oder wenn die Leertaste gedrückt wird. Sobald ein solcher Block gestartet wurde, werden alle untergeordneten Anweisungen nacheinander ausgeführt.

Beide Routinen werden scheinbar gleichzeitig ausgeführt, sodass sich die Katze, während sie die Uhrzeit ansagt, noch weiterbewegt und eine Linie hinterlässt. Das Beispielprogramm habe ich hier auf der Scratch-Webseite veröffentlicht.

Warum ist Scratch so genial?

An Scratch fasziniert mich besonders, dass quasi jeder ein Scratch-Programm verstehen kann - auch ohne langjährige Erfahrung als Programmierer. Die einzelnen Anweisungen (wie drehe dich ↻ um [15] Grad) sind in ihrer Bedeutung eindeutig und leicht zu verstehen. Auch die Abfolge der einzelnen Anweisungen ist durch Ihre Darstellung in Block-Form gut nachvollziehbar.

Ein weiterer großer Vorteil von Scratch gegenüber anderen Sprachen ist, dass direkt ein bildliches Ergebnis zu sehen ist. In der Sprache C programmiert man zum Beispiel sehr lange in einer ehr komplizierten textförmigen Sprache, muss das Projekt dann aufwendig kompilieren, und bekommt als Belohnung nicht selten nur wenige "unspektakuläre" Zeilen, was häufig ziemlich schnell die Begeisterung für das Programmieren nimmt.

Die Scratch-Community

Hinter Scratch steht eine gigantische Community. Von 2007 bis Ende 2018 haben sich knapp 34 Millionen Benutzer registriert, die zusammen ca. 36 Millionen Projekte veröffentlicht haben (als Vergleich: In Kanada leben ca. 36 Millionen Menschen).

Dies ist einer der Punkte, die mich an Scratch so faszinieren. Zum einen bietet die Menge an Projekten die Möglichkeit, neue Ideen auf Basis existierender Projekte auszuarbeiten und bestehende Projekte weiterzuentwickeln; zum anderen ist die Programmierung von jedem Projekt öffentlich, sodass man durch jedes Projekt dazulernen kann.

Sehr hilfreich - besonders für Anfänger - ist das Scratch-Forum, in dem jeder angemeldete Nutzer Fragen an die Community stellen kann, die normal in Kürze ausführlich beantwortet werden. Es existieren Foren in gut 20 Sprachen.

Mindestens genau so hilfreich sind die Scratch-Wikis, die mittlerweile in verschiedenen Sprachen existieren. In einem solchen Wiki existiert eine große Menge an Artikeln zu diversen Themen aus der Scratch-Welt. Zum Beispiel werden Grundlagen, wie die Funktionsweise einzelner Blöcke erklärt, aber auch komplexere und tiefgreifende Themen werden erläutert. Jeder (im Scratch-Wiki) angemeldete Nutzer kann Seiten anlegen, erweitern und pflegen.

Fazit

Auch wenn ich mich wiederhole: Meiner Meinung nach ist Scratch die ideale Umgebung zum Lernen der "Kunst des Programmierens". Grund dafür ist zum einen die Einfachheit der Umgebung und der Programmiersprache, und zum anderen die gigantische Community, die bei Fragen schnell und konstruktiv weiterhilft.

Links

Einige meiner Projekte