[comp.lang.c] coding style, documentation, etc...

mc68020@nonvon.UUCP (mc68020) (07/15/87)

   I am cross posting this to comp.lang.c as it pertains to the style
discussion currently being held there.   This is in reference to my 
complaints that it is virtually impossible for any but the authors of the
news software to make any sens of it, because it is virtually undocumented.

in article <4667@grebyn.COM>, karl@grebyn.COM (Karl A. Nyberg) says:
> 
> Let's see, you're complaining about a situation, then recommending what you
> consider to be a possible solution.  So far, so good.
> 
>>    Isn't all that difficult to cobble up now, is it?  (oh, sorry...except
>> for the fact that the almost total lack of documentation in the news
>> software, combined with the unGHODly mess it has become through Ghu only
>> knows how many generations of patching, makes the damned package virtually
>> solid as concrete.  Only those who've been playing with the sources for
>> YEARS have any hope of making any sense of it) (separate issue, sorry...
>> see my flamage in lang.c about coding style and documentation)
> 
> Now, however, you're making ad hominem attacks.  

   I beg your pardon?   What ad hominem attack did I make?  I point out,
accurately, if untactfully, that the news software is essentially 
undocumented, and that the myriad "patches" and changes to it have made it
virtually unnavigable.  My reference to "those who've been playing with it
for years" is not an attack...it is simply an observation that they are 
the only persons with any hope of comprehending the internal workings of
the package.

>                                                      DESPITE your own
> acknowledgement that there are some people who have put "years" into it.
> Feel free to match their effort.  Or perhaps even offer to fund the changes
> you "want", but don't feel competent to perform.  Until then, I believe that
> your recommendations will be received as only destructive bitching, and not
> constructive criticism.  Too bad you didn't stop earlier.

    I have on more than one occasion discussed with various people the 
re-design and re-implementation of the news software, with an emphasis on
documentation and simplification.  On each occasion, the concensus has been
that it would take literally PERSON-YEARS of difficult analysis to determine
what the existing software actually DOES, much less how it does it.  This 
analysis would be necessary, as the internal workings of the news package
is, as noted above, undocumented.  It is difficult to implement a program
when one has no idea what that program should be doing.

    I find myself facing a dilemma:  on the one hand, the news software
DOES, for the most part, work, and IS, for the most part, relatively
portable.  Many people have put much effort into this package, with no
remuneration, and their efforts are to be acknowledged and appreciated.
ON THE OTHER HAND, the job is incomplete.  There is no documentation.
The software is, for anyone but those directly involved in the creation of
it, essentially un-maintainable.  Bugs crop up that are virtually impossible
to track down, because few, if any, of us have the time to spend in trying
to decipher the dense, obtuse and undocumented code comprising the news
package.

    So, do we praise of condemn the authors/maintainers of news?  I suggest
that neither approach is correct.  I praise them for their lofty goals and
ideals, for their relentless dedication to getting the package out, and
for their unselfishness in doing so.  I strongly scold them for leaving the
project incomplete, for not doing it "right", (by which I mean commented,
readable code, and a reasonable effort at true portability).

    What is the solution?  *I* sure as hell don't know.   I cannot dedicate
the next two years of my life to analysing that code.  I am probably not
the best person to re-write news in any case, as my exposure to UNIX is
limited to two obscure implementations of obsolete versions (Xenix Sys III
and Unisoft V7/4.1 meld).  

    I should think that it would be in the interests of those whose names
appear as authors of the news programs to document them and make them
maintainable.  I wouldn't want *MY* name on the software, as it currently
exists.  Moreover, once it is documented, others who are qualified might be
able and willing to take on some of the load of maintenance and future
enhancements.

    I fail to see why it is considered somehow inappropriate to criticize
public domain code, simply because the author(s) chose to place it in the
public domain.  Does this act somehow relieve a programmer from responsibility
for his/her code?  Is there some rule of nature that says "I gave it away,
so it doesn't matter how bad it is"?  Bad or incomplete code is bad or 
incomplete code, no matter *HOW* it is published, and I don't believe that
a programmer has the right to expect to be immune to criticsm for bad code 
simply because they chose to give their code away for free.

> 
> (I don't do much playing with the news software either, except maybe compile
> and run it.  Thanks, Rick.)

    Indeed, thanks to Rick, and numerous others.  Now could you folks please
fix the documentation situation so the rest of us can make sense of it all?

UUCP:{ihnp4,ames,qantel,sun,amdahl,lll-crg,pyramid}!ptsfa!nonvon!gilsys!mc68020
-- 
UUCP:{ihnp4,ames,qantel,sun,seismo,amdahl,lll-crg,pyramid}!ptsfa!nonvon!mc68020

greg@gryphon.CTS.COM (Greg Laskin) (07/18/87)

In article <612@nonvon.UUCP> mc68020@nonvon.UUCP (mc68020) writes:
>I point out,
>accurately, if untactfully, that the news software is essentially 
>undocumented, and that the myriad "patches" and changes to it have made it
>virtually unnavigable.  My reference to "those who've been playing with it
>for years" is not an attack...it is simply an observation that they are 
>the only persons with any hope of comprehending the internal workings of
>the package.
>

I've had no problems comprehending the internal workings of the package
and I have not been playing with it for years.  The internal workings
might be more comprehensible to those with non-trivial exposure to
Unix and C than to those with little experience.

You are entitled to what you pay for.  How much are you willing to
pay for news software documented to your standards?  Complaining is
always easy.  The current news software appears to adequately serve
the market for which it was intended.

I would be happy to fully document the news software for you if you
would be willing to pay my normal consulting rates.  You could then
sell the documentation to anyone who wanted it to defray your costs.
Rick might also be willing to make the same deal.

-- 
Greg Laskin   
"When everybody's talking and nobody's listening, how can we decide?"
INTERNET:     greg@gryphon.CTS.COM
UUCP:         {hplabs!hp-sdd, sdcsvax, ihnp4}!crash!gryphon!greg
UUCP:         {philabs, scgvaxd}!cadovax!gryphon!greg