As the author of a CAS, I can state that you need much more than 2 weeks to learn a programming language to make a CAS, and much much more if you want to be fast. Life is short, therefore choose your programming language carefully! I don't regret my choice for C (+ C++ STL and operator redefinition) made 20 years ago, because C can interact with a lot of languages (including compilation to Javascript). If I had to choose today, I would perhaps choose Julia. Not Python, it's much too slow. I don't know for Lisp speed, but it's not a language I would choose anyway, I like to write e.g. a+b*c when I do algebraic computations in my source code.
Le mercredi 20 janvier 2021 à 19:47:01 UTC+1, rjf a écrit : > I think you have to figure that there is a difference in productivity of > people who just learned Python in high school and would really like to > write a computer algebra system > versus people who know more mathematics, are comfortable spending 2 weeks > learning lisp, spending ?? (weeks? months?) studying the state of the art in > computer algebra systems as evolved over 60 years, and want to contribute > to advancing the art (rather than re-programming the easy stuff). > I am under the impression that learning python is a reasonable stepping > stone to learning lisp. > > As far as checking results for various systems, there is a category of > CAS bugs that are syistem independent. > That is, they occur in many systems! Sometimes they depend on secretly > dividing by zero, or doing something > that is invalid at a singularity. So "Maple and Mathematica and ... all > agree" does not mean they are right! > > I think my essential point previously is that rewriting easy stuff (in a > different language) typically fails to push the frontier. > > > > On Wednesday, January 20, 2021 at 5:54:51 AM UTC-8 kcrisman wrote: > >> >>> As to the question of replacing backends, there is already a ticket >>> (which I cannot find right now, my apologies) which started the process of >>> seeing what doctests would fail if we went to Sympy as default. Presumably >>> something similar could be done with this engine (I don't know if it is >>> more for low-level symbolics or also things like integration). >>> >> >> In particular, the (very minimal) documentation (really an API is all) >> makes it seems more a replacement for things like Ginac (already in C++), >> not Maxima et al. I don't know if that would provide a noticeable speedup >> per se, though the SageManifolds ticket mentioned parallelization so >> perhaps it is better suited for that? >> > -- 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/879dd941-95a0-4f2f-b5ac-96f60439f80dn%40googlegroups.com.