The claim is false; process substitution can be cobbed together with named fifos,* and those are "ancient".<p>Only problem that those are temporary objects that have to be created in the file system, and cleaned up.<p>However, temporary objects (files, no fifos) are also used in here doc implementations.<p>Process substitution is a late feature simply because the creativity juice in Unix (tm) dried up some time before the middle 1990's, leaving the FOSS reimplementations of Unix to carry the development torch.<p>Those projects had to balance among other goals like quality/robustness and compatibility.<p>(If we look at the quality of the FOSS tools compared to the Unix originals, we could also remark that "quality and robustness was late in coming to Unix". But we equivocate on Unix, because GNU stands for GNU is Not Unix!)<p>Features appearing in FOSS utilities like GNU Bash take time to make into Unix (tm).<p>Process substitution is not yet in the standard, therefore it is not in in fact in Unix (tm).<p>Shell scripting is a conservative activity. The language isn't very good and so improving it is like kicking a dead horse in some ways; the most important matter in any new shell release is that old scripts keep working. (Like configuration scripts for the build systems of nicer languages).<p>---<p>* See GNU Bash manual: <a href="https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Process-Substitution" rel="nofollow">https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash....</a>:
<i>" Process substitution is supported on systems that support named pipes (FIFOs) or the /dev/fd method of naming open files. "</i>