Flow-Based Programming is interesting

Quite a different way of doing software:

  • Application logic is defined by building a graph
  • The graph consists of reusable “black box” components, and their connections to each other
  • Components can send each other packets through the connections

Done in a right way, this would finally enable true productive visual programming. Maybe the developer tool tablets are waiting for?

I’m currently reading the book on the subject, and building a proof-of-concept implementation in Node.js and CoffeeScript: http://github.com/noflo/noflo

GUI is slowly coming up, powered by jsPlumb:

NoFlo GUI

And after a bit of styling:

NoFlo GUI

There is also a domain-specific language for flow-based programming. The example above, as FBP:

'package.json' -> SOURCE Read(ReadFile) OUT -> IN Split(SplitStr)
Split() OUT -> IN Count(Counter) COUNT -> IN Display(Output)
Read() ERROR -> IN Display()

Added support for generating docs from FBP source files with Docco:


Read more Flow-Based Programming posts.