Meny

Seeing is believing

the Flow-Based Programming Revolution

@D4Tocchini

Founder of the Grid, NoFlo's parent company

Github / Vimeo / Facebook / Twitter

Flow-Based Programming for JavaScript

and hopefully Java, Obj-C, Python, etc.

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.

This has been around since the 70's, why hasn't it taken off?

- Anonymous Developer

It has taken off!

Filter Forge

This is all pretty stuff, but what about hardcore tech?

- Anonymous Developer

How Mazda designs engines

Ok, but what about apps?

- Anonymous Developer

“Something like Facebook Home is completely beyond the abilities of Photoshop as a design tool.”

- Julie Zhuo, Facebook Product Design Director

Apple's Quartz Composer

Quartz Composer is fundamentally flawed

  • No auto layout
  • Prototypes only
  • Everything has to be rewritten in code
  • Lack of modern software idioms == Hacky as shit
  • No easy escape hatches into code
  • Apple doesn't care

Many have tried...

Yahoo!Pipes

LabVIEW

UML

Why is FBP not established in general software creation?

  • Lack of well designed tools
  • Lack of respect for things like Git and TDD
  • Unlike new industries, like VFX, dogma has not set in

Flow-Based Programming for Programmers First

the UI is cherry on top

Best of both worlds

Hello World w/ code

NoFlo graphs can be created 3 ways in code; via JSON, programmatically or with a DSL.


              Button(html/Button) CLICKED -> SHOW Alert(js/Alert)
              'Hello World!' -> MESSAGE Alert()
  					

NoFlo Hello World w/ the UI

NoFlo port of Jekyll

a hardcore example

Ruby-Jekyll source codeNoFlo-Jekyll with the .fbp DSLNoFlo-Jekyll on the UI

The NoFlo UI is good for...

NoFlo as a code framework is good for...

What makes NoFlo unique?

  • Meets you where you're at skill wise
  • Works w/o the UI
  • Tight Github integration
  • Built-in TDD
  • Pixel perfection obsession
  • Hosted environment
  • Front-end and backend-end app dev
  • Composability

Where are we?

NoFlo UI Demo