On Apr 20, 5:23 pm, "David Roe" <[EMAIL PROTECTED]> wrote:
> On Sun, Apr 20, 2008 at 5:13 PM, TimDaly <[EMAIL PROTECTED]> wrote:
>
> > > I'm surprised by how convinced you are that using a specific
> > > technology/language -- literate programming -- can be a silver
> > > bullet to solve such a difficult problem. I think peer review,
> > > and many many other things, are steps in the right direction,
> > > but *not* solutions to the problem. I think it's just a difficult
> > > problem, with no easy solutions.
>
> > Actually, I don't think that literate programming is a silver bullet.
> > But I do think that it exposes the real work that is needed to make
> > something like Sage live (see my power-of-3 screed a while back).
>
> > If Gary is going to figure out "the way up the mountain face"
> > wouldn't it make sense to write it down so others can read it?
> > Or is it better to let the next person figure it out (badly) from
> > reading the code and inferring the path?
>
> Yes, it would be great if Gary could write that down, write a book
> about it and let us know how it went. But Gary has only finite time,
> and lots of things he wants to do with it. He has to choose what the
> best use of his time is. And there's a lot of work that goes into
> making a book that has little to do with a direct explanation of what
> this line/section of code does.
>
> There's a distinction between the style of "literate programming" and
> writing documentation within your code so that others can understand
> what it's doing. I understand the argument that you want the writing
> to be "explanation-centric" rather than "code-centric." But writing
> documentation in other ways can serve to explain what you're doing to
> future readers as well. For me, I'm happy when I write good comments:
> I don't want to take the time to write a book surrounding my code.
> David
I can agree with the "finite time" issue. In fact, I'm a bit annoyed
at the "finite time" issue because I just spent the last 2 weeks
coding in python using wxPython as a front end. The net seems to
think that wxPython is "well documented".... because it appears that
python has some sort of Doxygen/JavaDoc tool and all anyone ever
needs to know is the names of the classes and methods. There is
hardly a human-readable line of text anywhere. When all else fails
(which happened 3 times in fairly fundamental bugs) we could always
"read the source code". And we all know that SWIG generates very
understandable code. But that's ok because wxPython is yet-another
of the 100 windowing systems and nobody really cares if the answers
are correct.... I was just hoping that computational mathematicians
were more motivated, since it matters.
Knuth pointed out that explaining his code forced him to think
about it in ways that vastly improved the correctness. So much so
that he felt a near-religious conversion to literate programming.
Given that TeX has so few errors after so many millions of uses
(and he PAYS for errors found), I tend to think it worthwhile.
And I do find that explaining code has the same effect for me.
Prior to using LP I have a measured error rate of 3 mistakes
per hundred operations. I believe that literate programming will
reduce that number (but have not yet done enough for meaningful
measurements). I have had the experience of catching bug while
writing the explanation so I'm hopeful.
I recommend reading a short book called "Leisure, The Basis of
Culture" by Josef Pieper. (1963 Random House).
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---