Side effects and interoperability

Hi,

[Having read the minutes of the telcon.]

I don't think that no side effects impacts on whether caching is allowed 
or not. A component with side effects can consistently produce the same 
side effects each time, after all. Rather, whether or not we allow side 
effects is important when considering reordering steps, or skipping them 
altogether.

I'm in favour of a "no side effects" rule because I want to make sure 
that the same pipeline run at the same time on different pipeline 
engines produces the same result. I view that as the basis for 
interoperability, which is one of our design principles.

I also want pipeline engines to be able to optimise, such as by not 
performing steps that don't need to be performed or by performing steps 
in parallel. I don't want those optimisations to effect the final result.

I therefore think it's vital that if the pipeline language doesn't 
constrain a pipeline engine to run two steps in a particular order then 
the order in which the two steps are run doesn't have an effect: the 
steps have no side effects.

Cheers,

Jeni
-- 
Jeni Tennison
http://www.jenitennison.com

Received on Thursday, 13 April 2006 19:44:21 UTC