Compliance with standards makes zero sense if those standards are not optimal, or if they are outright garbage. Evolution of almost everything in technology is faster than the evolution of standards. And many standards were written by people dealing with really shoddy old ways of doing things.
What’s most upsetting are the number of POSIX things that have been codified when there was likely little thought given to the original implementation. We have paved all the cow paths. Like, why can you still configure tar options without prefixing a hyphen?
Probably because a lot of scripts and other software has written that calls tar without a hyphen in the options, and it seems strange to break them for no other reason than it seems better to you. If you want to change behavior and make a better tar with saner option behavior, you can do so, just don’t call it “tar”.
I fully understand how we got here, but it is still frustrating. POSIX was not a gift from the gods, but a descriptive this-is-how-thing-are. There should not be any sacred cows, and there needs to be a way to eventually break backwards compatibility and remove the cruft.
> there needs to be a way to eventually break backwards compatibility and remove the cruft.
Actually, no. There's always a cost/benefit ratio. You can easily create a beautiful, elegant system repateadly forcing backwards incompatibility. In fact, that has been done - see the history of "Plan 9". Even the developers of Unix couldn't just throw away backwards compatibility in the name of elegance at any cost.
I think you do sometimes want to break backwards compatibility, but there'd better be a good reason for it & the pain needs to be minimized for users. If users repeatedly undergo pain from a system, they will stop being users.
One of the most important rules for the Linux kernel is "don't break userspace".