ARRRG

Karol, quo vadis?

Die letzten Tage waren voller konkreter Arbeit, Bugfixes und neuen Features um die Karol herum. Die Action habe ich sehr genossen. Jetzt beruhigt sich alles wieder und ich habe Zeit, wieder einen weiteren Horizont aufzumachen.

Ich bin vor paar Wochen mit dem groben Fahrplan “irgendwas mit Python” gestartet und jetzt steht das Fundament. Da bin ich sehr erleichtert. Es lief auch viel besser als meine etwas zähen Versuche mit Java. Meine erste Frage ist, ob es sich für mich überhaupt lohnt, weiter in Java-Features zu investieren, bei Karol aber auch allgemein, z.B. mit PurpleJ? (und auch mit bisschen Blick auf OnlineIDE und dessen Zukunft)

Ich sehe viele Gründe, warum ich gerne mit Python weitermachen möchte und erstmal Java zur Seite lege. Ganz klar Grund Nr. 1 ist die Unterstützung im Web. Pyodide ist ein wirklicher Traum zum Arbeiten. CheerpJ fühlt sich da im Vergleich wie ein lahmes Pferd an. Zumindest Stand heute würde ich sagen, dass CheerpJ nicht praxistauglich ist für den Einsatz, wie ich ihn plane.

Die Python-API und alles drum und dran passen außerdem besser zum Spirit von Robot Karol: auf Dinge verzichten können, einfach, zugänglich, pragmatisch sein. Wirklich Bock habe ich nicht auf Java-Boilerplate, Getter und Setter, static void main und so Sachen. Bei mir kommen höchstens nostalgische Gefühle hoch. Ich denke, dieses Paradigma hat seinen berechtigten Platz in der Geschichte und eine Desktop-Anwendung würde ich auch sehr wahrscheinlich im OOP-Stil entwickeln, alleine wegen den ganzen Lifecycles. Aber das muss nicht unbedingt die beste Sprache für den Programmier-Einstieg sein. Sagen wir es mal anders: in Java muss man sich schon sehr früh mit sehr technischen Dingen beschäftigen, die jetzt nicht so wirklich für den impact irgendwie mega relevant sind und die auch die meisten neuen Sprachen erstmal ignorieren. Für die Entwicklung von performanter Software ist der Unterschied von int und long zentral - aber kann man sich das nicht noch ein wenig aufsparen für später?

Wenn ich Entscheidungen treffe, dann ziehe sie durch. Wenn ich hier also Python den Vortritt geben, dann wird das Konsequenzen haben. PurpleJ wird damit sicherlich depriorisiert. Ich werde einen anderen Weg gehen als die Online-IDE. Es kann sein, dass ich damit weniger attraktiv sein werde für Gymnasien in Bayern. Auf der anderen Seite kann ich mich auf die große Python-Community stützen. Ich werde relevanter für Realschulen und Mittelschulen. Andere Bundesländer können sich über diese Entscheidung freuen.

Ich habe mich innerlich eigentlich schon für Python entschieden. Diesen Text schreibe ich nur noch als Rechtfertigung. Ich darf mir selber vertrauen und mir zugestehen: ich habe nicht wirklich Lust auf Java. Das Leben ist so viel schöner, wenn man sich von mancher Altlast freischaufeln kann. Ich darf loslassen.

Damit ist der Weg frei für den weiteren Ausbau von Karol und Python. Das schöne als Teil einer Community ist die Breite an Material, die schon zur Verfügung steht, da lassen sich sicherlich viele gute Dinge finden und wiederverwenden.

Die erste offensichtliche Erweiterung ist die Fortführung des Lernpfads mit Python-Inhalten. Beim Thema Algorithmen konnte ich mich sehr viel auf das “Startwelt-Zielwelt”-Prinzip verlassen. Ich frage mich, was eine gute Übertragung davon in Python ist. Denn ich befürchte, dass der Erfolg der Erweiterung an dieser Frage hängen wird.