Maybe I misremember horribly, but I think I read somewhere that the original motivation for staring Sage was to provide an open source alternative to the proprietary tools. Do you still think it is an ideal worth of following?
And Sage has been (and is!) huge undertaking, which developments of the project surprised you most? Which parts of it you like most and which least?
In the name of many, many users thank you for starting it!
Yes, our official mission statement is still "Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab." Yes, I think this is still worth aspiring to, though it's very difficult to do with very limited financial support (given how much money the Ma's have).
> which developments of the project surprised you most?
It was dramatically more difficult to get real funding than I expected. I remember my first NSF grant asking for funding directly for Sage, where I put in what I thought was a humble request for about 10% of what Magma operates with... and they cut everything except one single 50% postdoc. I definitely thought the math community would support development of a community owned platform for computational mathematics much more strongly, and was extremely surprised when that was not the case. Europe has been much more supportive (with OpenDreamKit), but I'm in the US.
That said, I'm also very pleasantly surprised that actual contributions to Sage have continued and grown in many areas of mathematics, and the project is successful and healthy today and supporting research level mathematics in many areas.
I have an unrelated question: Have you ever thought in a new release of your book on Riemann Hypothesis? The price is not a problem but the UX.
I got a hard copy that sadly is falling apart after some usage. Being truly honest, after seeing this I searched for a pirated PDF copy to finish the book.
It really sucks that some copies of the book are defective. I didn't expect that from Cambridge University Press. Email me at wstein@gmail.com and I can put you in touch with my editor, who should send you a free copy, and I can also give you a PDF.
I love Sage! But, which was the rationale to build Sage as a standalone programming language/environment instead of being more integrated into Python? I assume syntax, basically?
I built Sage initially to provide a free open source alternative for number theorists to parts of Magma (http://magma.maths.usyd.edu.au/magma/), and Magma is self contained with batteries included. In 2004, almost none of the academic colleagues I knew used Python (and definitely not for math), and the Python packaging situation was a mess (it continued to be a mess for many years after, but is in relatively good shape now with Conda and Pip). Python was also "just" the programming language of Sage, with Sage itself being mostly new code combined with other major standalone software (PARI, GAP, Singular, etc. -- all having their own languages, with their own packaging, CLI's etc.). It was not at all clear how Sage would grow -- perhaps Python would just be one of many languages for using Sage?
If I had real resources to devote to Sage today (I don't), I would break Sage up into a core Python library, and lots of other libraries, and make them all available as standard pypi (and conda) packages. Doing so would be extremely difficult, because the main monolithic Sage library is so massive at this point (on the order of a million lines -- contributed by 600+ people), and since it's Python pretty much everything in any module is public (unlike say Javascript modules where code is private by default). Also, the dependencies in this code are ill defined and complicated (the class diagram is insane). On the plus side, we have extremely good automated test coverage and testing infrastructure.
The rationale wasn't syntax -- the entire Sage library is written in standard Python (and Cython), and the only special syntax Sage has is mainly used for the command line interface (and .sage files), and that's all done via an optional module called "preparse" (which could just be a pypi package if it got factored out).
I made extensive use of Sage during a recent research project. The most useful thing about Sage for me is that it integrates cleanly many mathematical libraries, making it easy to export results from one tool into the other. The visualization tools are a bonus, and made debugging quite easy. In my case, Sage neatly connected graph isomorphism tools with group theory libraries, saving me a tremendous amount of work.
The main downside for me is the performance overhead of using Sage. It is great for quickly prototyping ideas, but I found that some components were not designed with performance in mind. For instance, I used the Sage interface for Gap for much of my group theory computations, and I found that this interface was incomplete (it does not natively support the product replacement algorithm, for example) and quite leaky (I needed to manually garbage collect to keep from running out of memory).
Sage is definitely not the easiest thing to use, but it's a great way to 1) actually get your math right and 2) record and share your work. I used it to work out the cubic formula and share it alongside a blog post: https://alexcbecker.net/mathematics.html#the-quadratic-equat...