I've had to write a bunch of bash scripts at work lately, and they're all long pipelines.
No threads, no shared memory, no dealing with (or even having to think about) race conditions, no complications. Just lots of processes connected with pipes.
But if I were to write the same stuff in a "real language," it probably wouldn't have been as parallel. I'd just have a big loop that does a bunch of things to one chunk of data at a time, instead of a bunch of processes at that do one thing at a time.
I wonder if there's something wrong with "real languages" -- something that the "Unix philosophy" got right, yet rarely trickles up into bigger apps, where you'd think there would be even more opportunity to parallelize, not less. Hmm.