Today’s pet peeve…


So I’m playing with a lot of .. well, what can best be described as “Web 3.0” technologies: things like Chef, Docker, etc., and they all have one annoying thing in common.

See, the “old UNIX way” traditionally dictates that programs “succeed quietly, fail noisily”. That is, they print nothing on success, and an error message with a description of the error (preferably machine parsable, if you don’t set the error level to a specific number for a specific error, ie: the famous 404 error).

Now, in comes these new kids on the block. They consistently write programs that fail silently. WTF? When I type a “command do something” and I typo it, what good does it do to fail quietly? What good is systemd scripts that insist on telling me “ok, pid 591” rather than just quietly writing the pid to a file in /tmp or something?

Quiet succeed, noisy fail is still important. Most of the basic startup routines (even today, under systemd) are bash scripts. And the user doesn’t need a screenful of [OK} STARTING PROCESS.. just print the ones that fail so we can SEE THE DAMN THING rather than having to (hopefully) catch the error message on startup.

Stop it, kids. We designed UNIX for a reason. It’s not a bug, it’s a feature, and I’ll keep pounding the pulpit with this. Read about the UNIX Philosophy before you change things. Understand that UNIX’s strength was its simplicity: it was created with tools that did exactly one thing, and did it well.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.