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.