Dear Matthias!

*> What is the modularization project?* The Sage developer community has 
long been aware of the severe problems that the monolithic design of Sage 
has brought. See in particular the lively 2016 sage-devel thread "How we 
develop Sage" (https://groups.google.com/g/sage-devel/c/29ndCD8z94k) 
initiated by William.

I looked at a few of the messages in this thread (there are something like 
hundred messages, I feel unable to read them all).  I would like to make 
two remarks

* 26 persons participated in this thread, roughly 10 of these are still 
active
* many of the messages were quite critical regarding modularization of the 
math library in sage
* it seems to me that at least a big part of the thread is about 
modularization of the *infrastructure* of sage, not the math library.

In any case, I do not see consensus in this thread.  Of course, there may 
be other threads that I am not aware of.

I was not there at the time, and only very recently realized some potential 
consequences of the direction the modularization might take as indicated in 
https://github.com/sagemath/sage/pull/36964, and formulated some questions 
there.

To my surprise, at least Volker issued similar concerns in the thread 
above.  I could not find satisfying answers to his questions either.  Also, 
I must say, that I find "Don't fear. This has been thought through 
carefully, and you can read about it in the Sage developer's guide." in 
place of an answer on the edge of abuse.  It is at least condescending.

For convenience of discussion, I am reproducing my questions below.  

Martin

1.) Is there an example for someone who did not want to use sage because of 
some dependency of the math library?  Or at least a possible reason? 
 @kwankyu's comment above suggests that having something in the "wrong" 
distribution wouldn't be a big deal.  But this begs the question: who 
profits from cutting the math library into pieces (which look very 
arbitrary to me and have a curious emphasis on discrete math topics)?

My fear would be that at some point there is a request not to use symbolics 
in some module, because Lisp is hard to install on some system.

(I don't think this fear is unjustified: in the section of the developer 
guide you pointed to, I find

> The imports of the symbolic functions ceil() and floor() can likely be 
replaced by the artithmetic functions 
[integer_floor()](https://doc.sagemath.org/html/en/reference/rings_standard/sage/arith/misc.html#sage.arith.misc.integer_floor)
 
and 
[integer_ceil()](https://doc.sagemath.org/html/en/reference/rings_standard/sage/arith/misc.html#sage.arith.misc.integer_ceil).

OK, so some user of that module happily replaces the two functions.  Now, I 
come along and would like to replace some other implementation by a call to 
something defined in symbolics.  But that would be breaking a promise to 
the user, so it would be really hard to justify.

In fact, this happened to me already, in some sense.  I noticed a function 
definition in `sage.modular.multiple_zeta`  with misleading documentation, 
which could be replaced by a call to code in `sage.combinat`.  However, 
this is *already* hard to do, because it might affect performance (which is 
a very valid point in my opinion).  I think it would be extremely bad to 
make it even harder.

2.) If this is about dependencies on other software, why aren't the 
distributions named after these dependencies?  (Of course, at some point 
dependencies might change, for example, there might be a switch from glpk 
to scip.)

Before I read - by chance - `distribution = sagemath-graphs` somewhere, I 
thought one would "modularize" things like the repl, user interfaces, and 
perhaps some low level stuff.  But it seems to me now that this is really 
about the modularization of the mathematics.

Also, I find it hard to believe that it is about dependencies, because the 
stuff in `abstract_tree.py` and friends has no dependencies on external 
software (unless you want to LaTeX them, perhaps).

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-devel/7aafafbc-7992-4bfe-abcd-f4b433b29c3en%40googlegroups.com.

Reply via email to