Sage – Free Software Brings Affordability, Transparency To Mathematics
Until recently, a student solving a calculus problem, a physicist modeling a galaxy or a mathematician studying a complex equation had to use powerful computer programs that cost hundreds or thousands of dollars. But an open-source tool based at the University of Washington won first prize in the scientific software division of Les Trophées du Libre, an international competition for free software.
An international army of volunteers working on Sage is led by project leader William Stein (seated on the left). Here he is surrounded by UW undergraduate and graduate students who are helping to develop the free software. (Credit: Image courtesy of University of Washington)
The tool, called Sage, faced initial skepticism from the mathematics and education communities.
“I’ve had a surprisingly large number of people tell me that something like Sage couldn’t be done — that it just wasn’t possible,” said William Stein, associate professor of mathematics and lead developer of the tool. “I’m hearing that less now.”
Open-source software, which distributes programs and all their underlying code for free, is increasingly used in everyday applications. Firefox, Linux and Open Office are well-known examples.
But until recently, nobody had done the same for the everyday tools used in mathematics. Over the past three years, more than a hundred mathematicians from around the world have worked with Stein to build a user-friendly tool that combines powerful number-crunching with new features, such as collaborative online worksheets.
“A lot of people said: ‘Wow, I’ve been waiting forever for something like this,'” Stein said. “People are excited about it.”
Sage can take the place of commercial software commonly used in mathematics education, in large government laboratories and in math-intensive research. The program can do anything from mapping a 12-dimensional object to calculating rainfall patterns under global warming.
The idea began in 2005, when Stein was an assistant professor at Harvard University.
“For about 10 years I had been really unhappy with the state of mathematical software,” Stein said. The big commercial programs — Matlab, Maple, Mathematica and Magma — charge license fees. The Mathematica Web page, for example, charges $2,495 for a regular license. For another program, a collaborator in Colombia was quoted about $550, a special “Third World” discount price, to buy a license to use a particular tool, Stein said.
The frustrations weren’t only financial. Commercial programs don’t always reveal how the calculations are performed. This means that other mathematicians can’t scrutinize the code to see how a computer-based calculation arrived at a result.
“Not being able to check the code of a computer-based calculation is like not publishing proofs for a mathematical theorem,” Stein said. “It’s ludicrous.”
So Stein began a year and a half of frenzied work in which he created the Sage prototype, combining decades’ worth of more specialized free mathematical software and filling in the gaps.
“I worked really, really hard on this, and didn’t sleep much for a year. Now I’ve relaxed. There are a lot more people helping out,” Stein said. “It seems like everyone in the field has heard of Sage now, which is surreal.”
Among those helping is a team of five UW undergraduate students who work part-time on the code — everything from writing new formulas to improving the Google-ish graphical interface. (Even when Sage runs on an individual computer, not over the Internet, you use a Web browser to enter commands.)
Regular meetings, named “Sage days,” bring together volunteer developers. The fourth Sage day, held in Seattle in June, drew about 30 people. The sixth Sage day was held last month in Bristol, England. Forty-one people attended talks and many participated in coding sprints. Dozens of other people around the world contribute through Sage’s online discussion boards.
Last month, Stein and David Joyner, a mathematics professor at the U.S. Naval Academy in Annapolis, Md., published a letter in the Notices of the American Mathematical Society in which they argue that the mathematical community should support and develop open-source software.
Soon Sage will face off against the major software companies in physical space. In early January, thousands of mathematicians will gather in San Diego for the joint meeting of the American Mathematical Society and the Mathematical Association of America. In the exhibition hall, Stein has paid the first-timers’ rate of $400 to rent a booth alongside those of the major mathematical software companies, where he and students will hand out DVDs with copies of Sage.
“I think we can be better than the commercial versions,” he said. “I really want it to be the best mathematical software in the world.”
Sage research and student support is made possible by grants from the National Science Foundation. The Sage meetings are supported by various mathematical associations. The project has also received several thousand dollars in private donations.
Adapted from materials provided by University of Washington.
The Sage project is at http://www.sagemath.org/
Notices of the American Mathematical Society November 2007 Volume 54 Issue 10, 1279
—David Joyner U. S. Naval Academy, Annapolis email@example.com
—William Stein University of Washington, Seattle firstname.lastname@example.org
Open Source Mathematical Software
Mathematical software has greatly contributed to mathematical research, enabling exciting advances in mathematics and providing extensive data for conjectures. Perhaps three of the most well-known applications of computation to mathematical research are the resolution of the four-color conjecture by Appel and Haken in 1976 (though it is now reproven with less need for computer verification by N. Robertson, D. P. Sanders, P. D. Seymour and R. Thomas), Thomas Hales’s proof of Kepler’s conjecture, and the formulation of the Birch and Swinnerton-Dyer conjecture, which grew out of extensive numerical computation. Open source software, such as TEX, Mozilla Firefox, and Linux has had a profound effect on computing during the last decade, and we hope that open source mathematical software will have a similar positive impact on mathematics. I think we need a symbolic standard to make computer manipulations easier to document and verify. And with all due respect to the free market, perhaps we should not be dependent on commercial software here. An open source project could, perhaps, find better answers to the obvious problems such as availability, bugs, backward compatibility, platform independence, standard libraries, etc. One can learn from the success of TEX and more specialized software like Macaulay2. I do hope that funding agencies are looking into this. —Andrei Okounkov, 2006 Fields medalist (see “Interviews with three Fields medalists” Notices of the AMS, 54(3) (2007), 405–410). The term open source is defined at http://www. opensource.org/, but basically it means anyone (including commercial companies or the defense department) should be able to inspect open source software, modify it, and share it with others. One key difference between mathematical theorems and software is that theorems require little maintenance, whereas mathematical software requires substantial and potentially expensive maintenance (bug fixes, updates when algorithms or languages change, etc.).Mathematical research usually generates no direct revenue for researchers, and likewise open source mathematical software is free to share and extend, so it rarely generates revenue. Volunteer effort, donations, and financial support from the NSF and other organizations is thus critical to the success of open source mathematical software. There is a proof in the article by Campbell et al. in The Atlas of Finite Groups—Ten Years On (1998) that describes how many separate software packages were “easily used” to deduce various mathematical facts—no code is given, and some of the programs are proprietary software that runs only on hardware many years out of date. Such proofs may become increasingly common in mathematics if something isn’t done to reverse this trend. Suppose Jane is a well-known mathematician who announces she has proved a theorem. We probably will believe her, but she knows that she will be required to produce a proof if requested. However, suppose now Jane says a theorem is true based partly on the results of software. The closest we can reasonably hope to get to a rigorous proof (without new ideas) is the open inspection and ability to use all the computer code on which the result depends. If the program is proprietary, this is not possible. We have every right to be distrustful, not only due to a vague distrust of computers but because even the best programmers regularly make mistakes. If one reads the proof of Jane’s theorem in hopes of extending her ideas or applying them in a new context, it is limiting to not have access to the inner workings of the software on which Jane’s result builds. For example, consider the following quote from the Mathematica tutorial1: Particularly inmore advanced applications of Mathematica, it may sometimes seem worthwhile to try to analyze internal algorithms in order to predict which way of doing a given computation will be the most efficient. […] But most often the analyses will not be worthwhile. For the internals of Mathematica are quite complicated, and even given a basic description of the algorithm used for a particular purpose, it is usually extremely difficult to reach a reliable conclusion about how the detailed implementation of this algorithm will actually behave in particular circumstances. No journal would make a statement like the above about the proofs of the theorems they publish. Increasingly, proprietary software and the algorithms used are an essential part of mathematical proofs. To quote J. Neubüser, “with this situation two of the most basic rules of conduct in mathemat- ics are violated: In mathematics information is passed on free of charge and everything is laid open for checking.” Full disclosure: The second author started a new mathematics software system in 2005 called SAGE (see www. sagemath.org), which combines Python, GAP, Singular, PARI, Maxima, SciPy, etc. with several hundred thousand lines of new code. SAGE receives contributions from many mathematicians worldwide that synthesize the latest algorithms from a broad range of topics into a comprehensive toolkit for mathematical research.
1http://reference.wolfram.com/mathematica/tutorial/ WhyYouDoNotUsuallyNeedToKnowAboutInternals.html November 2007 Notices of the AMS 1279