Slashdot Mirror


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."

28 of 360 comments (clear)

  1. Added benefit by Anonymous Coward · · Score: 5, Funny

    Plus, its creators' heads can probably fit through normal-sized doorways.

    1. Re:Added benefit by Anonymous Coward · · Score: 5, Informative

      It's a well-deserved shot a Stephen Wolfram.

      (I'm not the same AC who posted the original.)

    2. Re:Added benefit by Anonymous Coward · · Score: 5, Funny

      My understanding is that his head is that large to contain his fantastically large brain. Apparently he is a genius.

    3. Re:Added benefit by not-admin · · Score: 5, Funny

      Hey Mr. Wolfram! When did you start reading slashdot?

    4. Re:Added benefit by Garridan · · Score: 5, Informative

      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.

      Accounting software
      Browser plugin
      ... 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.

      If any of these present a real problem, we've discussed the name Sage Math -- but there's no reason to change yet.

    5. Re:Added benefit by William+Stein · · Score: 5, Informative

      > I find the packaging of SAGE to be rather arrogant and self-important.

      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 .deb, .rpm's etc., is something that we've always planned
      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)

  2. Questions from evil mastermind by LiquidCoooled · · Score: 5, Funny

    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 :: faster than paper
    1. Re:Questions from evil mastermind by WWWWolf · · Score: 5, Funny

      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?

      Regrettably in this release, SAGE is somewhat limited and would not meet your goals. Due to some unforeseen limitations, it can only run in Baby Mulching Machines at the moment. However, I believe the next release has worked out these little kinks.

    2. Re:Questions from evil mastermind by Sponge+Bath · · Score: 4, Funny

      ...Baby Mulching Machines

      Mulching is one of the simplest and most beneficial things you can do for your home garden. As mulches slowly decompose, they provide organic matter which helps keep the soil loose. This improves root growth, increases the infiltration of water, and also improves the water-holding capacity of the soil.

      As any parent can tell you, babies are an excellent source of organic material.

  3. Pretty Graphs by gambit3 · · Score: 4, Funny

    yeah, but can it do pretty graphs? Everyone knows that's what people are looking for: pretty 3D graphs.

  4. Continuum by drooling-dog · · Score: 4, Funny

    do anything from mapping a 12-dimensional object to calculating rainfall patterns under global warming So those two things are at the extrema of a continuum of what it can do, and I have to figure out whether my particular application also lies on that continuum? Or am I taking this statement too literally?
  5. Mirror links by LinuxGeek · · Score: 5, Informative
    --

    Kindness is the language which the deaf can hear and the blind can see. - Mark Twain
  6. Pretty enough? by Per+Abrahamsen · · Score: 5, Informative

    I'd say yes.

  7. What SAGE cannot do is.... by 3seas · · Score: 4, Funny

    .... calculate the slashdot effect.

  8. FLOSS misses the point again by Anonymous Coward · · Score: 5, Insightful

    mapping a 12-dimensional object to calculating rainfall patterns under global warming I can do that in Perl, C, assembler, and any other Turing complete language. 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.

    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).
    1. Re:FLOSS misses the point again by mhansen444 · · Score: 5, Informative

      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 )

    2. Re:FLOSS misses the point again by mhansen444 · · Score: 5, Interesting

      When I meant not good at linear algebra, I meant that it is slow. For example, Sage is over 30x faster at computing the characteristic polynomial of a matrix over the integers. Regarding number theory, there isn't really any support in Mathematica for working with number fields, modular forms, or elliptic curves. What I meant by "real" programming language was that there is a lot of software out there that can be taken advantage of. Say for instance I need to work with data stored in an relational database. How easy is that to do with Mathematica? It is trivial with Sage since Sage uses Python. When Sage needs to do things fast, it uses Cython ( http://www.cython.org/ ) which is almost a superset of Python and compiles down to C.

      --Mike

  9. Re:12 dimensions... by TobyRush · · Score: 4, Funny

    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.
  10. Re:What about other math software? by mhansen444 · · Score: 5, Informative

    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.

  11. Re:Very Nice by mhansen444 · · Score: 5, Informative

    Speaking of R, we're hard at work getting ready to include R within Sage. --Mike ( a Sage developer )

  12. Re:FINALLY! by mahlerfan999 · · Score: 4, Insightful

    I was getting kind of tired of pirating my Mathematica software. That's not the reason why open source mathematics software needs to be better developed (your comment is also sadly echoed in the article which didn't get the point). It has nothing to do with the price tag (free as in beer is not why foss is important in math and science), it has to do with reproducibility. The whole point of science and math is that a result can't be accepted if it can't be reproduced. And anything that uses closed source algorithms as part of the process is not transparent, and thus not necessarily reproducible. From personal experience I can tell you that numerical computations depend strongly on the algorithm that you choose, and it's just as important as the rest of the problem.
  13. Maxima vs Mathematica by hweimer · · Score: 4, Interesting

    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
  14. SAGE is an interesting project by starseeker · · Score: 5, Insightful

    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
  15. A link for you by zogger · · Score: 5, Insightful

    Took 5 seconds with google, mostly because I type slow and am on dialup

    Nasa open source

  16. Matlab by Liquid+Len · · Score: 4, Interesting

    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...

  17. Re:another one bites the dust by jpfed · · Score: 4, Insightful

    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.

  18. Re:What about other math software? by mhansen444 · · Score: 5, Informative

    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

  19. Re:Can I focus on my work? by mhansen444 · · Score: 4, Informative

    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