Sure it's slow on startup, but if you design your functions to pipe to each other as if you were writing purely-functional code, startup time is mostly irrelevant. Function startup happens once and from there they just feed down to the parallel-by-default pipe stream.