[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Re: [sage-devel] Re: [fricas-devel] Re: Project

From: M. Edward (Ed) Borasky
Subject: Re: [Axiom-developer] Re: [sage-devel] Re: [fricas-devel] Re: Project
Date: Sun, 20 Apr 2008 19:50:13 -0700
User-agent: Thunderbird (X11/20080213)

William Stein wrote:
I'm unconvinced that literate programming is a silver bullet that
solves the problem of making code easier to understand later.   I do
advocate documenting and writing excellent test suites for code.
All code that goes into Sage has every function tested, documented,
and it is refereed by a different person (who may as well be somebody
reading the code 15 years later...).  I think peer review is a valuable
step in the right direction toward solving the problem you are addressing.
That's what's done in mathematics to increase the chances that
somebody can understand a math paper 15 years after it is written.

Well, literate programming may not be a silver bullet, but its "dual", reproducible research, is a concept I as a practitioner find *very* attractive. The base entity in reproducible research, as espoused by a number of people in the R community, is something called a "compendium". A compendium is a software package that contains all the code and data necessary to reproduce the research. No more generating pictures with R, exporting them to PDFs or Postscript, pasting them into a LaTeX document, only to discover that you have a bug, and having to go through the whole edit-test-cut-paste cycle all over again.

A lot of this magic right now is really only easy with R and the LaTeX editor LyX. But I can sit at my workstation and edit a paper in LyX, put the code in it to generate figures, put more code in it that's visible if I want to document an algorithm. At any time, I can push a button and get a PDF of the document, at the same time executing any other code that doesn't appear in the document. And with "RUnit", I can easily add unit tests.

Essentially all you need to do this (on Linux -- it doesn't work on Windows yet and I'm not sure about Macs or Solaris) is to install R and LyX and their dependencies. There's a contributed package that adds a bit of "glue logic" to the LyX configuration, but once you do that, the workflow is quite author-friendly.

I guess that's true.  At some point in the future nobody in particular
will be available.

Except Woody Allen ... as you probably know, he said, "I don't plan to achieve immortality through my works. I plan to achieve immortality by not dying." :)

 Lisp has already solved a lot of the problems Python has yet to
 face. But since that discussion is a prelude to a language war
 I'll end it here.

That's where you're a *lot* more fun to discuss mathematical
software with that Richard Fateman!  Thanks for taking the
time to write.

Well, there really are only two "perfect" languages, Lisp/Scheme and Forth. ;)

They are going to die because all
 companies die and they are going to disappear because dying
 companies take their code with them (witness Symbolics and

Well, Maxima isn't all that far removed from Macsyma and Vaxima.

All that matters to me regarding the above comments are
the *next* 30 years, since after that I'll likely be "done".
And it's possible that none of Maple/Mathematica/Matlab
will die in the next 30 years.

I'd be willing to bet Mathematica survives. I won't comment on the other two. Lisp will survive too, no matter how hard Paul Graham tries to "improve" it. :)

Not for me.  I just want to "finish" Sage as soon as possible,
so I can do research and teaching using it.   From this point
of view, Sage is surprisingly close to where I want.
It's I think at most 1 or 2 years away.  One important thing that we aren't
yet close on is very good native Microsoft Windows support;
and I don't mean crippled Cygwin support or virtual machines.

You aren't the only open source project that has poor Windows support. But there are some happy exceptions. I personally prefer the Windows UI for R to the "native" Linux one.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]