Paradigmenwechsel
Objektorientierung oder Funktionale Programmierung? Diese Frage ist stets ein Quell endloser Diskussionen. Und ich halte mich aus dieser Debatte schön heraus und stelle ein völlig anderes Konzept vor: Das Datenstromorientierte Programmieren (Dataflow Programming). Die Versuchung lieht nahe, dieses Prinzip gleich mit einem Beispiel aus dem Audio- oder Videobereich vorzustellen. Als Informatiker braucht man aber eine formale, allgemeine Beschreibung. Hier mein Versuch.
Ein Programm ist beim DP ein gerichteter Graph. Die Kanten repräsentieren den Datenfluss, die Knoten sind Operationen (oft auch schlicht Knoten genannt), Quellen oder Senken. Eine Quelle erzeugt den Datenfluss, hat also keinen Eingang. Eine Senke gibt den Datenfluss aus, hat also keinen Ausgang. Eine Operation hat beliebige Ein- und Ausgänge und verändert den Datenfluss unabhängig vom Status der anderen Operationen. In diesem Bereich ähnelt das DP sehr dem echten Funktionalen Programmieren. Auch dort ist alles statuslos. Das hat bei beiden Paradigmen aber die Konsequenz, dass es keine Variablen oder sonstige Zeiger geben kann. Somit sind Seiteneffekte ausgeschlossen. Jeder Knoten ist bei der DP also eine Blackbox, die stets dasselbe macht. Beste Veranschaulichung ist sicher ein klassisches Fließband, bei dem jeder Arbeiter unabhängig sein Werk an den Daten verrichtet.
Aus diesem Grund eignet sich DP auch hervorragend zur Parallelisierung. Ohne Kostenaufwand können die Knoten von verschiedenen Systemen realisiert werden. Man braucht keinen Scheduler, kein Parallelisierungskonzept und Deadlocks und Co. sind auch nicht möglich.
Programmiert wird beim DP in den allermeisten Fällen tatsächlich grafisch. Man klickt sich einfach Knoten und Kanten des Programms auf den Bildschirm. Das Programm wird wie auf dem Beispielbild durch einen Graphen repräsentiert.
Das Einsatzgebiet für DP ist vielseitig. Zum einen bastelt die theoretische Informatik damit herum, zum anderen offenbart DP auch ganz praktische Vorteile. Im Umfeld von analogen Messdaten gibt es die Sprache


6. Januar 2006 um 15:50
Für einen etwas gröberen Überblick über Parallele Programmierung (und ein bischen Lisp Propaganda) hat Bill Clementson grade einen Blogeintrag verfasst.