Weihnachtspause

Nach 38 Posts - nahezu jede Woche eines - im Jahr 2013 gönnen wir uns bis ins neue Jahr eine kurze Pause. Wir hoffen, die Beiträge haben Ihnen gefallen - wir freuen uns auf viele neue Beiträge 2014.

Ein frohes Weihnachtsfest wünscht das Team von funktionale Programmierung!

Videos zur CUFP 2013 verfügbar

Die Commercial Users of Functional Programming (CUFP) ist eine jährlich stattfindende Konferenz, zu der sich industrielle Anwender funktionaler Programmierung treffen. Wir hatten sie einem vorigen Beitrag vorgestellt. Die diesjährige CUFP haben Marius Eriksen von Twitter und ich organisiert. Sie fand im September in Boston statt und war (wieder einmal) ein voller Erfolg.

Anlass für dieses Posting ist unter anderem, dass inzwischen Videos zu den Talks der Konferenz online sind. Es lohnt sich, einen Blick darauf zu werfen - die Videos sind allesamt unterhaltsam und liefern nützliche Einblicke in industrielle Anwendungen der funktionalen Programmierung.

Wer sich mit Text eher anfreunden kann: Anil Madhavapeddy hat einen Liveblog-Beitrag mit Kurzberichten zu allen Vorträgen geschrieben.

CUFP 2013 hat einige bemerkenswerte Trends aufgezeigt:

  • Während vor einigen Jahren die CUFP noch vornehmlich durch Startups und kleinere Unternehmen bevölkert war, sind zunehmend große Unternehmen mit kritischen Anwendungen vertreten. Dazu gehörten Twitter, Facebook und Netflix.

  • Für mich überraschend war, wie sehr Haskell Einzug in Server-Anwendungen findet. Für uns ist das keine Neuigkeit, aber dieses Jahr waren noch die Gilt Groupe, FP Complete, skedge.me und GREE dabei.

Einfache Datentypen mit Objective-C

Heute geht‘s mal wieder darum zu zeigen, dass sich die Beschäftigung mit funktionaler Programmierung auch dann lohnt, wenn man oft in imperativen oder objektorientierten Sprache unterwegs ist. Der Artikel zeigt anhand eines Beispiels aus der Praxis, wie wir in einer in Objective-C geschriebenen iOS-App Einflüsse aus der funktionalen Programmierung aufgenommen und damit eine sehr einfache Datenmodellierung ermöglicht haben. Wenn Sie selbst auch mit Objective-C programmieren, können Sie unsere Ergebnisse direkt nutzen, denn sie stehen auf github unter einer Open-Source-Lizenz zur Verfügung. Die Idee kann natürlich auch ohne weiteres für andere objektorientierte Sprache wie z.B. Java umgesetzt werden.

Weiterlesen...

Was ist das 'Expression Problem'?

Das sogenannte ‚Expression Problem‘ ist das Problem, dass sich Programme in zwei Richtungen weiterentwickeln können, nämlich:

  • neue Operationen für bestehende Datentypen, und
  • neue Datentypen für bestehende Operationen,

und dass man sich gerne beide Möglichkeiten offen halten möchte, ohne das Programmieren wesentlich komplizierter zu machen. Komplizierter wird es zum Beispiel, wenn der bestehenden Code dazu geändert oder neu kompiliert werden muss. (Phillip Wadler, der den Begriff geprägt hat, formuliert es hier etwas enger).

Der grundlegende Ansatz der objekt-orientierten Programmierung macht es leicht neue Datentypen hinzuzufügen und schwer neue Operationen hinzuzufügen, während es bei klassischer funktionaler Programmierung genau umgekeht ist (siehe z.B. hier).

Im diesem Artikel möchte ich das Problem anhand einfacher Beispiele erläutern, und einige Lösungen auflisten, die in diversen Sprachen dafür angeboten werden.

Weiterlesen...

Tail Calls

Wer mit funktionalen Programmierern über die Programmierung an sich diskutiert, wird früher oder oder später auf das Thema proper tail calls bzw. im deutschen Endrekursion stoßen. Funktionale Programmierer halten dieses Feature bei der Programmierung mit einer Selbstverständlichkeit für unerlässlich, die Vertreter anderer Sprachen oft als fanatisch empfinden.

Tatsächlich ist Endrekursion in der funktionalen Programmierung von zentraler Bedeutung. Jedoch sollte sie objektorientierten Programmierern eigentlich noch wichtiger sein.

Weiterlesen...