Dependently-Typed TypeScript

TypeScript ist eine Programmiersprache mit einigen Besonderheiten: Im Gegensatz zu den allermeisten anderen getypten Programmiersprachen wurde sie als Aufsatz für JavaScript (JS) entwickelt. Dabei hat Microsoft besonderen Wert darauf gelegt, dass sich die Sprache möglichst nahtlos in die bestehenden Ökosysteme (Node.js und Browser) integriert. Das wird dadurch erreicht, dass die TypeScript-Syntax „bloß“ die Typen zu JavaScript hinzufügt und die Kompilierung aus dem Entfernen der Typannotationen besteht. Damit hat sich TypeScript zum de-facto Standard entwickelt, wenn es darum geht, typsichere Anwendungen auf JS-Basis zu bauen.

Weiterlesen...

Aufgehübscht! - Pretty-Printing

Um ein (verschachteltes) Objekt komfortabel untersuchen zu können, wird eine gute Darstellung desselben in Form von Text benötigt. Pretty-Printer versuchen genau das: Dinge so auf den Bildschirm zu drucken, dass die interne Struktur auf einen Blick ersichtlich ist. Wir schauen uns heute den Pretty-Printer aus Philip Wadlers Paper „A prettier printer“ (1997) an, dessen Besonderheit die Anwedung von Algebra auf Design und Implementierung ist. Daran werden wir ein weiteres Mal sehen, dass Datenmodellierung und Abstraktion der funktionalen Programmierung zu wunderbar einfachem und prägnantem Quellcode führen, der komplexe Domänen elegant beschreibt.

Weiterlesen...

Checkpad sucht Softwareentwicklerinnen und Softwareentwickler

Wir von Checkpad suchen eine Softwareentwicklerin oder einen Softwareentwickler mit Schwerpunkt funktionaler Programmierung an unserem Standort in Freiburg! Unser Produkt Checkpad besteht aus einer web-basierten und einer mobilen Softwarelösung, mit der viele Arbeitsabläufe im Krankenhaus einfacher und effizienter gestaltet werden können. Wir setzen zwar nicht ausschließlich funktionale Programmiersprachen ein, ein großer Teil der Software ist aber in Haskell geschrieben und auch beim Einsatz andere Programmiersprachen (z.B. Typescript oder Dart) lassen wir uns von funktionalen Design- und Architekturprinzipien leiten.

Weiterlesen...

Simple Restarts: Hinter den Kulissen

Im vorherigen Blogpost haben wir Conditional Restarts in Clojure kennen gelernt und dabei die Bibliothek „Simple Restarts“ verwendet. Diese Bibliothek wurde als Anschauungsbeispiel erstellt, um Conditional Restarts in Clojure zu erklären. In diesem Blogpost werden wir einen Blick hinter die Kulissen werfen und verstehen, wie die Magie hinter „Simple Restarts“ implementiert ist: Eine lehrreiche Reise voller Illusion, Überraschungen und „Aha!“s.

Weiterlesen...

Ein alter Hut: Conditional Restarts

Viele unserer Blogposts beschäftigen sich damit, wie effektbehaftete Programme beschrieben und getestet werden können. Dabei kommen freie Monaden oder algebraische Effekte zum Einsatz—Effektsysteme sind gerade ein heißes Thema. Common Lisp denkt sich: Das ist ein alter Hut. Denn mit Conditional Restarts ist ein mächtiger Mechanismus zur Abbildung von Effekten im Sprachkern vorhanden. Wir haben diesen in Clojure nachprogrammiert und werden Conditional Restarts in einer zweiteiligen Blogpost-Serie vorstellen. In diesem ersten Teil werden Conditional Restarts erklärt und an Beispielen die praktischen Einsatzmöglichkeiten aufgezeigt.

Weiterlesen...