Eine Gruppe von vier bevuta-Entwicklern (inkl. eines unserer Azubis) ist nach Bratislava gereist, um an der diesjährigen EuroClojure vom 25. bis zum 26. Oktober teilzunehmen. Die beiden Tage (und Nächte) waren wie immer reich an informativen und inspirierenden Vorträgen, aber auch abseits der Bühne gab es wieder einiges zu erleben. Dies ist unser Bericht!

Bevor wir jedoch einsteigen, möchten wir lobend erwähnen, dass jede EuroClojure in einer anderen europäischen Stadt stattfindet – man hat also jedes Jahr Gelegenheit, eine neue Stadt kennenzulernen! Diesmal trafen wir uns in der Hauptstadt der Slovakei, Bratislava. Der Veranstaltungsort war die wunderschöne alte Markthalle, welche direkt in der Altstadt von Bratislava gelegen ist. Mit ihren historischen Alleen, Gebäuden und Plätzen sowie Cafés, Restaurants und Bars ist letztere definitv einen Besuch wert.

clojure.spec auf der EuroClojure

Das beherrschende Thema war dieses Jahr clojure.spec. Auf der Bühne hat Simon Belak uns gezeigt, wie sie es in ihrer Codebasis bei GoOpti einsetzen und einzusetzen gedenken und Michael Reitzenstein hat einen experimentellen Clojure→C-Compiler vorgeführt, der clojure.spec für eine ungewöhnliche aber vielversprechende Optimierungsstrategie verwendet. Als krönenden Abschluss hat Carin Meier Spec als einen Stein der Weisen verwendet und Silber und Gold hergestellt, indem sie es auf genetische Programmierung und selbstheilenden Code angewendet hat. Sobald die Videos veröffentlicht sind, solltet ihr euch zumindest letzteres ansehen!

Viele Gespräche neben der Bühne haben sich ebenfalls um Spec gedreht. Zum Beispiel haben wir in einem solchen durch David Nolen erfahren, dass viele Leute an einer Möglichkeit interessiert sind, registrierte Specs mit Docstrings zu versehen. Dies ist verwandt mit der Idee, über die wir am Ende unseres kürzlich veröffentlichten Artikels über das Parsen von Query-Parametern mit Spec nachgedacht haben. Er erwähnte, dass es bereits ein entsprechendes Ticket im Clojure-Tracker gebe, an welches wir uns dranhängen sollten. Wenn euch dieses Thema auch interessiert, tut es uns gern geich!

Weitere Vorträge der EuroClojure 2016

Spec war allerdings nicht das einzige Thema. Inzwischen scheint es EuroClojure-Tradition zu sein, dass Michał Marczyk den zweiten Tag mit einem sachkundigen Vortrag über eine interessante Datenstruktur eröffnet und diesmal ging es um Priority Search Queues. Wenn ihr euch für Implementierungsdetails von Datenstrukturen begeistern könnt, sind Michałs Vorträge stets ein besonderer Genuss.

Jean-Louis Giordano gab Erfahrungsbericht über die Umwandlung einer bestehenden Railsapplikation in eine Single Page Application in ClojureScript bei Zimpler. Derartige Vorträge sind immer sehr aufschlussreich, weil sie eine Menge praktischer Probleme berühren, auf die man bei der Einführung von Clojure in ein bestehendes Projekt stößt. Seht ihn euch an, wenn ihr in einer ähnlichen Situation seid!

Doch dieses Jahr gab es auch einige ungewöhnliche Beiträge. Besonders bemerkenswert war Mike Pearsons Darstellung eines Projektes, an dem er an der University of Cambridge arbeitete. Er gab uns Einblick in die Arbeit mit statistischen Daten in der Medizin, speziell die Interpretation von Überlebensstatistiken in der Kinderherzchirurgie. Mike überzeugte in seiner Präsentation vor allem damit, wie er die Schwierigkeiten erläuterte, derartige Statistiken so an eine breite Öffentlichkeit zu kommunizieren, ohne diese ungewollt irrezuführen. Er illustrierte dies, indem er uns durch verschiedene evolutionäre Entwicklungsstufen seiner Applikation führte und demonstrierte, wie die Testnutzer Fehlschlüsse aus den Daten gezogen haben. Offenbar hat die Art, wie Daten präsentiert werden, einen großen Einfluss darauf, wie wir sie interpretieren. Beispielsweise war eine häufige Ursache für Fehlinterpretation, dass es in der Benutzeroberfläche möglich war, die Daten nach beliebigen Dimensionen zu sortieren. Es gibt inzwischen sogar eine Art Checkliste, die den Nutzer anleitet, derartige Fallstricke zu vermeiden. Selbstverständlich ist die Applikation in ClojureScript geschrieben, aber es waren vor allem die Nicht-Clojure-Aspekte, die diesen Vortrag besonders machten. Es ist immer wieder faszinierend zu sehen, wie wenig intuitiv der menschliche Verstad mit Statistiken umzugehen weiß!

