It was good for its time but right now it can only seduce a young inexperienced student with basic examples that fall apart quickly.
Oh look we can read a file with "cat" then we pipe it into "wc -l" to count the lines just like this "cat file.txt | wc -l" WOW!
Isn't that a genius simple philosophy of "do one thing and do it well?".
It is, but only on a very shallow level.
It is a practice that actively encourages throwing away information. Mangling it up in ad-hoc data structures then relying on more ad-hoc arbitrary text parsing to extract the information.
Then you end up with "cat | awk | sed | tr | perl | kill-me-now --force | bullshit --verbose | xargs crap 2>&1".
It creates problems then wants you to applaud it for solving them with crufty tools?
No thank you.
It was nice for hobbyists sitting behind slow terminals saving keystrokes in the 80s.
It's no longer appropriate today.
A huge percentage of the problems that we deal with today are "artificial" because we have decided not to embrace sane universal methods of data transport/transform at a core level.
So you just have to shovel things back and forth from one subsystem to another.
Today I'd be impressed by a software system/philosophy where each component is in perfect harmony with the others.
An operating system whose state, packages and configuration is stored and managed via a proper database.
Programs that communicate with each other in structured form so every piece of input and output that you need is right there for you to consume.
reply