Subject: Computer algebra system? / SAGE and Pipes
From: C Y
Date: Mon, 14 May 2007 20:31:03 -0400
Richard Fateman wrote:
> Writing totally in Lisp (though perhaps not generic CL in everyone's
> implementation) has an interesting proof-of-concept: the Lisp machines. In
> these designs the entire or nearly entire system from operating system to
> user-interface (including compilers for Fortran, paging systems etc. were
> all written in Lisp, as well as Macsyma...) This residential system provided
> a far more uniform environment than I think is possible in the SAGE design.
> There were Lisp machines built by Symbolics, LMI (Texas Instruments), Xerox.
> Some of these are still running, apparently.
Indeed. I think the idea of a completely Lisp system is an extremely
interesting one, although likely impractical as a replacement for
today's general purpose machines given the amount of code written for
existing systems. Even limited to the "virtual machine" of a Lisp
environment there are advantages - anyone wanting to move a program
written in Lisp to another machine need only make sure that the Lisp
environment is working. (Which is often non-trivial, of course.) Java
exploits precisely this advantage to be a cross platform programming
environment (perhaps not always perfectly...) and in a way it's too bad
Lisp didn't get there first with robust graphical programming libraries.
(Of course, even that might not have helped - for some reason Lisp
seems very foreign to many programmers...)
For (very) long term survivability I like the idea of only using a
single language, since every language reliance other than the core
language ups the list of working compilers needed to build the system.
Since the behavior of the compiler is important to the correct
functioning of the system the fewer compilers needed the simpler the
system is to verify. This must be balanced with the convenience of the
programmer, but Lisp is a good language in which to implement languages
and that helps to shift the hard parts back onto the Lisp compiler.
SAGE is an excellent approach for its goal of getting a powerful system
up and running that takes advantage of existing work available in
various areas. In my opinion it is not the approach to take when
designing a system intended to hold up for decades or centuries, but for
what it intends to be it is doing very well. Since most practical
applications of mathematics are not concerned with long term tool
viability, the SAGE approach makes sense as a focal point of interest
for most users.
I think there is a need both for open source Mathematica type systems
and for more long-term thinking projects. I am very glad to see SAGE
getting support from people in a position to put serious work on it, and
I hope it is a sign of things to come.
Cheers,
CY