Am 14. November fand weltweit der Global Day of Code Retreat statt. Dabei handelt es sich um eine koordinierte Aktion, bei der sich Hacker und Software-Crafts(wo)men in lockerer Runde treffen und eine knifflige Programmieraufgabe im Pair-Programming innerhalb einer knappen Zeitvorgabe immer wieder lösen. Die Krux dabei ist, dass nach Ablauf der Zeit der gesamte Code gelöscht werden muss.
Holisticon hat mit den Moderatoren Sven Bunge und mir, Marius Fink, das Event für Hamburg als MeetUp gehosted. In der Vorbereitung haben wir uns für das altbekannte, aber immer wieder spannende „Game of Live“ des britischen Mathematikers Conway entschieden. Durch einfache Regeln entstehen dabei auf einem zweidimensionalen Spielfeld interessante Strukturen, die an das Leben und Sterben von biologischen Zellen erinnern. Typischerweise werden „lebende Zellen“ als schwarze und „tote Zellen“ als weiße Punkte dargestellt. Wir gaben eine besondere Einschränkung vor: in jeder Runde musste ein neuer Pairing-Partner sowie eine neue Programmiersprache benutzt werden.
Nach anfänglichen Frustrationen konnten sich gegen Ende des Tages beachtliche Ergebnisse sehen lassen. Es gab Lösungsansätze in Java, Python, Swift, JavaScript mit Angular, Scala, Clojure und Ruby. Obwohl wir mit Clojure beispielsweise nicht weit gekommen waren, hatten alle eine Menge Aha-Erlebnisse mit der gehirnverknotenden Syntax.

Am Ende gab es dann zwei besonders hervorhebenswerte Ergebnisse: Ein Team hat die Entwicklung fortgesetzt und eine Open-Source-Anwendung live gestellt, die unter sokahh.github.io erreichbar ist. Tipp: 3 schwarze Punkte in einer Reihe ergeben einen „Blinker“. Ein sogenanntes „Spaceship“ sieht so aus:
Das Ergebnis mit dem größten Unterhaltungswert war die Implementierung des Game of Life mit dem Code Game Java Kara – einem Lernprogramm für Programmieranfänger, das mich (Marius) in der 10. Klasse an Java heranführte. Dabei steuert man programmatisch einen Marienkäfer, der mit Kleeblättern und Baumstämmen interagieren kann. Diese Einschränkung sollte in der letzten Session als Herausforderung dienen, lebende Zellen mit Kleeblättern darzustellen. Das Ergebnis sieht wie folgt aus:
Insgesamt war der Tag sehr lustig und lehrreich. Anfängliche Frustrationen verwandelten sich in Ehrgeiz und komplexe Programmiersprachen waren eine willkommene Herausforderung. Außerdem ist vielen Zweiflern klar geworden, dass man mit Ruby ganz schön elegant vom Fleck kommen kann ;)