On Sep 30, 2017, at 7:34 , Tobias Pape <Das.Linux@gmx.de> wrote:


No, thats Marcel Weiher. He did a quite a lot Squeak/Postscript Stuff.
I CC'ed him.

Marcel, can you comment on the Encoder Hierarchie?
(Full thread here)

Hi Tobias et al,

thanks for tagging me.  :-)

The “Encoder” classes are a Squeak version of an “object oriented pipes and filters” system I implemented in Objective-C in the late 90s:  https://github.com/mpw/MPWFoundation/tree/master/Streams.subproj

Why?  Well, because the Postscript generation code was based on my Objective-C Postscript processing code (http://www.metaobject.com/Technology/#EGOS), which is heavily based on these filters.

I have found the filters to be incredibly useful over the last 20 years, partly because they compose so well:  just like Unix pipes and filters, they are symmetric so that their input protocol ( #writeObject: ) is the same as their output protocol ( #writeObject:).  The filterSelector is there to allow filter-specific processing using double dispatch, but once the processing is done the result is once again normalized to a #writeObject:  You can therefore combine these filters any way you want.