4 ms·
SymPy is fantastic and impressive and I am a fan. It however does few things better than the program it is directly trying to compete with, namely Mathematica.
by prof-dr-ir 6y ago
SymPy is fantastic and impressive and I am a fan. It however does few things better than the program it is directly trying to compete with, namely Mathematica. This gives me scary flashbacks to the early 'Linux on the desktop' advocates, whose main argument was that it was all 'free' in every sense of the word. As we know now, that simply was not enough to switch the majority of users.
Do people see a space where SymPy can realistically flourish?
- kavalg 6y agoMaybe as a basis for something like an open source Photomath[1]. I noticed that kids use it a lot in my community. And it is not only to cheat at homeworks :) [1] https://photomath.app/en/ https://photomath.app/en/
- xvilka 6y agoMaxima plus Sage Math wrappers works more appropriately, I think. Though I would prefer a faster language than Python for such systems. Something like Sage but with Julia.
- fdej 6y agoNemo (http://nemocas.org/ http://nemocas.org/) and Oscar (https://oscar.computeralgebra.de/ https://oscar.computeralgebra.de/) are such projects. However, they are focused on algebra and have no support for expression manipulation, symbolic integration and the like.
- ChrisRackauckas 6y agoFor symbolic manipulation and all of that, ModelingToolkit.jl (https://mtk.sciml.ai/dev/ https://mtk.sciml.ai/dev/) is the project, and it's getting SymEngine-like speeds in about a day or so. There's still more to do, but where this shines is the connection to numerical computing, i.e. partially solving models and then spitting out optimized parallelized code for the ODE solver for the other half of the model.
- Qem 6y agoAs SymPy is pure Python, if you need speed, you can run it under Pypy just-in-time compiled implementation of Python.
- fdej 6y agoI think SymPy already flourishes in its space: it's a great tool for users who need some computer algebra functionality with the ability to glue that together with other code (thanks to Python). It's fine as long as you don't need high efficiency or specialized functionality. Mathematica has no serious competition as a general-purpose symbolic system. I guess Maple is the closest runner-up, but it's more narrowly focused on computer algebra. Most people only need a fraction of Mathematica to get their work done, though.
- prionassembly 6y agoIt runs on a google colab tab that you can spin up pressing "ctrl-T" in any available computer.
- svantana 6y agoSure, but if you want fast easy math, it's hard to beat wolfram alpha, where you can just enter something like "solve x^2+5a=y for x" and get the answer right away.
- prionassembly 6y agoIt's really not. WA is good at getting natural language questions but gives you next to no control on the outputs. Last time I used sympy I had a complicated function on many variables and wanted to plot certain specific 2D contours. I was distant from any computer with numerical/programming tools and needed to add them to a PPT deck last minute.
- Enginerrrd 6y agoI use it in Jupyter notebooks for civil and structural engineering calcs. The reason is simple: I can print expressions and manipulate the expression with a guarantee that my calcs conform to the pretty printed ones. This allows non-programmers (senior engineers) to check the work on the engineering side with some additional assurances that the calculation is going to be correct compared to just inputting the expression in python seperately from the pretty printing process.