Flow-based Programming
jpaulmorrison.com
jpaulmorrison.com
If you are interested in the more large volume, data-processing, "classical" FBP implementations, a good place to start is my book, "Flow-Based Programming", 2nd ed., and the web site http://www.jpaulmorrison.com/fbp/ .
Glad to hear FBP is going strong. You may not remember me but I had a chance to work with you many years ago on getting the Java based FBP framework to input/output HTML (ie like a servlet node). Always loved the paradigm, the parallelism and genericness of the whole concept. I wrote many, many networks and eventually wrote an FBP parser that would create programatic FBP networks from XML files. I was wondering if this sort of thing (interpreter/parser/language) was ever incorporated into FBP itself? If not - are their any plans? Nowadays JSON would be the way to go. Thanks again - hope all is well. Chris S
I wonder if these problems have been successfully addressed somewhere.
I've built a few data flow systems in the past (my dissertation work [2] was based on one), but I decided to tolerate rather than avoid glitches early on because I found that way to be more resilient. Flapjax [3] avoids glitching via a topological sort, which I rather see as an optimization (to reduce unnecessary work) rather than as a correctness issue.
[1] http://research.microsoft.com/apps/pubs/default.aspx?id=2265...
[2] http://research.microsoft.com/pubs/179366/mcdirmid06superglu...
[3] http://cs.brown.edu/~sk/Publications/Papers/Published/mgbcgb...
Computing the dependency graph dynamically obviously leads to a lot more flexibility. I'm not really sure what you mean by "reactively" here: if you mean does it reactively update computations as state (and even code, if you want to get Bret Victor about it) changes, then ya.
Data flow by itself isn't necessarily reactive; actually the way it was originally defined to work very lazy push things through. Continuous interpretations where changes were propagated non-lazily didn't come until much later.
https://code.google.com/p/papy/
Will have to have a closer look at this one as well, though.
Thanks for giving PaPy a try. Although PaPy [https://github.com/mcieslik-mctp/papy] has never gained traction :(, I have been using it daily for over 5 years (no bugs in the scheduler so far). By now our PaPy based genomics pipelines have probably processed petabytes of data.
Pretty diagram also @ https://wiki.openstack.org/wiki/TaskFlow#Big_picture ;)
https://groups.google.com/forum/#!forum/flow-based-programmi...
Can highly recommend.
Thank you for the kind words... everyone.
When I started writing the book "Dataflow and Reactive Programming Systems" I thought I completely understood the various forms of dataflow. Yet in doing research for the book I found there are many more subtle variations than I ever knew existed.
The book went through many iterations before I felt I accurately described the similarities and differences between the many forms of dataflow. I'm happy to hear that I may have succeeded.
https://groups.google.com/forum/#!searchin/flow-based-progra...
I'm not really familiar with how flow-based programming differs from data flow programming, however.
[1] http://clojure.com/blog/2013/06/28/clojure-core-async-channe...
Bandwidth Limit Exceeded
The server is temporarily unable to service
your request due to the site owner reaching
his/her bandwidth limit.
Please try again later.