Martin Baker wrote:
>
> On 16/05/14 04:23, Waldek Hebisch wrote:
> > Concerning furthere changes: if file have no real "literate"
> > content I plan to remove noweb markup and TeX boilerplate.
> > In other cases I will probably wrap boilerplate parts into
> > conditional sections, so that Spad compiler will skip over
> > them.
>
> Waldek,
>
> Do you see a distinction between this literate content and other
> documentation? That is do you see a distinction between 'programmer
> documentation' and 'user documentation'? In an email conversion with Tim
> he argued against this distinction and I agree with him on this
> particular issue. (I hope I'm not misrepresenting Tims views since I am
> disagreeing about the mechanics of LP).
There is wide spectrum of documentation. On one axis things move
from informal to formal. There are differences in assumed
background: some parts try to explain very basic things, while
other can not be understand without lot of knowledge. There
is interface/implementation distincion.
Concerning literate content: I wrote several times that IMHO
it is ineffective and labour intensive form of documentation.
In my ideal world there ++ docstrings more or less as they are
now (some could be better written but general direction is
fine). In implementation part there would be comments or
pointers to extra explanations in tricky places, but tricky
places would be rare, so the amount of text in implementation
part would be relatively small. There would be overview
of implementation giving general structure, representation
of data and assumption. There would be explanation of
algorithms. There would API part, more detailed than
++ docstrings. Then usage part.
Of course, in trurely ideal world documentation would
exactly answer users questions. In good, but not so
ideal world some answers are implied, so user must
actively seek answers and apply inference. And there
is big problem a search: documentation containing
answers to all likely questions would be so big
that finding answer would be hard. So we need
to split documentation into parts. Such split
is very useful for users who understand it,
other must search all anyway.
> So I would argue that this literate content should be brought into the
> same form as the other documentation (you know my views on that).
>
> What I would really like to see is some keyword in the ++ comments that
> points out to a separate file containing this, more freely structured,
> documentation. The point of that is code, like Ralfs can display the
> meta information from the ++ comments but also have a button to link to
> this much more detailed stuff.
>
> Just an idea.
If there is relevant documentation even now we can do this. But
consider docsting for ellipticE:
ellipticE : (F, F) -> F
++ ellipticE(z, m) is the incomplete elliptic integral of the
++ second kind: \spad{ellipticE(z, m) =
++ integrate(sqrt(1-m*t^2)/sqrt(1-t^2), t = 0..z)}
There are several notaitions for elliptic functions,
this docstring tells you which funtion it is and
elliminates all doubts about used notation. If you
need more info you need to look into a texbook
about elliptic functions. One can argue that we
really should provide such a texbook, in particuler
FriCAS capabilites allow nice expostion of some
aspect. OTOH we are now getting int texbook
business, quite far from our main field. So
we probably should outsorce this.
One extra rant: there is huge difference between reference
texts and normal books. Reference text is dull, precise,
tries to be comprehensive and usually organizes things
to make them easy to find. Normal book uses various
tricks to get didactic effect: informal explanations,
examples special order. LP folks try to make programs
into normal books, while if book analigy is appropriate
it would be reference book.
--
Waldek Hebisch
heb...@math.uni.wroc.pl