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."
Downloadable for Linux, Mac, and the other one:
http://sagemath.org/
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
SAGE has been around for a long time. Will Stein's homepage seems to be down -- possibly slashdotted -- so I can't tell the exact date, but it's certainly been in existence at least since 2004.
I'd say yes.
Maxima, Axiom, and Yacas were all developed specifically as computer algebra systems, with everything best done within their framework, and based on their own languages.
Sage, on the other hand, focuses on gluing together other packages and uses Python. That means that Sage gets a lot of functionality out of the box that you don't easily get in those other packages. For example, Sage uses Twisted for its web service, Pyrex for native code compilation, Numpy for numerical computations, Vtk for 3D visualization, etc.
Also, Sage can invoke packages like Maxima, Axiom, and Yacas and glue them together with each other and other packages.
It includes maxima and a lot of other packages. It seems to me that Sage is an attempt to glue together the various existing free math packages using Python. I'm not sure what I think of it, it makes it somewhat confusing to get started with because it does so many different things.
It's a well-deserved shot a Stephen Wolfram.
(I'm not the same AC who posted the original.)
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.
There's a few left. Mainly the software for specialist things. CAD, graphics, audio, video.
Real video editing software, probably. Real finance software (corporate, not quicken!), real HR software - stuff that has to follow specific regulations on a schedule. And there really isn't a replacement for autocad that a mechanical or civil engineer, or an architect is going to run out and install. Medical applications would be difficult for some of the same reasons as the finance software. And real enterprise email/calendaring and the archiving/retention software to go with it. There aren't any open-source email packages that you could actually use to replace Exchange/GroupWise /Notes in a corporate, healthcare, government and even education. There are pieces, but nothing it would be worth your job to try to sell your organization on.
Speaking of R, we're hard at work getting ready to include R within Sage. --Mike ( a Sage developer )
Since you specifically mentioned Mathematica, I'd like to address some reasons why Sage was created when something like Mathematica exists. While good for some types of problems (calculus, solving equations, etc.), Mathematica is not so good at a number of other ones (linear algebra, abstract algebra, number theory). Many of these are important to the Sage developers who need this type of functionality. Mathematica's programming language is a whole lot less flexible than a "real" programming language like Python. Plus, with Mathematica, you aren't allowed to change the internals -- you're stuck with what you get.
These were all reasons that led William Stein to start up Sage.
--Mike ( a Sage developer )
It doesn't have to do with the boss. Certain industries require SAS. No, there's no way to hide the fact you didn't use SAS. You can do the work at first with another product, but you need to submit SAS code that allows others to reproduce results.
What a fool believes, he sees, no wise man has the power to reason away.
I'm listening to Will Stein's talk about Sage right now, and he mentions the licensing fees as one of the two main problems with commercial mathematics software. The other is that users should be able to examine and change the software as desired, as you mention.
What a fool believes, he sees, no wise man has the power to reason away.
Luckily the vast majority of the companies, even the vast majority of the employment, falls in the small and medium enterprise segment. The less-than-ten-people businesses. There things work differently. And for those companies OSS is commonly good enough, and many fancy features are simply not used because they are too cumbersome. Like calendaring, I don't even use it for my personal work. Too inconvenient as it is tied to my computer.
I agree, and yes: I use this software. Albeit I use Blender badly..the rest I use extensively.
GIMP I can use like the back of my hand, replicating most work done in Photoshop..but every time I've tried to recommend it to a friend or co-worker: it ends in "this is too hard, I can't find anything". Alot of this could be blamed on new GIMP-users being so accustomed to Photoshop, but there is still a fair portion of blame on bad UI-design. I think I heard some time ago about a fork of GIMP specifically to create a more Photoshop-ish UI, but the name/link of it escapes me...anyone?
Inkscape is great, I have only 1 complaint, and that is it's inability to open native Adobe Illustrator file formats. Other than that, Inkscape is a truly top-notch vector graphics package.
Trackball users will be first against the wall.
If you want a minus they are going to have to change the name: using a name already used by a very well known piece of software is a bad idea. They could have googled for "sage" before choosing the name.
It being a different type of app is no help: remember Pheonix/Firebird?
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
When I said "include R in Sage", I meant to include R as part of the Sage distribution (so that it gets installed when Sage is installed) as well as provide interfaces to R from Sage. One such interface is RPy ( http://rpy.sourceforge.net/ ) which is a library level interface that allows R to be used from Python. Another interface will communicate with R via a pseudo-tty. Here is how such a session will look:
sage: a = r([1,2,3,4])
sage: a = r([1,2,3,4]); a
1 2 3 4
sage: a.length()
4
sage: a.dim = (2,2)
sage: a
[,1] [,2]
[1,] 1 3
[2,] 2 4
sage: r.t_test(range(100))
One Sample t-test
data: sage106
t = 17.0622, df = 99, p-value alternative hypothesis: true mean is not equal to 0
95 percent confidence interval:
43.74349 55.25651
sample estimates:
mean of x
49.5
--Mike
With all due respect, I've done CMYK separation in GIMP. No, it doesn't come with the default install, but it is too obvious an extension not to float around out there as a free download.
As far as I recall, all I did was google "gimp cmyk" or some such. Downloaded some gizmo that had to be placed into some directory. Had to download some profiles from Adobe or something. And then the rest "just worked". Total investment maybe 30 minutes of time.
Now when was the last time you tried to do something that wasn't built-in with a commercial piece of software and the fix was as easy as that?
As far as I can tell, that's where the value of F/OSS really lies. It's not the "price" (GIMP is only 'free' if your time is worthless) but the enormous flexibility that arises from letting anybody who cares modify (i.e. improve upon) the tool you're using.
We're all born with nothing.
If you die in debt, you're ahead.
Yes, in the UK at least their accounting is used by many small & medium-sized businesses.
That said, I think they should be left alone regarding the name. One is unlikely to accidentally purchase several hundred pounds worth of accounting software when you actually meant to download a free mathematical application. Or vice versa. Hence, the trademarks shouldn't be infringed. That said, no doubt it will take many lawyers and many $$ to establish it.
[FUCK BETA]
> Since R has a great user base and is so easy to add extensions to,
> wouldn't it make more sense to put sage inside of R?
1. Sage (which is nearly 5 million lines of code) is already much bigger than R.
2. One of the main goals of Sage is to be a cross-platform distribution of math software, and including R in Sage fits well with this goal. (Morever the core functionality of R compiles from source in 5 minutes.)
3. Sage uses the Python language, which has advantages over special-purpose math languages.
4. We would love for there to be an interface from R to Sage also.
By the way, R frickin' rocks, and was one of the main inspirations for Sage!
-- William (a Sage Developer)
We've discussed this at length. At the present, there is no need to change the name -- there are actually quite a number of projects named Sage.
... and there's actually another SAGE project at the University of Washington (which I can't find a link for) which does something entirely different.
Accounting software
Browser plugin
If any of these present a real problem, we've discussed the name Sage Math -- but there's no reason to change yet.
If we start buying CDs then the terrorists have already won.
Microsoft Excel comes to mind.
MS settled the trademark infringement lawsuit by agreeing to always refer to it as "Microsoft Excel".
Eventually, MS just bought the original trademark owner, thus ending the issue completely.
What is the difference between a small revolutionary change and a large evolutionary change?
Since the Sage servers are being hit pretty hard, here are torrents for the files.
http://www.mwhansen.org/sage-2.8.13-use_this_on_sage_dot_math-x86_64-Linux.tar.gz.torrent
http://www.mwhansen.org/sage-2.8.13-x86_64-Linux-debian.tar.gz.torrent
http://www.mwhansen.org/sage-2.8.15-debian32-i686-Linux.tar.gz.torrent
http://www.mwhansen.org/sage-2.8.15-debian64-x86_64-Linux.tar.gz.torrent
http://www.mwhansen.org/sage-2.8.15-osx10.4-intel-i386-Darwin.tar.gz.torrent
http://www.mwhansen.org/sage-2.8.15-osx10.4-ppc-PowerMacintosh-Darwin.tar.gz.torrent
http://www.mwhansen.org/sage-2.8.15-osx10.5-intel-i386-Darwin.tar.gz.torrent
http://www.mwhansen.org/sage-2.8.15-rhel-32bit-i686-Linux.tar.gz.torrent
http://www.mwhansen.org/sage-2.8.15.tar.torrent
http://www.mwhansen.org/sage-2.8.15-ubuntu32bit-i686-Linux.tar.gz.torrent
--Mike
I actually really like functional programming for a lot of things ;-] But, in terms of interfacing with third party software, working with debuggers, etc. I don't think that Mathematica comes close to Python. I guess that is not totally reflective of the language itself, but instead of the "software ecosystem" that surrounds it.
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
> I find the packaging of SAGE to be rather arrogant and self-important.
.deb, .rpm's etc., is something that we've always planned
The current packaging of Sage was the most technically efficient way to
accomplish the goals of the Sage project quickly: (1) create a distribution
of math software that builds from scratch on all modern OS X and Linux
installs, (2) create a new library of functionality that ties it all
together and more, and (3) create interfaces to most existing mathematical
software. Creating
to do: see http://wiki.sagemath.org/DebianSAGE
> At first glance it looks like SAGE is millions of lines of source code.
> On closer inspection I find that SAGE is really just several dozen open
> source mathematics packages bundled together in a tarball with the SAGE
> name slapped on it.
Sage is not "just that". It is nearly 70 packages, which took many people
a huge amount of time to get to all build together correctly -- and in many
cases (e.g., linbox, genus2reduction, mpfi, pyrex/cython, Singular, etc.)
Sage developers fixed significant bugs in those packages or made major
contributions; in some cases taking them from being nearly-orphaned research
only systems to serious projects. And Sage is also a huge amount
of new code.
> On even closer inspection I find that there is actually
> SAGE code that appears very worthwhile, additional functionality is provided,
> a consistent interface, etc. However, I'm not going to use it seriously
> because I can't 'apt-get install sage-math'.
That will come later when people who want to apt-get Sage actually put in
the work to make it happen. This is of course happening now and I strongly
support it. I just don't have the time to do it myself.
> SAGE wants me to download
> and install more than 200MB of stuff that isn't going to be handled by
> my OS package management, and it duplicates many of the components I
> already have installed that are handled by my OS package management.
In fact, because SAGE builds completely self contained it will not
conflict with or cause any headaches with anything you have installed.
> Don't make me use your own forked and patched versions of Pari or GAP.
I am certainly not making you use anything.
> I can 'apt-get install pari-gp gap' today(and I already have). I'm
> not going to install your alternative versions and deal with any
> inconsistancies between them. I'm not throwing out the ease of use that
> OS level package management provides to get SAGE. I know many other
> people who aren't going to do it either.
Look, there is nothing whatever about the Sage project or me that is
against mainstream packaging. It's just that Sage is a volunteer project
for which most developers are naturally mathematicians. We simply don't
have the time to maintain Debianizing dozens of packages. Arrogance has
nothing to do with it. I very much hope http://wiki.sagemath.org/DebianSAGE
takes off.
-- William (a Sage developer)