In computer programming, flow-based 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 component-oriented.
With NoFlo software is built by creating graphs that contain reusable components and define the program logic by determining how these components talk to each other.
Our promise was to design a new way to build software & manage complexity - a visual development environment for all.
Here is how Fast Company wrote about NoFlo:
If NoFlo succeeds, it could herald a new paradigm of web programming. Imagine a world where anyone can understand and build web applications, and developers can focus on programming efficient components to be put to work by this new class of application architects. In a way, this is the same promise as the “learn to code” movement, which wants to teach everyone to be a programmer. Just without the programming.
Celebrating six years of NoFlo
Earlier this year we incorporated Flowhub in Germany. Now, to celebrate six years of NoFlo we’re offering a perpetual 30% discount on Flowhub plans. To lock in the discount, subscribe to a Flowhub plan before June 12th 2017 using the code
After a long period of semi-obscurity, our Kickstarter campaign greatly increased the awareness in FBP and dataflow programming. Several open source projects expanded the reach of FBP to other platforms, like MicroFlo to microcontroller programming, or PhpFlo to data conversion pipelines in PHP. To support more of these with common tooling, we standardized the FBP protocol that allows IDEs like Flowhub manage flow-based programs across different runtimes.
Dataflow also saw uptake in the bigger industry. Facebook’s Flux architecture brought flow-based programming to reactive web applications. Google’s TensorFlow made dataflow the way to build machine learning applications. And Google’s Cloud Dataflow uses these techniques for stream processing.
Tooling for flow-based programming
One big area of focus for us has been improving the tooling around NoFlo, as well as the other FBP systems. The FBP protocol has been a big enabler for both building better tools, and for collaboration between different FBP and dataflow systems.
Here are some of the tools currently available for NoFlo developers:
- Flowhub — browser-based visual programming IDE for NoFlo and other flow-based systems
- noflo-nodejs — command-line interface for running NoFlo programs on Node.js
- noflo-browser-app — template for building browser applications in NoFLo
- MsgFlo — for running NoFlo and other FBP runtimes as a distributed system
- fbp-spec — data-driven tests for NoFlo and other FBP environments
- flowtrace — tool for retroactive debugging of NoFlo programs. Supports visual replay with Flowhub
With this release, it is easier than ever to build well-behaved NoFlo components and to deal with the mixture of asynchronous and synchronous data processing. It also brings NoFlo a lot closer to the classical FBP concepts.
To find out more about NoFlo 0.8, watch my recent NoFlo talk from Berlin Node.js meetup:
Road to 1.0
In addition to providing lots of new APIs and functionality, NoFlo 0.8 also acts as the transitional release as we head towards the big 1.0 release. In this version we marked many old APIs as deprecated.
NoFlo 1.0 will essentially be 0.8, but with all the deprecated APIs removed. If you haven’t done so already, now is a good time to upgrade your NoFlo projects to 0.8 and make sure everything runs without deprecation warnings.
We intend to release NoFlo 1.0 later this summer once more of our open source component libraries have been updated to utilize the new features.