In the example there you would .pipe() out to an HTTP response rather than a file, presumably.
...holy smokes, John Resig just replied to me. Thanks so much for jQuery, it has changed my life and is what made me become a programmer. (I now do client work for 20<20Thiel Fellows, and my startup has been in WSJ - none of which would have been the case if I hadn't started programming with jQuery!)
They tend to have a fairly low information density on the screen. When looking at a simple program that all fits on a single screen, that's fine. But when working with an actually real world code base, when I don't understand exactly what it's doing, I need to be able to see as much on screen as possible at once to keep it all in context, while browsing through to figure out how all of the pieces link together. All of the empty space taken up in a visual language makes it a lot harder to get as much information on the screen at a time.
And the programs can frequently be quite hard to follow. Tracing all of the wires between different nodes, figuring out what's stacked on what.
There's a reason that despite the very obvious circuit diagrams you could represent electronics with, hardware engineers for integrated circuits don't use a visual tool for laying out their hardware, they use Verilog or VHDL, only compiling it down to the actual netlist and laying it out at the very end.
I have never seen a visual programming language that I would say could scale to anything beyond a few basic demos, which could just as easily be accomplished in a page of code.
Visual programming with streams is nothing new, nor is it maligned or ignored. Pure Data is a good example of a domain where it has been a popular choice for several decades.
There are limitations that come with the flow abstraction, and there are strengths that plain text will always have over other approaches.
Having awareness of the diversity of programming paradigms and tools is a good thing, but looking for a silver bullet in any particular approach is surely not a good thing.
Tools aimed at novices tend to ignore some of the fundamentals of solid software development, such as automated testing. In my space, GIS, there are lots of visual modeling tools, and these inevitably grow to a certain size, then get ported over to a textual programming language when maintenance becomes a nightmare.
There is a place for visual programming like there is a place for picture books (graphic novels even push into some pretty serious territory), but at the end of the day text wins with both prose and code, since it is far more expressive where it comes to expressing reasoning and logic. Doubly so perhaps, because unlike stories or art, code is typically not up for subtle interpretation.
For a concrete implementation, check out our SDK. We use streams to abstract away the details of paging out Content from our APIs. There is an example in the README. https://github.com/Livefyre/streamhub-sdk
These streams power the bottom 5 apps you see here: http://apps.livefyre.com/
Not as much to learn today, but with the really neat tool I can certainly learn from it, so I can't complain.