1.3 Longterm Goals for Sage
- Useful: Sage's intended audience
is mathematics students (from high school to graduate
school), teachers, and research mathematics. The aim
is to provide software that can be used to explore and experiment
with mathematical constructions in algebra, geometry, number theory,
calculus, numerical computation, etc.
Sage helps make it easier to interactively
experiment with mathematical objects.
- Efficient: Be fast. Sage uses highly-optimized
mature software like GMP, PARI, GAP, and NTL, and so is very
fast at certain operations.
- Free and open source: The source code must be freely
available and readable, so users can understand what the system is
really doing and more easily extend it. Just as mathematicians gain
a deeper understanding of a theorem by carefully reading or at least
skimming the proof, people who do computations should be able to
understand how the calculations work by reading documented source
code. If you use Sage to do computations in a paper you
publish, you can rest assured that your readers will always have
free access to Sage and all its source code, and you are even
allowed to archive and re-distribute the version of Sage you used.
- Easy to compile: Sage should be easy to compile from
source for Linux, OS X and Windows users. This provides more
flexibility for users to modify the system.
- Cooperation: Provide robust interfaces to most other
computer algebra systems, including PARI, GAP, Singular,
Maxima, KASH, Magma, Maple, and Mathematica. Sage is meant to
unify and extend existing math software.
- Well documented: Tutorial, programming guide,
reference manual, and how-to, with numerous examples and
discussion of background mathematics.
- Extensible: Be able to define new data types or derive
from built-in types, and use code written in a range of languages.
- User friendly: It should be easy to understand what functionality is
provided for a given object and to view documentation and source code.
Also attain a high level of user support.
See About this document... for information on suggesting changes.