Goals and General Strategy of the PSAGE Project

Architecture

The architecture of PSAGE will be:
  1. A very stable subset of Sage itself, with a few patches
  2. Several new Python/Cython modules (mainly aimed at number theory), of varying levels of stability and quality, which do not get installed under the sage namespace

People

Decrease Bloat

Sage is bloated by the pexpect interfaces, which adversely impact performance, servely limit parallelization of code, and frustrate portability and robustness (e.g., "zombie processes"). Sage is also bloated by all the numerical and scientific code, which is useless for number theory, which is very easy to install, and whose main users don't use Sage anyways (they use Cython, Linux packaging).

Change the development model

The ever increasingly bureaucratic model used for Sage -- in which code must be 100% tested, everything gets vote on, things can't change for 12 months, etc. -- is great for stability and some form of quality. It is unfortunately terrible for supporting code for research mathematics. The rate of development of code for supporting my research in number theory in Sage has slowed far too much, despite far more people being involved and working harder.

I remember clearly where the 100% doctest, 100% code referee, and 1-year deprecation policies came from. They were designed and pushed through by (good) software engineers who frankly did not have a good understanding of the unique needs of mathematical research. And indeed this makes sense because the aim of Sage is to be a viable alternative to Maple, Mathematica, and Matlab (in addition to Magma). Of these systems, only Magma has been really successful at addressing serious research mathematics in arithmetic geometry (the other systems have all been abject failures there).

What to Do (no particular order)