Einen weiteren besonderen Beitrag steuerten Malwine Gier und Arne Brasseur bei, in welchem sie über ihre Erfahrung sprachen, ClojureBridge-Events auszurichten. ClojureBridge ist ein inspirierender und tatkräftiger Ansatz, den Mangel an Diversität in der Programmiergemeinschaft anzugehen. Und wie wir in ihrem Vortrag lernten, trägt dieser Früchte, was uns sehr gefreut hat. Da einige unserer Entwickler die erste deutsche ClojureBridge in Solingen als Coaches unterstützt haben, wissen wir, was für eine tolle Erfahrung dies sein kann. Wenn ihr noch nicht mit dem Konzept dieser Veranstaltungen in Berührung gekommen seid, legen wir euch diesen Vortrag sehr ans Herz.

Zwischen den Hauptveranstaltungen

Die bemerkenswerteste Änderung gegenüber den letzten Jahren waren die Unsessions am Ende des ersten Tages. Diese begannen direkt im Anschluss ans Abendessen um 20:00 Uhr und bestanden darin, dass es verschiedene mehr oder weniger improvisierte Sessions über zuvor abgestimmte Themen gab. Begleitet wurden diese zudem von zwei gut ausgestatteten Bars.

Colin Fleming veranstaltete etwa eine Session über die Cursive Clojure IDE, worin er Features vorführte (wie z.B. den sehr leistungsfähigen Debugger) und bereitwillig allerlei Fragen von bestehenden Nutzern und potentiellen Umsteigern beantwortete. Diese Session war besonders erhellend, da Colin der Hauptautor von Cursive ist. Allerdings lebt er auch in Neuseeland, daher war es ein glücklicher Zufall, dass er sich gerade in Europa aufhielt und darum der Konferenz beiwohnen konnte.

Eine weitere Unsession drehte sich um die aktuelle Lage von serverseitigem HTTP in Clojure und wurde veranstaltet von Philipp Meier und Malcolm Sparks. Die beiden gaben uns zunächst einen historischen Überblick darüber, wie die Bibliotheken Liberator und yada entstanden sind. Interessanterweise leben die beiden in friedlicher Koexistenz: Malcolm und Philipp kooperieren häufig in beiden Projekten und sie teilen als gemeinsames Ziel, die Leute zu ermuntern, die Features von HTTP zu nutzen, indem sie sie leicht zugänglich machen. Die anschließende Diskussion berührte auch ein Thema, das wir für essentiell halten, um (RESTful) HTTP wirklich zu verstehen, nämlich die Vorrangstellung von hyperlinked mediatypes. Im Verlaufe dieser Diskussion erfuhren wir auch (in einer möglicherweise nicht ganz ernst gemeinten Nebenbemerkung), dass die Swagger-Unterstützung in yada vor allem ein Hilfsmittel ist, um die "HTTP API"-Leute halbwegs zu REST hinüberzuziehen, in Anlehung daran, wie Java intendiert war, C++-Leute halbwegs zu LISP hinüberzuziehen. Wir haben auch mit der Idee eines Proxy-Serves bzw. einer Middleware gespielt, die URLs zufällig verändert, um eine lose Kopplung zu erzwingen (also eine Art Unswagger). Jedoch kamen wir zu dem Schluss, dass es sich hierbei vor allem um ein Aufklärungsproblem handelt, das sich technischen Mitteln nicht angemessen lösen lässt.

Die Azubi-Perspektive

Die EuroClojure 2016 war die erste Konferenz, an der unser Azubi Adonis je teilgenommen hat. Dies sind seine Eindrücke:

Als Azubi der bevuta IT mit ein wenig Clojure-Erfahrung war ich vor der Reise ziemlich gespannt, was ich auf der EuroClojure lernen und mitnehmen kann. Da ich an meinem jetzigen Projekt mit clojure.spec arbeite, fand ich die Vorträge zu diesem Thema besonders interessant. Was mir persönlich auch viel gebracht hat, waren die Unterhaltungen mit den ganz verschiedenen Menschen aus aller Welt. Auch wenn ich nicht zu jedem Thema mitdiskutieren konnte, habe ich immer etwas für mich mitnehmen können. Ich hatte auch die Möglichkeit mit David Nolen – vor der EuroClojure ein Unbekannter für mich – zu sprechen. Die Gespräche mit ihm gaben mir nochmal ein besseres Verständnis für Clojure. Im Allgemeinen kann ich jedem empfehlen, der etwas über den Tellerrand hinausschauen möchte, die EuoClojure zu besuchen. Ich freue mich darauf, diese Atmosphäre beim nächsten Mal wieder zu erleben.

Schlussbemerkung

Wenn auch dieser Bericht nur anreißen konnte, wie es auf der EuroClojure 2016 wirklich war, hoffen wir dennoch, euer Interesse angereget zu haben, euch einige der Präsentationen anzusehen. Vielen Dank an alle, die diese Konferenz so angenehm, unterhaltsam und lehrreich gestaltet haben – an der EuroClojure teilzunehmen ist nahezu so schön wie mit Clojure zu arbeiten. Wir hoffen, dass wir euch auf der nächsten treffen, wo auch immer sie stattfinden wird!