PhpRiot
News Archive
PhpRiot Newsletter
Your Email Address:

More information

Desktop Summit, and some thoughts on Flow-Based Programming

Note: This article was originally published at Planet PHP on 6 August 2011.
Planet PHP

Like many, I'm currently in Berlin for Desktop Summit, the combined conference of the GNOME and KDE communities. It is a lot of fun to see all the familiar faces, and talk about the different projects going on!

Now, one of the things I've talked about with people is NoFlo, my new tool that brings Flow-Based Programming to Node.js. What is that? Wikipedia explains:

Flow-based programming (FBP) is a programming paradigm that defines applications as networks of "black box" processes, which exchange data across predefined connections by message passing, where the connections are specified externally to the processes. These black box processes can be reconnected endlessly to form different applications without having to be changed internally. FBP is thus naturally component-oriented.

Basically the idea here is to simplify managing the control flow of software: what data goes where, what happens then, etc. with the goal of making software more understandable. With NoFlo you can go and peek under the hood of a running piece of software, see where data is going to, and even rewire some connections if you want to.

The project is still in reasonably early stages, but it is already used in at least one real-life deployment. Here are some sneak peeks:

:

If you're interested, follow the progress on my GitHub repo, or subscribe to the Flow-Based Programming mailing list.

In the spirit of Desktop Summit, it would be interesting to talk how these workflows would fit into the concept of a free software desktop.