Linux: Man Page Obsolete by --help

By Xah Lee. Date: . Last updated: .

Linux: Man Page Obsolete by --help

these days, man page is getting the sack. Instead, the embedded inline doc --help option is emphasized. Often, the info from --help is more complete than man page. Many programs don't even bother to write a man page, but the Linux distributor such as Debian, writes one for them, pro forma.

For example, i wanted to know what's the --minimal option do in xfce4-display-settings. So, i man xfce4-display-settings. The output doesn't mention it.

XFCE4-DISPLAY-SETTINGS(1)                 User Commands                 XFCE4-DISPLAY-SETTINGS(1)

NAME
       xfce4-display-settings - Display settings for Xfce

DESCRIPTION
   Usage:
              xfce4-display-settings [OPTION...]

   Help Options:
       -?, --help
              Show help options

       --help-all
              Show all help options

       --help-gtk
              Show GTK+ Options

   Application Options:
       -v, --version
              Version information

       --display=DISPLAY
              X display to use

COPYRIGHT
       Copyright © 2004-2008
               The Xfce development team. All rights reserved.

       Please report bugs to <http://bugzilla.xfce.org/>.

xfce4-display-settings 4.6.0 (Xfce 4.6.0)   March 2009                  XFCE4-DISPLAY-SETTINGS(1)

but if i do --help, there it is:

◆ xfce4-display-settings --help
Usage:
  xfce4-display-settings [OPTION...]

Help Options:
  -h, --help                    Show help options
  --help-all                    Show all help options
  --help-gtk                    Show GTK+ Options

Application Options:
  -s, --socket-id=SOCKET ID     Settings manager socket
  -v, --version                 Version information
  -m, --minimal                 Minimal interface to set up an external output
  --display=DISPLAY             X display to use

Lots other programs are like that, especially newer ones, and in particular those scripts from Ruby community written in Ruby.

this is in fact a good thing, because it lets doc in sync with the software. With man page, it's a separate program, and it's prone to have version discrepancy.

What About GNU info doc?

note that, Richard Stallman's GNU project, wanted us all to use his info doc format instead.

the info doc format is truly superior to man. Info is essentially a text-based hyperlink system, hyperlink as in today's HTML, yet it precedes HTML by a decade. The info doc supports chapters, navigation, cross-reference, search, and is easy to use.

however, there's a major problem: the verbosity of the content. Due to it being part of Richard Stalmann's GNU project, there's certain writing style, like emacs's manual, it's extremely verbose. For example, in the GNU Emacs Manual , it has several chapters telling user what copy paste means, what text editor means, what text selection means.

also, info doc is full of Richard Stalmann's FSF propaganda.

info doc, like GNU's double-dash syntax diff --brief, are never embraced by unix users. And today, with incredible growth of open source software, by Google, by git, ruby, …, GNU and Info is falling into obscurity.

Why is Unix Man Page Dying

Let me explain the significance of this. The thesis is, unix man page is becoming obsolete.

Used to be, in the 90s or before, any unix software, is basically a text command, and its doc, is the man page. Tech and software changed in past few decades. Obviouly, many software is not just a text oriented unix shit anymore. Browser is best example.

But, what about text oriented software, such as programing lang, or commands that manipulate stuff such as starting web server, optimize png, etc. Turns out, they are moving away from man page as doc. Instead, the command simply have a --help opition. Examples are, git, python, ruby, clojure, and basically everything since 2010.

Now, let's look at why this change, this evolution. First of all, man page is ancient tech. In order to create it, u have to learn the nroff or such format, and have to compile it. If not compiled, part of it is binary gibberish, unreadible. And, man pages r separate from the software. U have to write it independently. Also, major shit, is man page sits in a dir of its own. Like, the collection of docs. There's lots problem of man pages.

In since 1990s, program started to use the lisp idea of integrating doc within the software code. Started by perl, and python java ruby. Etc. The advantage is that, the code and its doc, is integrated. As u write the code, u can see the doc and change it too. As opposed to, a separete file that's the man page, and require separate compilation process. This is the biggest advantage for the coder.

For the user, same. Whatever command u type, xyz, u can read its doc by adding --help. Not so with the unix man. This is why, the significance, the underlying reason, of this shift.

But worst of all, man page was in an era of 80s where u write it in a incomprehensible way, because u assume its readers are also buddy unix coders and are c lang experts. Fuck the unix fuckheads.