Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News NoFlo Aims to Enable Visual Flow-Based JavaScript Programming with Kickstarter Funding

NoFlo Aims to Enable Visual Flow-Based JavaScript Programming with Kickstarter Funding

This item in japanese

NoFlo is a 2 year-old project aiming to bring flow-based programming to JavaScript, both in the browser and server (node.js). Until now, flows had to be defined using the textual FPB language or JSON. NoFlo's creator, Henri Bergius, now seeks $100k in Kickstarter funding to be able to build a web-based visual designer to develop these flows visually as well.

Flow-based programming is a programming paradigm developed by J. Paul Morrison in the early 1970s. Wikipedia defines it as follows:

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.
FBP is a particular form of dataflow programming based on bounded buffers, information packets with defined lifetimes, named ports, and separate definition of connections.

NoFlo brings this box-and-arrow programming style to JavaScript. By combining some of the currently 250 reusable components, including components to use git,  Markdown, XML, HTML, CouchDB, Redis, programs can be written. Here is an example programming encoded using the FBP domain-specific language that NoFlo supports:

# In the graph we first need to define the nodes and the connections between them
Read(filesystem/ReadFile) OUT -> IN Display(core/Output)

# Start off the graph by sending a filename to the file reader
'myfile.txt' -> IN Read()

This little program reads the file myfile.txt and prints it to standard output.

Since flow-based programs are graphs, they scream for a visual representation. However, until now NoFlo programs had to be written either using the FBP language or JSON. To change this, NoFlo now created the NoFlo Development Environment Kickstarter. The goal of this project is to develop a web-based designer for NoFlo programs.

As of today the Kickstarter project has raised $78k out of its $100k goal.

Rate this Article