This Space for Rent

Think of it as evolution in action

cat(1), Unix version 3:

NAME
cat - concatenate and print
SYNOPSIS
cat file ...
DESCRIPTION
cat reads each file in sequence and writes it on the standard output.

cat(1), bleeding edge gnuware:

NAME
cat - concatenate files and print on the standard output
SYNOPSIS
cat [OPTION] [FILE]...
DESCRIPTION
Concatenate FILE(s), or standard input, to standard output.
-A, --show-all
equivalent to -vET
-b, --number-nonblank
number nonblank output lines
-e
equivalent to -vE
-E, --show-ends
display $ at end of each line
-n, --number
number all output lines
-s, --squeeze-blank
never more than one single blank line
-t
equivalent to -vT
-T, --show-tabs
display TAB characters as ^I
-u
(ignored)
-v, --show-nonprinting
use ^ and M- notation, except for LFD and TAB
--help
display this help and exit
--version
output version information and exit

It's evolution, all right, if your idea of evolution is the nonstop bolting on of shiny, but completely useless, trinkets. And it's not just the festering pit of gnuware that does this, either; FreeBSD has a cat that is draped with a plethora of shiny twinkly options, and it is not redeemed in the least by having a functional -u flag.

The cat I wrote for Mastodon-next is 66 lines long, and that includes the copyright (“This code is in the public domain”) and a conditional "copy via mmap" mmap() function (the v3 cat is about the same size, but it's written in a very-pre K&R C, so it can't be compared as accurately.) The gnuware cat, on the other hand, is over an order of magnitude longer, and that's not including the applications library that's linked with the horrible thing.

But my cat doesn't have useful options like --version or --help, or a manpage that helpfully chirps “look in the info file!”, so it's obviously inferior.

*shudder*