William Stein on the struggle for open source funding in pure mathematics [pdf] (ams.org) 84 points by adenadel 9 months ago | hide | past | web | favorite | 17 comments

 I still can't believe that they decided that the best use of their money to fund "open source" was just to give everyone Magma licenses. I hope they reconsider that choice some day.Also, what is Fateman's problem? His constant negativity is really grating. I used to experience it when I was more involved with Maxima. I don't know if he thinks his cynicism is helpful or not, but all it ever did was make me unhappy.
 I'm an engineering student an I can say with property that, although I don't know much about Sage, a good symbolic math project (in particular Open Source) is sorely needed. It would be far from a curiosity. Most students use Matlab/Octave where I study, and all it does is allow for numeric computation. We've had huge advances in computing and it's been long since numerical integration was our best aid! More math heavy engineering subjects will often encounter large symbolic manipulations needed to arrive at some result, and common sense is that there's no good tool to help with that. Common sense is there is some limited symbolic manipulation in some HP calculators, and Wolfram Alpha, although it often refuses to work once you start playing with larger expressions.I also know that some fields like ANNs (AI) research rely heavily on automatic symbolic differentiation, although I'm not sure the tools they use.
 Check out SymPy:`````` >>> x, a, b, c = symbols('x a b c') >>> solve(a*x**2+b*x+c, x) # solve(expr_eqal_to_zero, var) [ (-b + sqrt(-4*a*c + b**2))/(2*a), (-b - sqrt(-4*a*c + b**2))/(2*a) ] `````` More info: https://minireference.com/static/tutorials/sympy_tutorial.pd...
 I will, thank you vm :)
 A personal anecdote, yesterday I was thinking about using Maxima versus R (using rstudio) for a three session of 1.5 hours (total 4.5 hours) to cover statistics and probability. Using dice = sample(1:6,100,rep=T) and table(dice) you hit a wall, there isn't an intuitive way to extract the counts, and you need something like as.data.frame(table(dice))\$freq, which I don't like. Maxima use ":" for assignment, R can use "=" or "<-". I would like to see "<-" as a general symbol for assignment and using "=" in maxima and R for other uses like equations and default parameters. I prefer seq(1,10) or 1:10 to makelist(i,i,1,10). What I am trying to communicate is that all those open source projects use different syntaxes and that is not a good design for users. Mathematica wins in this field because it unifies the syntax. But Maxima and R are both inspired by Lisp, and Julia has also some macro capabilities. If someone is able to unify the syntax it would be great. We have data.frames and data.tables and non standard evaluation and a lot of concepts that to be useful must be framed in a common context, otherwise we are doomed to a babel tower, or in more practical terms, users are going to choose propietary software because it is designed to make them productive. Python with numpy and pandas is another option but for 4.5 hours I prefer the simplicity of lm(y ~ x) to create a linear model model to other options. I don't know if a smooth transition can be established between a simple language (rich context) and a general one.
 Bill Stein is a genius programmer, and Sage is quite the accomplishment. I wish he was more Chern, less Yau. I go to talks where people credit Sage where I know decades of Singular effort were responsible. (I coauthored a similar system; this is a life's work one is dismissing.) Sage was just the envelope, until he could replace the content, in this case unlikely to happen. I wish he was more interested in fixing this sort of user confusion. Draw your own conclusions.
 I'm really sorry if some people credit Sage without properly crediting everything Sage depends on. We've gone out of our way to make the architecture of Sage clear. E.g., look at the description of Sage on our website: "SageMath is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages: NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many more. Access their combined power through a common, Python-based language or directly via interfaces or wrappers." The "and many more" is a link to each component of Sage. I also often tried in talks to always define sage as: (1) a distribution of open source math software, and (2) a Python library that ties them together. Given the mostly volunteer nature of the project, many Sage developers are mostly concerned with creating software to support their research (which they then want to get back to), instead of worrying about the very important social points that you bring up.
 Users pick full-featured, easy-to-use proprietary software over narrow-use OSS software with awkward UX all day. Stein had a grand vision to make the many OSS math tools actually preferable. I was in the room for a couple early Sage hackathons and the purpose seemed right on.
 Sounds like the old "linux isn't linux, it's gnu/linux/x/firefox" debate.If people use sage to get the work done, they are using sage. I don't see intel wanting recognition for every scientific paper ever written on their chips.
 The problem is that projects like Singular depend on listing papers that have been written with them to get funding and attract contributions. These represent a very significant amount of work. Sage doesn't handle a lot of stuff directly: anything more then basic arithmetic often goes to a specialized package.
 It is not true anymore that "anything more than basic arithmetic goes to a specialized package" (it used to be true back in 2005). The Sage library itself is nearly a million lines of code and is very deep after contributions by over 500 people during 14 years--it's far more than "basic arithmetic".
 I know scientists are terrible at PR, but why not say:"Used as foundational block of the Sage library, used in the following papers: [...]" then list every paper that used sage. No one can't prove that Singular wasn't called at least once in the writing of that paper.Then sage gets more recognition, singular gets way more recognition and the suits in admin are happy.
 I can't talk about sage, but the Python world in general gives undue credit to some public faces.There are work horses and show horses ...
 Are you obliquely trying to say that Stein is plagiarizing others' work by not giving proper credit to the authors of components of Sage?
 This is mainly about my struggle for open source funding in pure mathematics.
 Ok, since we have authorial authority for it, we'll put that in the title above.