On Tue, Apr 29, 2014 at 7:44 PM, Phil Hagelberg <p...@hagelb.org> wrote:

> On Saturday, April 26, 2014 9:21:26 PM UTC-7, Mars0i wrote:
> > I like the general idea of the Valentin's proposal, but I don't
> > understand every bit of it.  It sounds complicated.  Personally, I'd
> > rather see something that's relatively simple, and good enough, than
> > something that's perfect but unwieldy.  If it's too difficult, people
> > won't use it, or they'll waste time, or feel that the Clojure
> > community expects them to spend too much time on something that
> > detracts from what's important.
>
> Double-inc[1] on this. Clojure needs people who care about documentation
> far more than it needs another documentation system. Don't try to apply a
> technical solution to a social problem.
>


Double-dog dinc.  Having followed this thread I hazard a few reminders of
the obvious.  Code *is* documentation.  Programmers don't like to write
"documentation" - it's hard enough to write good code, and then you want me
to translate my code into clear simple concise English?  (Are you nuts?
Learn to read code!)  Writing good documentation and writing good code are
distinct skills that are very rarely found in a single person.  Good
documentation is expensive.  "Good" means "good enough".

Less obvious: there are at least two distinct notions of documentation in
play.  One is the code: self-documenting documentation.  The other is
arguably meta-documentation: English (usually) prose *about* the code -
which means, about the self-documenting documentation.

Controversial:  literate programming is a bad, bad, bad idea.  There is a
reason it has never caught on.  Ever try to hack Tex?  Did Knuth's
"literate" code help?  Maybe; but people routinely tackle systems that are
just as complex without the added burden of tangle and weave, etc.  Many
years ago I had to do maintenance work on a banking system written entirely
in S/370 assembler.  It was a pain, but it was doable.  Literate
programming would have made it far worse, in my opinion.  Would it be
easier to hack TeX if it had been written without the lit prog cruft?  In
my view the answer is (probably) yes.  (Note that, until relatively
recently, (XeTeX and LuaTex) there was almost no work that built on TeX to
make new stuff - which is what Knuth had hoped for.)  But the more critical
point is that TeX was (mostly) a one-man show.  Literate programming fine
for that, but is utterly, irredeemably, terminally unsuitable for the sorts
of projects that work in the open source world - lots of different people,
scratching lots of different itches, with lots of different opinions about
the Way the World Ought To Work.  I can see no reason to think that
"literate code" is in any way immune to the problems that inevitably
afflict any successful software project - bitrot, feature creep,
over-engineering, under-specification, gradual divergence between
descriptions of the system and what it actually does, pressure to just make
the damn thing work (as opposed to "doing it right"), etc. etc. etc.  My
heart sinks whenever I see a project that looks good but is implemented in
"literate" programming.  If I really like it and want to bang on it, the
first thing I will do is terminate the literate stuff with extreme
prejudice - give me the code, please, and the minimal amount of local
commenting.  I'll read the "literate" docs, but will never code the stuff.

The one thing that I think would be genuinely useful and developer friendly
with respect to Clojure is a means of making type signatures explicit.
Clojure may be dynamically typed, but everything has an intended type, and
I would like to see it.  I'm thinking of something along the way Haskell
and other languages express type sigs.  The paradigmatic example is
factorial (or fibonacci).  So given a factorial function "fact" I want to
be able to write something like (type-sig fact) and get something like "Int
-> Int".

-Gregg

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to