Die richtige Programmiersprache

Programmiersprachen gibt es viele. Ich selbst kenne mehr als ein Dutzend aus eigener Erfahrung: Interessante und skurrile, einfach zu erlernende und sperrige Gesellen, Urgesteine und junge Pflänzchen.

Die beste Programmiersprache gibt es nicht – allerdings in vielen Fällen zumindest die beste für einen bestimmten Einsatzzweck. Der (einzige) Einsatzzweck, um den es mir hier geht, ist „Programmieren lernen“ und somit um die Frage:

Welche Sprache eignet sich am besten oder zumindest „besonders gut“, um das Programmieren zu erlernen?

Meine persönliche Antwort lautet: Python.
Aus meiner Sicht gibt es derzeit keine andere Programmiersprache, die als Unterrichtssprache geeigneter wäre. Nach meinem Eindruck setzt sich diese Erkenntnis seit einer Weile auch im schulischen Bereich mehr und mehr durch, wenn ich die angebotenen Fortbildungsveranstaltungen als Gradmesser verwende. Dies gilt zumindest für den Bereich der Sekundarstufe I.

Was macht Python so attraktiv?

Ein Plädoyer für Python also? – Ja und nein.

Einerseits ein großes JA. Ich habe es über mehrere Jahre erfolgreich (wie ich meine) selbst praktiziert. An anderer Stelle habe ich ausgeführt, wie es konzeptionell aussehen kann, wenn man Python als Erstsprache im Informatikunterricht einsetzen möchte.

Gleichzeitig hat sich aber auch eine gewisse Ernüchterung und (zunächst) Ratlosigkeit eingestellt: Mehr und mehr Schüler waren nicht mehr in der Lage, Python auf einem heimischen Computer oder Notebook zu installieren. Trotz zusätzlicher Schritt-für-Schritt-Anleitungen stieg der Anteil derjenigen, die aufgrunddessen außerhalb des Unterrichts das Programmieren nicht mehr einüben konnten. Dieser – für den Lernerfolg doch höchst relevante – Aspekt führt zum kleinen NEIN.

Was also tun?

Internet und Smartphone sind seit Jahren und in ständig wachsendem Umfang fester Bestandteil der heutigen Jugendkultur. Ich habe darum dem Thema „Webdesign“ mit der Zeit immer größeren Raum im Unterricht zugestanden: HTML und CSS wurden in gutem Umfang und solide vermittelt, ebenso Grundgedanken des Webdesigns. Das häusliche Üben stellte die Schüler vor keine Probleme: Texteditor und Internetbrowser sind auf jedem Endgerät verfügbar. Und: Das Entwickeln von Web-Seiten, insbesondere in Form von Projektarbeit, hatte für die Schüler eine hohe Attraktivität.

Diese Erfahrungen – sowohl die (unerfreulichen) mit Python als auch die (erfreulichen) mit HTML/CSS/Webdesign – haben mich dazu bewogen, trotz der vielen Vorteile von Python eine andere Programmiersprache als Erstsprache einzusetzen: JavaScript.

Was macht JavaScript attraktiv?

Und jetzt?

Die Liste der Pluspunkte, die JavaScript für sich verbucht, kann leider nicht darüber hinweg täuschen, dass Python die elegantere und deutlich aufgeräumtere Sprache ist – ein Python-Quelltext liest sich wesentlich angenehmer als ein JavaScript-Quelltext.
Eingebaute Funktionen und Methoden sind meist kürzer, der Anteil an Klammern ist deutlich geringer, Semikolons werden gar nicht gebraucht. Und das pythonische Konzept der Blockbildung allein durch Einrückung ist für Programmieranfänger Gold wert. Das kann ich nach rund 20 Jahren Unterrichtserfahrung mit Pascal, Python und JavaScript definitiv sagen. Von Schülern das Einrücken von Blöcken in einer Sprache einzufordern, deren Parser dies völlig egal ist, ist ein Kampf gegen Windmühlen. Beim Programmieren in Python folgt bei Einrückungsfehlern die Strafe auf den Fuß: Syntakfehler – Programm lässt sich nicht ausführen.

Nicht ganz so gravierend, aber doch schade ist, dass (im Browser ausgeführtes) JavaScript aufgrund des Sandbox-Prinzips keine Möglichkeit bietet, Daten in einer separaten Datei auf einem Datenträger zu speichern und wieder auszulesen. So lange der Anwender darauf verzichtet, den Cache seines Browsers zu leeren, kann dieser zwar für eine persistente Datenspeicherung genutzt werden – aber das ist kaum mehr als eine Notlösung.

Inzwischen habe ich in zwei Durchgängen JavaScript an Stelle von Python als Programmiersprache im Wahlpflichtbereich eingesetzt. Das dahinter stehende Konzept und die Erfahrungen mit JavaScript als Erstsprache habe ich an anderer Stelle ausgeführt.