On Thu, Jul 23, 2015 at 10:58:13PM -0400, William Soukoreff wrote:
What would have the most impact - commenting inside the source code, or external documentation (perhaps a wiki), or something hybrid, like encoded comments inside the source code that could be "compiled" to viewable comments, similar to, for example, Javadocs)?
I've found most automatically generated documentation to be nearly worthless.
That said, I think that documentation should be located together with the code it documents, and extracted with an automatic documentation engine.
The point is that the documentation still needs to be written. By people who care that the final product is readable, clear, and pricise. But it needs also to be close to the code, so that it can be updated when its code is updated.
There also have to be introductory sections that tie everything together. These sections often do not belong with any source-code component of the source code. They are essential for someone approaching the system for the first time.
My example of exquisite documentation produced by a documentation generator is the Trestle Reference Manual:
http://www.std.org/~msm/common/SRC-RR-068.pdf
If you look at the source code for Trestle, you'll find the source code for the manual there, ofter interspersed in the interface files. I'm sure that getting it to be coherent when extracted and displayed took significant effort in the design of the documentation generator and in the source code of the documented modules.
The immediate practical question in this approach is:
How can we organise a crowd-sourced effort to accomplish this? A wiki is the usual answer, but it fails in terms of integration with the source code, which is essential to keeping it up-to-date with code changes.
I'd almost want the source-code to be on the wiki, so that people can edit comments right into it. And some mechanism should be available to merge these changes into the official source code, with some automatic filter that will ensure that none of the chages can affect source code behaviour. Maybe on that checks that chages are only made to comments, or other similar none-active code.
Changes that do not conform to this should be returned to the submitter (in his own revision conttrol branch) for reworking, or, after that, for review as a formal patch to the active code.
This might be a nontrivial add-on to revision control.
-- hendrik