Just a generic question on who is the target user for the Symbolics.jl package.
I had a quick look on it, looking to find some alternative to the python-based SymPy (and the SymPy.jl wrapper), but I have now doubts if the two packages are for the same kind of users.
I am a low-math, lazy guy, and all I want is find simple way to avoid pen and paper for computing tedious derivatives, integral (no, by parts no!), solving a few system of equations and so on.
SymPy and the SymPy tutorial are fantastic for these kind of things. I can even say I can arrive to understand them
But then, looking at Symbolic.jl package I am pretty lost… it is full of topics that for me are “advanced” or look “of detail”… ok, I can arrive to understand a bit about IR and ASL because I frequent the Julia community by a while now, but my colleagues would be completely lost.
Sym
, istree
, “expression”, Num
… what are these ?? (don’t answer, I got it after a while…) By comparison the SymPy tutorial is much more gently, it starts by showing how to achieve basic stuff and, for example, the “tree” concept is given only at the very end of the tutorial.
So, my question is if indeed the objective of the package is to provide a sympy-alternative in native Julia or the focus is a bit different/ do more advanced stuff…
I would point that I am not “complaining” about the documentation, I am only trying to understand who is the target group of this package.
For example the API is also more elaborated than SymPy.
For a derivative:
SymPy:
using SymPy
@vars q
utility = 100q - 2q^2
marg_util = diff(utility,q)
Symbolics.jl:
using Symbolics
@variables q
utility = 100q - 2q^2
marg_util = expand_derivatives(Differential(q)(utility)) # doesn't feel very intuitive...
Perhaps to be more general and/or efficient… but for basic things it is overwhelming :-/