On 29 September 2016, John P. Hartmann wrote:

> First time a label is used, it marks the stage that it refers to.
> Subsequent references are to additional streams for the stage that
> declared the label.  Since the program to run has already been
> specified, subsequent references to the label must be bare.

I too hoped for some insight in the "why" of the design, but I am aware
this goes back to long before I wrote my first pipeline.

To me this is much like the "if the compiler knows there should be a ';'
why can't he just put it there instead of bothering me" question.
The more you automatically assume, the less chance to spot mistakes.
Some complain that CMS Pipelines is too compact already and a simple typo
causes grief. Even worse is when the simple typo makes the system do
something completely different. Hang in for horror stories about missing
a comma in a command on TSO.

I do recognize the situations where your suggestion could simplify the
pipeline. For such if/then/else constructs I sometimes use IF (mainly in
the limited space of the command line):

  .. | a: if drop | sort | a: | ..

But a lot of more complicated topologies will not be helped by this. One
of the challenges I think is to avoid adding things that only help a bit.
They make it easier to do some things, but make it harder to do get beyond
simple things.

Rob

Reply via email to