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

  1. 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...