70 likes | 212 Vues
This article delves into Flow-Based Programming (FBP), focusing on its key characteristics such as component-based architecture, standardized communication through ports, and the use of processes and co-routines. FBP emphasizes encapsulation, composition, and hierarchy, drawing comparisons with technologies like Erlang, UML, and LabView. It highlights FBP's role in software engineering and architecture, and addresses its application in environments such as NoFlo for JavaScript. Learn how FBP simplifies complex software development processes.
E N D
Introduction Toronto, Sept 11, 2013 Paul Tarvydas paul.tarvydas@gmail.com Flow-Based Programming
ls -l | less Characteristics: components ports standardized communication Simple (text) example of FBP
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)
http://www.kickstarter.com/projects/noflo/noflo-development-environmenthttp://www.kickstarter.com/projects/noflo/noflo-development-environment http://noflojs.org Javascript (Coffeescript) + Node.js NoFlo
FBP in FBPhttps://github.com/guitarvydas/vsh/yEd + 800 LOC + fork();
http://www.jpaulmorrison.com/fbp/ https://groups.google.com/forum/#!forum/flow-based-programming http://www.kickstarter.com/projects/noflo/noflo-development-environment http://noflojs.org Websites