flow-based programming introduction toronto, sept 11, 2013 paul tarvydas [email protected]
TRANSCRIPT
Simple (text) example of FBP
ls -l | less
Characteristics:components
portsstandardized communication
FBP
● subroutine / statement-level components● visual components & pipes (textual also)
● {processes | co-routines | stackless}● ports (queues) – {bounded | unbounded}● {streams | events}● encapsulation (namespace, time, space, control flow, …),
composition, hierarchy
Often Compared to...
● Erlang, CSP, Actors (FBP is hierarchical, siblings invisible)
● UML (FBP is for compiling designs, not modeling them)
● LabView (FBP preserves component separation at runtime)
● Scratch, etc. (FBP is primarily meant to simplify s/w engineering / architecting, not targeted at non-programmers per se)
NoFlo
http://www.kickstarter.com/projects/noflo/noflo-development-environmenthttp://noflojs.org
Javascript (Coffeescript) + Node.js
FBP in FBPhttps://github.com/guitarvydas/vsh/
yEd + 800 LOC + fork();
Websites
http://www.jpaulmorrison.com/fbp/https://groups.google.com/forum/#!forum/flow-based-programming
http://www.kickstarter.com/projects/noflo/noflo-development-environmenthttp://noflojs.org