As software developers, every day we are faced with ever more complex systems to run our applications. Single machines are not enough. Now we need to orchestrate hordes of multicore CPUs, GPUs and DSPs to run our applications in a scalable, distributed way and this is hard.
Flow-based Programming (http://www.jpaulmorrison.com/fbp/) is a programming methodology created by J Paul Morrisson at IBM in the 70s in order to solve everyday challenges he faced when developing large scale business applications. Based on a solid theoretical foundation and battle-tested on real-world applications (with one of them running continuously for the last 40 years), FBP is making a comeback as an effective model to reason about and implement data intensive, distributed applications, as can be seen by the growing interest in tools like NoFlo (http://noflojs.org) and Storm (http://storm-project.net).
In this talk I will present the history and fundamental concepts of Flow-based Programming, and how it is different from other models like dataflow, functional and object-oriented programming. We will then use noflo to develop a small heterogeneous application using this methodology.