On May 2, 6:15 am, Jonathan <gu...@uwosh.edu> wrote:
.... snip
[How programs written by application specialists in your area and in
others have been more useful than programs written by others not
familiar with the application area]

Sure, this is true.  It is certainly true of computer algebra systems
where (for example) relative large amounts of effort are devoted to
parts of systems which are pretty much doomed to be of almost no use
except demonstrations. Simple example: almost no one other than
freshman calculus students are interested in doing symbolic indefinite
integrals, and even they are not interested in the decision procedure
for integration in finite terms in terms of elementary functions. The
applications are for definite integrals, which have for many many
years been computed adequately (in most cases) by numeric routines.
These numeric routines have been around in CAS, but distinctly as
second-class citizens in most of them, for most of the time.  The PhD
dissertations were on topics of interest to people studying "decision
problems".
Not to say they were "wrong", just off the mark for applications.


> As an experimental scientists, I assure you that the more observers
> the more likely issues (or bugs) will be recognized.
...
If the choice is between discovering new algorithms or being the
1000th person to re-read an old one, I think the more productive
person would try to strike out in new territory.
If you are looking for a PhD, you certainly look for novelty.

....

>
> This comes back to an issue of documentation.  Most commercial
> computer programs have poor to non-existent documentation on what they
> actually do (IGOR, see above, is an exception).

I think that Mathematica has extensive documentation, once you
understand that you won't ordinarily see the inside of the code.
Whether "extensive" means "easy to use" or not is a matter of opinion.

> As a scientist, I
> need to be able to check exactly what the code I use does.  This means
> that I have very limited choices on software I can use for my work.
> Open source solves this problem by leaving the code visible, so it can
> be checked if I need to.

I think this is doubtful.  Maxima is open source, and yet William
Stein not only refuses to look at it, he seems throw his hands up in
exasperation if it doesn't work.  He seems to think that it would be
easy to read if it were written in Python instead of Lisp, but this is
just wishful thinking.  In years past, people would write "flow
charts" or use other mechanisms etc. It didn't work either.

...
> I echo, William:  Software sucks.  Thus we must be able to continually
> improve it.

no, I think that software can, sometimes, just be correct. Parts of
Maxima were correct in 1968, and have not been changed since. These
are, in some senses,  the parts that are continually reimplemented by
people writing new computer algebra systems.  The parts that are
easily characterized formally.  Polynomial arithmetic for example.

 Not to say that these parts are entirely uninteresting -- there are
current research activities dealing with optimizing non-trivial
algorithms for cases where polynomials have astronomically many terms,
in which case the old methods can sometimes be improved upon.


> In most cases open source has worked well for this.  Open
> source is essentially a fast version of scientific peer-review/
> publication and the way our arts and literature build on the work of
> previous people.

I have not counted recently, but there were, I think, something like
12,000 open-source text editors for MS-DOS.
I think that the evidence is quite substantial that the open source
movement, statistically, does not consist of people building on the
work of previous people, but deciding to duplicate, perhaps with minor
variation, the work of previous people, or explicitly making forks of
projects.  When William Stein talks about social issues, this is a
recognition of reality.

There are some notable exceptions you might think, e.g. Linux comes to
mind.  But do you know how many different free versions of Un*x there
really are now, or have been in the past, and how much intellectual
effort has been squandered  (or perhaps devoted to following the pure
rather than the polluted track?)

.......
>
>
>
> > > It seems like you view Sage as a "waste of effort", since it is new.
>
> > (RJF)  Well, if you exactly replaced  Maxima by writing it over in Python,
> > Yes. It would be a waste of effort.
>
> This rewrite definitely has potential to be wasted effort.  William
> has provided some reasons why it might not be.

I guess I do not recall a single reason I agree with. In fact the only
that come to mind...

(a) writing it in python would eliminate lisp, a language that
students and probably faculty don't know.
(b) writing it in python would make it faster, (highly unlikely, by
the way).
(c) writing it in python would make the (apparently inefficient)
interface between python and lisp disappear.
 (a case of shooting the patient to cure a hangnail).
(d) writing it in python would eliminate bugs or make them easier to
find.  (highly unlikely, again.)

perhaps I've missed something?

By the way, someone rewriting Maxima would be well advised to learn
Lisp anyway, in order to read the code.

 There are quite a few people now improving Maxima without rewriting
it in python.  There is material in the open literature that suggests
a total redesign might cure some problems. I've written some of it.
So far as I know, the Sage people are not aware of these issues.  They
might even be in the parts that are not needed by current users and so
would be left out, much to the detriment of future directions of
growth.

A reason for (doing something like rewriting Maxima in python) might
be what you suggest below, sort of.

(e) A complete redesign of a computer algebra system with facilities
like those in Maxima, from top to bottom is long overdue. We propose
to do this.  We want to use Python because, uh, because we think uh,
high school students know Python?  And Lisp is bad for computer
algebra. See how hard it was to use in Maxima, Reduce, Jacal,
Axiom, ...
[Maple and Mathematica are, I think, written in C extended in some
ways].

(I am not actually opposed to writing in a language other than Lisp,
just that if you use, say, C, you spend considerable effort
essentially building 1/3 of a Lisp system before you get to the
computer algebra parts.  If Python's garbage collector is adequate,
and access to bignumber arithmetic is good, that will save some of
that effort. And if sympy is a solid basis, that would help.  But I
have not looked seriously at sympy.)



>  Is there a complete
> list of reasons somewhere?  Sometimes migrating existing code to a new
> language or platform is required to improve it.  I'm just not
> convinced, but don't know the details.
>
> Jonathan
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to