more "SAGE in the News" ---------- Forwarded message ---------- From: Richard Fateman <[EMAIL PROTECTED]> Date: May 12, 2007 10:20 AM Subject: Re: [Maxima] Computer algebra system? / SAGE and Pipes To: [EMAIL PROTECTED]
The comment that SAGE's mechanisms are good (or adequate) for linking various systems is either naïve, or assumes that users of SAGE use SAGE only for simple things, or the systems SAGE is linking together are naïve. ( I think the last is false since it includes Maxima). Pipes as popularized by UNIX are suitable for exchanging relatively low-capacity serial messages in an environment where the options on each side of the communication are fully characterized. I have not studied SAGE, but here are some issues that I think would come up. 1. Maxima sometimes answers a question with another question, not an answer. (e.g. Is s positive, negative, or zero). This is usually unexpected. 2. Maxima sometimes runs out of memory, or goes into a loop. Interrupting it from the keyboard may or may not be possible (depends on the Lisp, probably). 3. Maxima sometimes produces objects that cannot be serialized without substantial (exponential!) growth in size, unless it is done in some sophisticated fashion. Exchanging such objects by simply pipes of Lisp read/write of characters is not sophisticated enough. 4. Serializable objects (say, from Maxima) in the command system of SAGE must be understood in a context that is suitable for interacting with objects from another hosted system (say, MAGMA). Does SAGE understand Maxima's Poisson Series? Writing one to a file and then reading it in via a command sent in a pipe could be extraordinarily expensive. Saving everything that one can conceive of -- say a restartable core image, via a pipe would be, I think, a challenge. Mapping all error messages in Maxima to a single error may be uncomfortable. A variety of evaluation and simplification strategies can be present and it may not be clear who governs. E.g. in SAGE, evaluate(simplify( maxima(expression1)+maple(expression2)) ? What happens? Introducing yet another language (Python, PERL, ....) to the mix makes the semantics potentially more difficult. Lisp, for example, has an entirely smooth interface between small and large integers. Does Python? 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. Some of the current Maxima project coding effort is, I suspect, similarly hobbled by pipes. Perhaps someone else might comment on this! My impression is that the plotting has the defect, that (say) zooming in and computing more points in a plot may not be possible in the usually Maxima plot because the data produced by the Maxima plotting program is a fixed package that is handed (via a pipe or something similar) to a stand-alone plotting program that does not know that it can call back for more information, as it should. (Such features are available in the commercial Macsyma, and have been for many years. I think they were recently introduced to Mathematica). It is much easier to write a system in which everything works well as long as all the participant programs cooperate nicely with the human user. It is much harder to write a system that works when the participant programs are stretched to (or beyond) the breaking point and the human is trying to solve problems that were unanticipated by the designers. I don't know where in the spectrum of systems SAGE fits. I have been impressed and somewhat surprised by the apparent success of SAGE, but it could also be that many of the participating programs are more cooperative than Maxima, and were designed ab initio to play nicely as batch programs. RJF > _______________________________________________ Maxima mailing list [EMAIL PROTECTED] http://www.math.utexas.edu/mailman/listinfo/maxima --~--~---------~--~----~------------~-------~--~----~ 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://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---