There is also
dpipe, the "bi-directional pipe", included in vde2 package, and included in current distro package management systems.dpipe processA = processBsocat, the connect everything-to-everthing tool.
socat EXEC:Program1 EXEC:Program2
As @StéphaneChazelas correctly notes in the comments, above examples are the "base form", he has nice examples with optionsnice examples with options on his answer for a similar questionsimilar question.