User:Bobr/Reconnectable Pipes

From Wikipedia, the free encyclopedia

If you work with pipes (in shell metalanguage a "|") you discover that they have both stream (ongoing flow) and finite object properties (lines or messages are sent). Akin to the wave/particle duality of light.

Frequently the applications themselves recognize or even assert a protocol on the pipe which breaks the stream up into a series of sub-objects separated as events (log file streams are an example, terminal sessions on a pseudo/loopback terminal are another). Even in the case of binary streams the application often recognizes structure within the stream.

Various Unix/Linuxi out there fail to recognize the need to be able to pause a running application, insert a tee into the pipe (for inspection or for parallel processing in a new/ additional way) of a running program. Instead the application and even sometimes the entire tool chain, must be restarted.

What if this were unneccessary? What if one could add additional diversions to a pipe (given the right authority and access permissions) on the fly and these went into effect on the next event-boundary?

It would make possible the graphical editing of processes which were truely losely coupled into an engine for accomplishing tasks. This engine could be interactively developed and evaluated, perhaps from multiple workstations simultaneously.