What is this?
- A call graph! (of my little go app)
What if we could take control of this...
…and define the graph declaratively? Wow! :)
Invented at the 60's at IBM
FBP Inventor J. Paul Morrison
The flow based programming book
- A must read
“In computer programming, flowbased
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
FBP vs DataFlow
“FBP is a particular form of dataflow
programming based on bounded
buffers, information packets with
defined lifetimes, named ports, and
separate definition of connections.
An array of benefits ...
Change of connection wiring
Inherently concurrent suited for the multi-core
Testing, monitoring and
logging very easy:
Just plug in a mock-, loggingor debugging component.
Based on Node.js
Written in coffeescript
237 reusable components
Successful (116% of 100k USD) Kickstarter for
FBP definition format in JSON
Re-implementation of Jekyll Static site generator:
16 000 LOC → 107 components
(4 custom ones of ~500 LOC, rest re-usable!)
Book on Data Flow, FBP and Reactive Programming