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:
And after a bit of styling:
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: