Spezifikation von Clojure-Datentypen mit clojure.spec

Clojure ist eine dynamische Programmiersprache, was unter anderem bedeutet, dass auch die Datentypen erst dynamisch zur Laufzeit feststehen. Clojure kennt zwar sogenannte type hints, die sollen aber dem Compiler helfen, effizienteren Code zu generien und sind nicht dafür da, Typeigenschaften von Datenstrukturen zu erzwingen. Die clojure-spec-Bibliothek füllt diese Lücke: Damit ist es möglich, die Struktur der Daten als Programmcode zu spezifizieren und so die zur Laufzeit vorhandenen Daten zu validieren. Das führt zu weniger unerwartetem Verhalten während der Programmlaufzeit und im Fehlerfall zu besseren Fehlermeldungen. Zusätzlich ist sogar möglich, Daten aus der Spezifikation zu generieren, zum Beispiel für randomisiertes Testen.

Dieser Artikel gibt eine Einführung in clojure.spec.

Weiterlesen...

Eine Haskell-Bibliothek für große Hashes

Im heutigen Artikel möchten wir die Haskell-Bibliothek large-hashable vorstellen, die es ermöglicht, von beliebigen Haskell-Datentypen große Hashes z. B. mittels MD5 oder SHA512 zu berechnen. Wir haben diese Bibliothek im Rahmen unseres Produkts Checkpad MED entwickelt, um effizient feststellen zu können, ob sich das Ergebnis einer Berechnung möglicherweise geändert hat. In diesem Artikel zeigen wir zum einen wie man die Bibliothek benutzt, zum anderen beleuchten wir exemplarisch einen wichtigen Implementierungsaspekt, nämlich die Integration von C-Code in Haskell.

Weiterlesen...

BOB Konferenz 2017 läuft an!

Nachdem die BOB 2016 ein noch größerer Erfolg als die Vorjahresveranstaltung war, laufen die Vorbereitungen für die BOB 2017 auf vollen Touren. Am 24. Februar 2017 treffen sich in Berlin wieder Software-Entwicklerinnen, Architekten und Entscheiderinnen, die sich für die besten Techniken und Technologien interessieren, die es in der Software-Entwicklung gibt.

Der Call for Contributions ist eröffnet. Schicken Sie uns also (bis zum 30. Oktober) Ihren Vorschlag für einen Vortrag oder ein Tutorial - das Programmkomittee freut sich darauf! Es gibt wieder Referenten-Zuschüsse für Referentinnen aus unterrepräsentierten Gruppen.

Für die Keynote konnten wir John Hughes gewinnen, einen der renommiertesten und kreativsten Experten für funktionale Programmierung und Verfasser des legendären Papiers Why Functional Programming Matters. Er war maßgeblich an der Entwicklung von Haskell beteiligt und hat Techniken wie Typspezialisierung, Arrows und QuickCheck erfunden. John Hughes ist derzeit sowohl Professor an der Chalmers University of Technology als auch Chef der Firma QuiviQ.

Weiterlesen...

Ereignisorientierte Simulation mit funktionaler Programmierung, Teil 2

Hier ist endlich der zweite Teil zur Übersetzung eines in Java geschriebenen ereignisorientierten Simulators nach Haskell.

Weiterlesen...

Retrospektive der BOB-Konferenz 2016

Am 19. Februar 2016 fand in Berlin die zweite BOB-Konferenz statt. Mit mehr als 130 Teilnehmern stieg die Teilnehmerzahl im Vergleich zur ersten Ausgabe im Vorjahr nochmal an, was uns als Veranstalter natürlich sehr gefreut hat. Auch in diesem Jahr gab es interessante Vorträge und informative Tutorien. An dieser Stelle blicken wir auf die tolle Veranstaltung zurück - wer selbst einen Blick darauf werfen will: Die Folien und Videos von (fast) allen Vorträgen sind online verfügbar. Sie sind verlinkt auf den Seiten der Vorträge, erreichbar über die Programmübersicht oder auf unserem YouTube-Channel.

Um über Neuigkeiten auf dem Laufenden zu bleiben, insbesondere was die Auflage der BOB-Konferenz im nächsten Jahr angeht, können Sie der Konferenz auf Twitter, Google+ und Lanyrd folgen.

Weiterlesen...