The Russell Philosophy

* Currently, documentation and sources are disparate; they're generated
separately and subject to errors and differences in revision and quality.
Thus, undocumented options are common, and documented options often don't
work or even don't exist, and comments that don't match the code itself
are rife.

* The situation has arisen because at no level does the computer relate
  source, documentation and functionality.  In other words, the computer
  doesn't undrerstand the code, so the documentation was written by a human.

* Really, the online help/info and source should be generated automatically
  from an Englisn (i.e. Natiural Language) description, possibly presented
  in spoken form, but that's well beyond the state of the art.

* Comprimises are possible

  - generate (design and implement) a high-level language that really _is_
    self-documenting, that the computer can ``understand'' and use as a basis
    for interrogative help.  This implies (to me, at any rate) that the
    language will be `concept oriented' -- I mean by this that the user/
    programmer explains his or her needs to the computer, which then both
    implements and documents.  This is, if you like, an automated Analyst.

  - have the computer automatically mantain as much of the documentation and
    code as possible, and keep them synchronised.

  Clearly the latter comprimise is a subset of the former.

* I call the first solution the `Explain' system.

* I call the second solution `Buildprog'.

* Buildprog is not really a solution to the real problem at all, but in
  practice it addresses some very important issues and is a step in the
  right direction.

* The Explain System would probably make a very good -- but rather difficult
  -- research project.
