Contact
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
| Download
Views: 2730

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?