On May 1, 10:07 am, William Stein <wst...@gmail.com> wrote:
>
> The short summary of the dozens of pages I've shown you before is:
>
> * support for building lisp is poor
This is an issue only because you insist that programs used in sage
must be of the form that
everyone needs to be able to build each component on his own machine
on every operating system.
The reluctance to take an off-the-shelf free open-source program but
built by someone else relegates you to
using a different Lisp from almost everyone else using Maxima, which
runs on plenty of machines including
natively on Windows.
> * recruiting developers to work on lisp is currently difficult
Maybe because most people are not too bright? :)
>
> Both are purely social issues, but social issues are the most important.
> I make no claims at all that "lisp is bad" in any technical sense.
OK. That's nice to know.
>
> >> > If your goal is to compete with Maple and Mathematica, you will also
> >> > have to program all of the facilities in those systems as well in
> >> > pynac.
.....
>
> That's like saying OS X has to implement every facility that Microsoft
> Windows and Linux and Solaris implement in order to "compete". I
> don't think that is true.
"THE SAGE GOAL: Create a viable completely
free open source alternative to Magma, Matlab,
Maple, and Mathematica."
I obviously view the phrase "viable ... alternative" differently.
I don't know enough about Magma, but for suitable values of "viable"
your job is done already.
Maxima is a free open source alternative to Mathematica and Maple.
So is Axiom.
So is Jacal, Mathomatic, Reduce, ....
And for Matlab, there is Octave.
I am reminded of the old joke about the dog playing chess.
http://www.ahajokes.com/ani010.html but maybe not everyone shares my
view.
>
>
>
>
....
>
> It turns out that it is actually better to have other people work on
> the problem, since in the long run that decreases the "bus factor" for
> the code. The more people who understand the code the better.
I don't understand "bus factor". But I disagree that more people
understanding the code is necessarily better.
It is an intellectual challenge to build a hierarchy of programs to do
something significant. I would hope that, after a point, programmers
will use the abstractions, interfaces, and code libraries of others
effectively without looking at or understanding the internals. For
example, I used code for computing Voronoi diagrams recently. I have
no interest in studying the particular code. I suppose I might look
at other code, sometime, but certainly not as a rule.
Perhaps this is one difference between computer science and
mathematics. For a mathematician, a proof is acceptable if it is
somehow internalized or understood "down to the ground". A theoretical
computer scientist dealing with proofs might act like a mathematician,
but a skilled programmer will strive to understand the program he/she
is writing relative to the execution environment including only the
necessary classes, libraries, compilers, debuggers, hardware,
operating systems etc.
> In
> the case you mention above of bugs in Maxima, the best strategy is to
> stop using Maxima, and switch to a library for which there are many
> more people who can work on the code, fix bugs, make improvements,
> etc.
I would hope that you are only using Maxima for tasks that you cannot
assign to those other programs that you apparently think so much more
highly of.
>
> >> I am highly impressed and *humbled* by the intelligence and
> >> capabilities of the hundreds of people who have contributed to Sage.
>
> > That's nice. How many of these hundreds of people would know where
> > to start to find a bug which might originate in (say) the python
> > garbage collector, and which might appear only in (say) Cygwin-based
> > Windows XP versions, and then only after running for 5 CPU hours,
> > sometimes?
>
> There are many such people involved in Sage.
Many? OH, I said "where to start". I should have said "followed to
completion."
>
> > My experience is that, while there are many clever and capable people,
> > they still write programs with bugs, or insert fixes which themselves
> > introduce additional bugs. Stamping out this phenomenon is difficult.
>
> Yep. Software sucks.
>
> > Especially in open-source projects, I think there are also well-
> > meaning and energetic individuals who are less clever and capable who
> > offer designs and implementations of features, or "fixes" that may be
> > best avoided. The more of these you have (hundreds?) the worse off you
> > may be.
>
> I don't think the people involved in open source are on average less
> clever or capable than people working at software companies.
I think that the average person working at an average software company
is pretty dull.
The average software company does pretty dull shallow stuff. I think
that CAS companies,
of which I suppose there are very few, are not "average" in who they
hire or what they produce.
> Also, in
> both commercial and noncommercial settings, the organization of a
> software project can help mitigate the adverse effects of people who
> try to apply themselves in areas in which they are less talented. I'm
> talking about code review, certain people being in charge, a well
> defined decision making process, choosing a very readable
> implementation language and conventions, etc.
This is certainly true.
>
> > </begin sarcasm> My bias in favor of Maxima is clearly evident in that
> > I disagree with the idea of assigning to (staff or volunteers) the
> > task of rewriting 250,000 lines of Maxima's Lisp (and Maxima-
> > language) into Python. Or even using the Maxima specification, such
> > as it is, for writing a new CAS from scratch.
> > </end sarcasm>
>
> (Maxima is about 120,000 lines, including whitespace and comments.)
Look at the contributed library of code written in Maxima language and
Lisp in the "share" directory for
another 130,000 lines. I didn't bother to run wc on the sub-
directories of share, but that would add to
the total.
The total would be higher too if you insisted that the Python garbage
collector be rewritten to be comparable
to the (best of) the Lisp garbage collectors, using generational
scavenging etc. Generally these features
are not important unless you are doing rather large memory intensive
long-running calculations.
>
> It seems like you view Sage as a "waste of effort", since it is new.
Well, if you exactly replaced Maxima by writing it over in Python,
Yes. It would be a waste of effort.
> The same argument suggests that Apple writing OS X (instead of
> sticking with or the previous OS 9) was a waste of effort. Yet that
> turned out to be a critical and important part of their longterm
> strategy.
I don't understand. Is the difference between OS9 and OS X that OS X
is functionally the same but written in Python?
>
>
>
.....
> The best we can do is to continue working to improve the situation in
> whatever little ways we can.
Different people approach this in other ways. Wolfram, for example,
claims he could improve the situation as well as make money for
himself by leaving academia, starting a company, and building
software. Like Alpha, which oddly enough appears in the subject line
of this message. :)
RJF
>
> William
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---