Luke T. Shumaker » blog » poor-system-documentation

Why documentation on GNU/Linux sucks

This is based on a post on reddit, published on 2012-09-12.

The documentation situation on GNU/Linux based operating systems is right now a mess. In the world of documentation, there are basically 3 camps, the “UNIX” camp, the “GNU” camp, and the “GNU/Linux” camp.

The UNIX camp is the man page camp, they have quality, terse but informative man pages, on everything, including the system’s design and all system files. If it was up to the UNIX camp, man grub.cfg, man grub.d, and man grub-mkconfig_lib would exist and actually be helpful. The man page would either include inline examples, or point you to a directory. If I were to print off all of the man pages, it would actually be a useful manual for the system.

Then GNU camp is the info camp. They basically thought that each piece of software was more complex than a man page could handle. They essentially think that some individual pieces software warrant a book. So, they developed the info system. The info pages are usually quite high quality, but are very long, and a pain if you just want a quick look. The info system can generate good HTML (and PDF, etc.) documentation. But the standard info is awkward as hell to use for non-Emacs users.

Then we have the “GNU/Linux” camp, they use GNU software, but want to use man pages. This means that we get low-quality man pages for GNU software, and then we don’t have a good baseline for documentation, developers each try to create their own. The documentation that gets written is frequently either low-quality, or non-standard. A lot of man pages are auto-generated from --help output or info pages, meaning they are either not helpful, or overly verbose with low information density. This camp gets the worst of both worlds, and a few problems of its own.