ARRRG

Karol x Python - Teil 4: eine Reflektion

Der Python-Modus ist in Teil 1 als Kompiler-Bau-Projekt gestartet und hat sich nun in eine ganz andere Richtung entwickelt. Ich habe kurzerhand den gesamten Compiler-Bau-Teil übersprungen und mich stattdessen direkt mit der Anwendungsentwicklung beschäftigt.

Ein paar coole Sachen, an denen ich die letzten Tage geschraubt habe: 60 fps Spiele laufen nun stabil und mit geringem Ressourcen-Aufwand. Numpy ist verfügbar und erlaubt auch CPU-intensive Anwendungen wie z.B. Rendering-Engines innerhalb von Python. Eine solche Performance und Stabilität hätte ich mit einer selbstgebauten Lösung nie erreicht.

Die letzten Monate waren sehr intensiv. Ich habe meine volle Energie in dieses Projekt reingesteckt und wirklich viele Sachen ausprobiert. Das freut mich, denn jetzt bin ich an einem Punkt wo ich wirklich gut arbeiten kann. Ich habe nicht mehr das Gefühl, anderen Projekten hinterher rennen zu müssen, sondern fühle mich auf meinen eigenen Beinen sicher.

Ich bin bei weitem noch nicht fertig, der ultimative rote Faden ist noch nicht gesponnen, vielleicht mehr man das auch an den unterschiedlichen Gedanken, die ich hier gerade niederschreibe. Ich hatte gestern eine Idee, wie man den Lernpfad weiterentwickeln könnte (Ellie von The Last Of Us?), ich baue viel am Dance-Projekt. Ich räume die API etwas auf. Ich schaue mir die Zahlen an und plane schon weitere Veränderungen an der UI und dem Lernpfad. Ich habe mir ein Buch zu Robot Karol aus dem Slowakischen besorgt und in die ursprüngliche Version von Karel 3D reingeschaut (eine Geschichte für einen weiteren Post). Es sind so viele Fäden.

Mich freut es, dass es weitergeht und das Projekt nicht implodiert, was bei weniger durchdachten Projekten leicht in dieser Phase passieren kann. Stattdessen stoßen sich die Ideen an, es entstehen Kettenreaktionen, Ideenstränge, ich baue Sachen und diese verbinden sich. Das ist ein gutes Zeichen.

Mich fasziniert es, wie flexibel Programmieren ist. Ich baue zwar Dinge, aber diese legen die Zukunft nicht fest - ich kann immer auch noch neue Dinge aufsetzen, mich anpassen, Element verändern. Ich baue auf eine offene Zukunft hin und lasse Platzhalter, wo Inhalte von außen andocken können, z.B. durch Updates von Dependencies, Client-Side-Programmierung innerhalb der IDE, oder anderen kulturellen Elementen wie z.B. den Skins oder der Musik. Ich bleibe als Plattform relevant und kann mich trotzdem immer wieder neu erfinden.

Wenn ich es schaffe, diese Freude herauszuarbeiten und den Menschen erlebbar zu machen, dann habe ich viel erreicht. Python hat mich bisher nicht enttäuscht und spielt eine zentrale Rolle. Ich kann fast sagen, dass ich hier wirklich eine ziemlich einmaliges Projekt baue - eine Verbindung aus Desktop-Programmierung innerhalb einer Web-IDE. Manchmal frage ich mich, ob man ein Rythem-Game wie ich es hier gebaut habe auch z.B. in der Online-IDE oder in Scratch nachbauen kann? Schwierig, weil die Sache mit dem Timing doch echt tricky ist. Innerhalb meiner Projekte kann ich eben meine Präferenzen bevorzugen - und Präzision ist für mich beim Programmieren schon eine der höchsten Prioritäten. Warum sollte ich sonst so viel Arbeit reinstecken, um etwas zu bauen?

Aber es geht mittlerweile nicht mehr darum, besser zu sein als die anderen. Es geht darum, Ideen, die ich in meinem Kopf habe, umzusetzen und Gedankenwelten zu Realitäten umzusetzen. Der grundsätzliche Pfad zeigt in die richtige Richtung - das zeigen wir die Signale, die ich bisher erhalte. Die nächste Phase wird also nicht mehr so viele große Sprünge sein, sondern ein langsames Durcharbeiten von all dem Potenzial, das ich hier sehe (Lernpfad, Mini-Projekte, Dance-Projekt, API-Feinschliff, Performance, …) und ein bisschen Vorfreude habe ich schon auf den Tag, wo ich dieses fertige Projekt dann begutachten kann.