Because he only thinks it's the "echo file to terminal" command.
The main use of cat was mentioned in the Programming in the UNIX environment article.
> The fact that cat will also print on the terminal is a special case. Perhaps surprisingly, in practice it turns out that the special case is the main use of the program. [...] But what about -v? That prints non-printing characters in a visible representation. Making strange characters visible is a genuinely new function, for which no existing program is suitable. [...] The answer is ‘‘No.’’ Such a modification confuses what cat ’s job is concatenating files with what it happens to do in a common special case - showing a file on the terminal.
I wonder how many processes I could spin up in the time it would take for me to figure out "hmm, no, invoking that command would use one more process than necessary..."
I don't give a hoot about that stuff when I'm doing stuff interactively. e.g. when using `more`.
> The use of cat to feed a single input file to a program has to some degree superseded the shell’s < operator, which illustrates that general-purpose constructs - like cat and pipes - are often more natural than convenient special-purpose ones.
https://en.wikipedia.org/wiki/Cat_(Unix)#History
Whereas "con"catenate means to link separate things together. These are minor distinctions, but if somebody is going to call things "asinine" they should at least get the pedantry correct.
How’s that for pedantry?
Edit: that wikipedia page makes it sound like the program it replaced was the one that prints a single file to the screen.
> Wildly simple - it takes at most one argument.
That is asinine. Why would a program be called ‘cat’ if it can’t concatenate multiple files?
Also, his “grash” program is seriously deficient in the handling of signals – it completely ignores the issue. There are many subtle issues with signals which have to be handled correctly when writing a shell: http://www.cons.org/cracauer/sigint.html