class: middle, center
SageMath: creating a viable free open source alternative to
Magmaâ„¢, Mapleâ„¢, Mathematicaâ„¢, and Matlabâ„¢
William Stein
SageMath, Inc. and University of Washington
July 25, 2018 at ICMS
???
Thank the organizers.
Remind people to interrupt me with questions at any time!
Sage in 2004
I started Sage in 2004, motivated by:
Success of open source, such as Linux and LaTeX: laptop was 100% open source, except for Magma.
Frustration with Magma being closed source and owned by John Cannon, rather than open source and owned by the mathematical community.
--
My goal was to "build the car, instead of reinventing the wheel."
I just needed software to support my number theory research.
I didn't care at all about competing with other open source software projects.
I just wanted free open source mathematical software that gets the job done.
The job: Discovering conjectures; figuring out which "theorems" are probably true...
--
The plan was to take good existing open source libraries:
Make them work together
This is related to this session and the previous talk.
How this works is extremely interesting, could be improved a lot
Would have been good topic for this talk..
Fill in the gaps in functionality, and
Get back to work on my research ASAP...
Sage in 2018
Big: On the order of a million lines of code
https://trac.sagemath.org/ lists 621 developers.
Each Sage release has about 100 distinct contributors.
Peer review of all code contributions.
About 50K monthly active users of the website.
Over 10K pages of documentation, and several good books.
Governance:
when something is disputed, there's a vote on the sage-devel mailing list
count the votes a week later
you get to vote if you are paying attention
There have been over 100 Sage Days workshops. In fact, there is one at ICERM going on right now!
class: middle, center
Contributors: Sage dev is very active still!
???
I'm doing way less now.
My Personal Sage Wishlist
I made my top Sage wishlist. Interestingly, little is happening toward any of it right now!!
--
1. Functionality:
There are still a bunch of very deep and difficult to implement algorithms that I care about, which are implemented in Magma, and nowhere else.
Quaternion algebras over totally real fields (and Hilbert modular forms)
3, 4, etc., descents on elliptic curves
General functional field machinery (Hess's algorithm) -- recent progress
Pay people to focus on implementing something for a semester via teaching buyouts.
--
2. Refactor Sage:
Core minimal sagemath package, and pip-installable packages for everything else:
includes: coercion model, categories, basic types like integers and rationals
excludes: elliptic curves, manifolds, graph theory, matrix spaces, etc.
Would help:
clarify the public API of Sage
make it easier for people to share code before it is reviewed (packages instead of branches!)
More Sage Wishlist...
3. Make Sage start up much quicker (goal: a half second):
3s right now, with an SSD and warm cache.
15s or so, on a slower disk...
Python checks for something like 100K+ files on import of the Sage library.
People are much less likely to visit a website if it takes 5 seconds to load; Sage is similar -- will you use Sage or Pari/Python/etc. for a quick computation?
Refactoring sage (see above) and requiring explicit imports would help a lot.
--
4. Greatly improve how error messages are presented to users:
Write a Python library (say) that takes as input a Sage error message, and tries to provide something useful to a user (not developer).
Library would deal with the preparser, which makes no sense to users! (Like "source maps" in webdev.)
The library could use machine learning models to provide more flexible help.
Even More Sage Wishlist...
5. A person paid fulltime to be the "patch editor":
Like an editor for a journal.
Ensures that contributions are peer reviewed in a timely manner.
Right now there are 240 tickets that are just sitting there "needing review".
--
6. Switch from trac.sagemath.org to github.com:
I use Github for everything else
Github solves tons of problems; using Github greatly reduces friction for new developers
Basic things like navigation and search are just faster than our trac server.
Browsing a contribution and providing line-by-line commentary is vastly easier with Github.
class: middle
Thanks!
ICMS 2018 organizers. I've never been to ICMS, and it's pretty awesome being at a conference surrounded by so many people who love open source mathematical software!
To all the Sage developers and users..., and everybody who has contributed to components of Sage.
I have a ton of Sage (and CoCalc) stickers and magnets still!
Questions?