Pattern Matching in Elixir

Die funktionale Programmiersprache Elixir bietet hervorragende Möglichkeiten zum Einsatz von Pattern Matching. In diesem Artikel geben wir eine kurze Einführung am Beispiel eines JSON-Parsers.

Weiterlesen...

BOB-Konferenz 2018 - eine kurze Retrospektive

Die vierte Ausgabe der BOB-Konferenz 2018 ist Geschichte und wieder einmal war die Veranstaltung ein toller Erfolg. Mit mehr als 140 Teilnehmerinnen und Teilnehmern konnten wir die Zahlen von 2017 stabilisieren und sind gespannt, was nächstes Jahr passiert. Wir möchten an dieser Stelle einen kurzen Überblick über die gebotenen Vorträge geben, Sie können Folien und Videoaufzeichnungen hierzu auch auf YouTube anschauen oder über das Program der Konferenz aufrufen. Eine andere Form der Zusammenfassung ausgewählter Vorträge gibt es via Sketchnotes auf dem Blog von Joy Clark zu sehen.

Neben technischen Vorträgen und Tutorials rund um die neuen Techniken und Technologien im Bereich der Softwareentwicklung ist ein besonderes Anliegen der Konferenz das Thema „Diversity“, also die Einbindung Menschen aller Geschlechter, Hautfarben und Einkommensgruppen. Wir konnten 2018 die Vielfalt der Teilnehmerinnen und Teilnehmer durch verschiedene Maßnahmen wie Freitickets, Reiskostenzuschüsse und Kinderbetreuung gegenüber 2017 nochmal deutlich erhöhen. Ein herzlicher Dank soll an dieser Stelle auch an unseren Sponsor TNG Technology Consulting gehen, der uns bei solchen Fördermaßnahmen unterstützt hat. Bei allen Erfolgen ist aber auch noch viel Luft nach oben, was zum Beispiel die Frauenquote von nur 9% deutlich zeigt.

Weiterlesen...

Transducer: Komposition, Abstraktion, Performance

Funktionen höherer Ordnung wie map, fold, filter sind aus keinem funktionalen Programm wegzudenken. Mit ihrer Flexibilität sind sie das Mittel der Wahl für Operationen auf Kollektionen aller Art. Allerdings beschränkt sich ihr Anwendungsbereich nicht nur auf klassische Listen oder Vektoren. In diesem Artikel betrachten wir fundamentalere Eigenschaften dieser Operationen und werfen insbesondere einen Blick auf die sogennanten Transducer in der Programmiersprache Clojure. Weiterlesen...

Mit Nix raus aus der Versionshölle

Wer kennt es nicht: Man startet ein neues Softwareprojekt oder steigt bei der Entwicklung eines bestehenden Projektes mit ein und muss erst mal zahlreiche Compiler, Interpreter, Editoren, Abhängigkeiten und Weiteres installieren. Dabei heißt es nicht selten, man soll davon die Version 1.2.24-50rc4 mit Bugfix-Patch 19 installieren, sonst funktioniert es nicht.

Mit dem Nix-Paketmanager eröffnet sich uns die Möglichkeit deklarativ zu beschreiben, wie unser lokales Setup auszusehen hat. Dabei spielt es (fast) keine Rolle, auf was für einem unixbasierten Betriebssystem wir unterwegs sind.

In diesem Artikel sehen wir beispielhaft an einer Entwicklungsumgebung für Elixir, wie einfach, schnell, non-invasiv und versionierbar man eine Entwicklungsumgebung bereitstellen kann. Weiter lernen wir eine Möglichkeit kennen, bestimmte Versionen eines Pakets zu installieren. Weiterlesen...

Freie Monaden oder: Wie ich lernte, die Unabhängigkeit zu lieben

Eine enge Kopplung der Beschreibung von Programmteilen und deren Ausführung führt unweigerlich zu Problemen, spätestens beim Testen der Software. Daher wird in diesem Artikel anhand von praktischem Code erklärt, wie uns das Konzept der freien Monade dabei hilft, Beschreibung und Ausführung sauber und elegant voneinander zu trennen.

Weiterlesen...