<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div class=""></div><div class=""><br class=""></div><div class="">Another feature is that they are, like Unix filters, fundamentally incremental, so multiple processing steps are interleaved and both input and output can stream directly to/from disk/network.  When doing pre-press in the early 90ies (file sizes >> memory sizes) this was a useful feature, and it is still helpful today, see for example the first part of my UIKonf talk:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">    </span><a href="https://www.youtube.com/watch?v=kHG_zw75SjE" class="">https://www.youtube.com/watch?v=kHG_zw75SjE</a></div><div class=""><br class=""></div><div class="">More recently, the fact that filters are dataflow-oriented and therefore don’t care much about the control flow has made them useful in implementing asynchronous processing pipelines  Think “FRP” just simpler, more readable and faster.  The Microsoft To-Do network stack is implemented using this.</div><div class=""><br class=""></div><div class="">With all the references to Unix P/F, it is probably no surprise that this also subsumes Unix I/O, just with the advantage of an OO hierarchy of shareable behavior.  Oh, and also the interesting feature of subsuming both filters and (output) streams, so ‘stdout’ in Objective-Smalltalk is one of these, a ByteStream that knows how to serialize objects and output them to some target that expects bytes.  And in ‘stsh’ it’s a slight variant of MPWByteStream that is more helpful to a human interacting.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""></div></div></body></html>