Open Source 'Sage' Takes Aim at High End Math Software
coondoggie writes "A new open source mathematics program is looking to push aside commercial software commonly used in mathematics education, in large government laboratories and in math-intensive research. The program's backers say the software, called Sage, can do anything from mapping a 12-dimensional object to calculating rainfall patterns under global warming."
Plus, its creators' heads can probably fit through normal-sized doorways.
As an international evil mastermind I have numerous plans which require advanced mathematical calculations and simulations to be performed (wiping out the human race, transmogrifying all kittens into war machines, etc - the usual kind of stuff).
I was wondering if the license of this software will allow me to achieve my goals without giving up my principles and secrets?
liqbase
yeah, but can it do pretty graphs? Everyone knows that's what people are looking for: pretty 3D graphs.
Watch the Teaser Trailer for "The Lightning Thief" Her
The site is already very slow, so posting the actual links.
http://www.sagemath.org
http://sage.math.washington.edu/sage
http://modular.fas.harvard.edu/sage
http://www.opensourcemath.org/sage/
http://www.cecm.sfu.ca/sage
http://sage.apcocoa.org
http://echidna.maths.usyd.edu.au/sage
http://sage.scipy.org/sage
Kindness is the language which the deaf can hear and the blind can see. - Mark Twain
I'd say yes.
.... calculate the slashdot effect.
This is just like GIMP trying to take on Photoshop. When you're a kid, Adobe prices seem so off-putting that you can't see why people wouldn't flock to the free alternative. When you're doing a real job involving print work, you simply don't think twice about paying Adobe for the required feature set, intuitive UI and better workflow.
So, kids will carry on pirating Adobe or paying a much reduced student price, then paying for it when they go into the real world; and the same goes for Maple, Matlab, Mathematica, or whatever.
Oh, yeah, the whole "open source" thing. Excepting core functionality, some of Mathematica and the majority of Maple is provided in source form. You can whine about needing peer review of implementation at all levels, but how many of you have inspected your CPU's microcode or circuit diagrams? At some point the line is drawn, and you combine a trust in the reputation of your vendor with the fact that usually you're prototyping and modelling. Things will be re-implemented and tested in many ways before your "final product" is out of the door (whether that's theoretical physics or an aeroplane).
And E. Lizardo and T. Hikita, et al, made some strides toward the eighth... and even had some independent confirmation by B. Banzai years later.
Sam! If you will let me be,
I will try them.
You will see.
Sage provides much more functionality than existing FLOSS projects. One of the ways it does this is by making use of those project. For example, Sage comes with Maxima and uses it as an engine to do symbolic calculus type computations. Axiom can be used from within Sage if it is installed as well. Sage also includes GAP, which is the open-source package for doing abstract algebra computations. One of the main reasons for starting a new project was to take advantage of existing projects and tie them together. Also, most of the existing software focused primarily . The lead developer is a number theorist and needed a fast, extensible platform to carry out his research. None of the existing FLOSS CASs provided this.
Speaking of R, we're hard at work getting ready to include R within Sage. --Mike ( a Sage developer )
But I use Mathematica because it is full of functionality, fairly reliable, and has a very elegant programming paradigm. Also, as a student, it'll cost me $100-150, depending on where I live, for the lifetime of my studentship, assuming no site license; the kinds of business that run this software commercially really don't care too much about a $2500 license fee.
Free software isn't about price -- it is about freedom. One of the research groups at my university cannot use Mathematica since a few weeks because the license expired, and neither renewing the license nor contacting tech support has so far brought a solution.
Another no-go is that Mathematica 6 notebooks are not compatible with Mathematica 5 notebooks. Also, the unwillingness of Wolfram to timely fix bugs leading to wrong results is unacceptable. I could go on ranting like this, but recently I have completely switched to Maxima and have not regretted it.
OS Reviews: Free and Open Source Software
I am not personally involved with SAGE, but I know a little about it. Rather than being a totally new system in all respects (although there is certainly new code created for it) SAGE attempts to make use of the plethora of existing open source systems available already and provide a unified interaction environment for them. As it says above, SAGE takes aim at the functionality offered by commercial systems.
This is undeniably a practical approach that will benefit many research teams, and I am rooting for its success. My main concern with it is that by using a wide array of libraries/programs to cover broad functionality, it will become difficult to integrate results from one system into the computations of another. Different systems may make different default assumptions (sometimes very subtle ones) that other systems will not be aware of. Efforts like OPENMATH (http://www.openmath.org) that have attempted to define a protocol for exchange of mathematical information between systems have run into this before.
Unfortunately, any proper solution to that problem is likely to be even more work than re-implementing algorithms inside a single environment. A framework for a CAS that could handle such broad scope is a problem (Axiom probably comes the closest right now) so for problems that don't hit the more difficult situations SAGE will be very useful indeed, but it is something to bear in mind.
In the very long term, we need to integrate formal proof software concepts (ISABELLE, ACL2, COQ, etc.) with computer algebra systems in order to be able to trace any calculation back to its axiomatic roots at need - or, put another way, have the system be able to provide upon request correctness proofs of a result. There is a fair bit of literature on that and related topics, but it cannot be denied that the problem is an awesome one. In the meantime, SAGE is a very promising short term (practical) solution to real world problems.
SAGE's developers are also supporters of the idea of open source software in general, which is probably the most important aspect of the whole discussion: http://www.ams.org/notices/200710/tx071001279p.pdf
It may be argued that computers are not really an appropriate tool when truly "correct" mathematics must be relied upon. My response to that is that as problems of interest become ever more complex, limitations both of the human mind and the human life span will ultimately limit the problems we can solve unaided. The task for us now is to create a system we CAN trust to solve problems correctly, because someday we will have to trust it to solve problems we cannot handle. Some researchers would probably have a philosophical objection to that and define any problem human beings cannot solve and verify themselves as a problem where we will always be uncertain if it is really solved. The philosophical questions involved are fascinating for people who like that sort of thing. My take on it is such a system would be useful and is worth looking into.
SAGE is more pragmatic in its orientation, but that means for many (most?) people it is a project to watch and probably a product to use. Here's hoping they can build increased momentum!
"I object to doing things that computers can do." -- Olin Shivers, lispers.org
Took 5 seconds with google, mostly because I type slow and am on dialup
Nasa open source
I work in Europe, as a researcher, and two and three years ago, the Mathworks (the company behind Matlab) decided we weren't eligible to research/education prices anymore. They did the same with a bunch of other institutes (in Europe, I don't know about the US). We operate an experimental reactor, whose control is largely based on Matlab programs. Some of these were developed a long time and people left, or retired. There's a lot to be said about the way this was handled by our management, but that's the way it is. So, we had to admit we were screwed, having to pay the price. We met with the Mathworks representatives, and I have to say all I saw a bunch of arrogant jerks.
Anyway, since then, we've renewed our licences every year, and we've been looking for an alternative. We even tried to migrate the whole lab to Scilab but that didn't work out (mostly because of the limited capabilities of Scilab in scientific plotting and GUIs). Some of us use Python + Matplotlib (I'm a big fan), some (often the same people) use Octave. Although we've converted some individuals, we weren't able to find a software which could be used by everyone in the lab as a substitute to Matlab. This is frustrating, as the vast majority of people here use only a fraction of the capabilities of Matlab.
I for one, would be really happy if we had something to replace Matlab, be it Sage or whatever else...
You suggest optimizing for one quality of user interfaces- "discoverability". But that's certainly not the only user interface design objective. Asking about the user experience after the interface has been learned is quite appropriate, because that's the circumstance that the user will spend the vast majority of their time in, assuming they've stuck around past the learning phase.
The question of whether someone will stick around long enough to learn the software is less one of usability than it is one of marketability. I make no statement about the relative importance of usability and marketability.
Well, in addition to including existing software, Sage contains about 200,000 lines of new code implementing functionality not found in the other packages. Many packages have C library interfaces which provides something much different that you'd get with a BASH shell; for example, GMP, GSL, and MPFR come to mind. Even the pexpect interfaces which use a psuedo-tty do more than you can do with a BASH shell. For example, look at the following Sage session which mixes Sage, Maxima (behind the scenes), and Maple:
sage: f = x^2 + x
sage: df = diff(f, x); df
2*x + 1
sage: a = maple(df).integrate(x); a
x^2+x
sage: a+2
x^2+x+2
--Mike
Here is how you can solve a Ax=b equation in Sage:
sage: A = random_matrix(ZZ, 3)
sage: A
[ 1 3 -1]
[-2 2 4]
[ 2 -1 -1]
sage: b = vector([3,2,1])
sage: b
(3, 2, 1)
sage: x = A \ b
sage: x
(14/11, 9/11, 8/11)
sage: A*x
(3, 2, 1)
--Mike