Zur Testbarkeit von puren Funktionen

Bei der Arbeit am Paper „Evolution of Functional UI Paradigms“, das beim FUNARCH-Workshop der ICFP 2025 veröffentlicht wurde, kam mir ein Gedanke zu puren Funktionen, den ich hier gern separat kurz erläutern möchte. Als Argument für pure Funktionen führen wir funktional Programmierenden gern die bessere Testbarkeit ins Feld: Pure Funktionen erfordern keine komplizierten Test-Setups und Mocks, sind deterministisch, parallelisierbar etc. In der Tendenz ist das sicherlich richtig. Pure Funktionen sind oft besser testbar. Notwendig ist dieser Zusammenhang allerdings weder in die eine noch in die andere Richtung. Es gibt pure Funktionen, die sind schlecht testbar und es gibt auch nicht-pure Funktionen, die gut testbar sind. Die Purity selbst kann also der Stoff nicht sein, der es erlaubt, Programmstücke ordentlich zu testen. Was aber ist dann dieser Stoff?

Weiterlesen...

Der Call für die BOB 2026 ist raus!

Am 13. März 2026 findet die BOB, unsere Hauskonferenz über das Beste in der Softwareentwicklung, statt – wieder in Berlin und wieder im Scandic Berlin Potsdamer Platz.

Der Call for Contributions läuft. Schicken Sie uns also (bis zum 17. November 2025) Ihren Vorschlag für einen Vortrag oder ein Tutorial – das Programmkomitee freut sich darauf!

Weiterlesen...

Einführung in Denotational Design, Teil IV: Refactoring

Im vorherigen Artikel dieser Reihe warfen wir einen Blick auf die Programmiersprache Agda. Mit Agda kann man komplexe Spezifikationen ausdrücken und beweisen, dass der Code, den man gegen diese Spezifikationen schreibt, diese auch einhält. Wir hatten das anhand der natürlichen Zahlen und des Zusammenhangs von der Unärdarstellung und der Binärdarstellung illustriert. Zur Erinnerung: Wir hatten die unären natürlichen Zahlen so als Daten beschrieben:

data Nat : Set where
  zero : Nat
  suc : Nat -> Nat
Weiterlesen...

BOB 2025 – Retrospektive

Am 14.03.2025 fand die diesjährige BOB-Konferenz im Scandic-Hotel Potsdamer Platz, Berlin, statt – dieses Jahr mit 17 Vorträgen statt den in den Vorjahren üblichen 15. Ein Rückblick.

Weiterlesen...

Spring-Boot mit Scala

Das Spring-Framework und insbesondere Spring-Boot sind sehr populär und weit verbreitet in der Programmierung von Anwendungen mit Java. Für Scala gibt es andere beliebte Frameworks, insbesondere für die Programmierung von Webservern, wie zum Beispiel das Play Framework.

In dieser kleinen Serie von Artikeln wollen wir uns anschauen, ob und inwieweit man funktional in Scala programmieren und trotzdem Spring-Boot einsetzen kann.

Weiterlesen...