User interface. There are three ways in which the user can interact with the software. When the software is running on the server or local system, the user can access it with the help of a Web browser. A text based command line interface using Python has been developed. The user can also access the software as a Python library.
Support for parallel-processing. SageMath is a cross-platform software that allows parallel processing. Users can make use of multiple processors and multi-core processors for parallel processing. They can also use distributed systems to get their computational jobs done.
Use of Python. Instead of writing a new code for every mathematical application, the software reuses other open source software to get the work done. The new code is written only if none of the other software could meet the requirement.
Additional functionalities are written as a new code and everything is glued together by a common interface.
Instead of inventing a new language for interfacing, the software makes use of Python as the gluing language to interact with all components. Python, being a well-known language in the scientific research community, is used to make the interface less complicated.
Necessity, the mother of all invention
The initial release of the software was made in early 2005. Whenever the scientific community felt the need for software to suit a particular mathematical application, the developers strictly followed the concept of release-early, release-often concept. This is the reason why there were more than 300 releases of the software in the last decade.