BOB 2022 – Retrospektive
Am 11.03.2022 fand wieder die BOB, unsere alljährliche Entwickler:innenkonferenz, statt. Die kleine BOB-Strichfigur ist damit mittlerweile schon acht Jahre alt. Letztes Jahr fand die BOB bereits rein virtuell statt und auch 2022 nutzten wir wieder ausschließlich die Gather-Plattform, um die Konferenz ohne Medienbruch in einer reinen Pixelwelt abzuhalten. Wie im Jahr zuvor führte diese Entscheidung dazu, dass echtes BOB-Feeling aufkam. Anstatt sich nur hinter abgeschalteten Webcams anzuschweigen, konnte man sich auch dieses Jahr wieder in Workshop-Räumen treffen, zufällig auf den Gängen über den Weg laufen und dann auf einen Plausch auf der Dachterrasse verabreden. Ein Teilnehmer war positiv überrascht, wie nah die virtuelle BOB tatsächlich einer Vor-Ort-Konferenz kam: „Ich schaute einen Talk an. Neben mir unterhielten sich zwei lautstark über etwas anderes. Ich tat genau das, was ich in einer Vor-Ort-Konferenz auch getan hätte: Ich stand von meinem Platz auf und setzte mich drei Reihen weiter nach vorn.“
Die Konferenz begann mit der Keynote „RustBelt: Securing the Foundations of the Rust Programming Language“ von Derek Dreyer, Professor am MPI-SWS in Saarbrücken. In der Keynote ging es direkt ans Eingemachte: Nach einer kurzen Einführung in das ownership-basierte Typsystem von Rust folgte eine Einführung in Higher-Order Concurrent Separation Logic, mithilfe derer das RustBelt-Projekt es Rust-Programmierer:innen erlaubt, Code, der unsichere Teile von Rust verwendet, dennoch als sicher zu beweisen. Das ganze basiert auf dem Theorembeweiser Coq.
Mit dem Beweiser Coq ging es im Anschluss weiter im Tutorial „Introduction to the Coq Proof Assistant“ von Kathrin Stark. Alternativ konnte man im Tutorial „Makros in Clojure“ von Kaan Sahin lernen, wie das Makro-System in Clojure funktioniert.
Der Talks-Track #1 startete mit „Event Sourcing without Responsibility“ von Mike Sperber. Auf Talks-Track #2 kündigte der Moderator etwas lustlos den Talk „Composable UI Components“ von Markus Schlegel an. Nach der Ankündigung stürmte der Moderator aus dem Raum. Die Szene wechselte zum Vortragenden, allerdings sah man von diesem zunächst nur die Hose. Der Sprecher zog schnell noch ein Sakko an und setzte sich. Jetzt sah man, dass Sprecher und Moderator dieselbe Person waren. Ob dieser kleine Lacher den vermutlich hohen koordinatorischen Aufwand rechtfertigte, ist zu bezweifeln.
Weiter ging es mit „Keeping CALM“, einem Talk, in dem Annette Bieniusa und Susanne Braun darstellten, wie man heute über verteilte Systeme nachdenken sollte. Zeitgleich stellte Greg Pfeil in „Compiling Anything to Categories“ dar, wie Conal Elliotts Forschungsprogramm „Compiling to Categories“ tatsächlich industriell angewandt werden kann. Annegret Junker zeigte, wie Event-getriebene Architekturen funktionieren und Philipp Kant gab eine Einführung in seine Bibliothek io-sim für nebenläufige Programmierung in Haskell. Zeitgleich führte Christoph Schmalhofer per Tutorial ins Quantum Computing mit Haskell ein und Johannes Maier stellte sein deklaratives Nix-Setup mit Home-Manager vor.
Nach der Mittagspause ging es weiter mit Tim Digel und „Infrastructure as Code - Betrieb ohne Handarbeit“, einem Überblick zu Terraform, Ansible, NixOS und CI/CD im Allgemeinen. Auf Track #2 lieferte Joachim Breitner mit „Specification-driven design“ ein Plädoyer für die semantische Spezifikation von Software. Gernot Starke stellte in „Tiger kommt: Weglaufen!“ dar, wie Besonderheiten der menschlichen Kognition uns bei Architekturentscheidungen oft in die Quere kommen. Zeitgleich zeigte Albert Krewinkel, wie Haskell mit Lua zusammenarbeiten kann. In den Tutorials präsentierten Franz Thoma und Quchen schöne generative Kunstwerke und Simon Härer führte in Scala 3 ein.
Im letzten Block des Tages stellte Ben Clifford dar, was Gradual Typing bedeutet und was Python darunter versteht. Laura M Castro und Brujo Benavides stellten ihre Forschungsergebnisse zum automatischen Erkennen von sog. Oxbow Code in Erlang-Codebases vor. Ju Liu erklärte die Funktionsweise der Enigma-Maschine anhand einer Elm-Implementierung und Ragnar Mogk stellte seine Arbeit an REScala, einem Framework für Local-first Anwendungen vor. Kaan Sahin trat mit einem weiteren Tutorial auf und erklärte, wie Emacs die Lösung für beliebige Probleme sein kann. Mike Sperber führte zeitgleich in die funktionale Programmierung mit Kotlin ein.
Die Talks waren gut besucht und die Tutorials profitierten von reger Beteiligung. Darüber hinaus fanden auch dieses Jahr wieder viele Gespräche auf den virtuellen Gängen statt. Die Q&A-Segmente nach den einzelnen Talks funktionierten sehr gut, da sich selbst bei fehlenden Fragen aus dem Publikum immer ein spannendes Gespräch zwischen Moderator:in und Sprecher:in entwickelte.