I saw this post [1] reaches #1 at hackernews [2], so I take a deeper look.
Disclaimer: I didn't run the code, but I read all the docs, which
is very short, and grep through some of the source code.
First, I'm very glad that there are multiple mentions of FriCAS
in the comments. That shows there are more people know about FriCAS.
Sadly, there are not much deeper discussion about FriCAS, and seems
there is also very small interest of FriCAS from Symbolics.jl
developers.
Second, about the source code. I looked into the repos of Symbolics.jl
and SymbolicUtils.jl, which has 2500 and 3000 lines of code, and
less that 800 commits combined. I'm surprised by their bold PR claims.
(Maybe we should publicize more, but not like this.)
This is their own list of missing features (missing polynomials and
calculus!):
https://github.com/JuliaSymbolics/Symbolics.jl/issues/59
Third, I looked into the type system. There are very few types.
It's like a thin layer of types glued over sympy/maxima.
It uses rules (pattern matching) heavily, and plans to use RUBI
to solve integrals. Which I consider is similar to mathematica
and a step back from FriCAS's algorithmic/strong-type approach.
Finally, a thing has puzzled me for a very long time. It seems
that there is not a linked list type/data structure. It's unthinkable
that a language doesn't have this type, its library doesn't use
this type. Maybe Julia is hyper focused on numeric computation
and uses vector extensively, but to build a CAS without linked
list is impossible.
[1]
https://discourse.julialang.org/t/ann-symbolics-jl-a-modern-computer-algebra-system-for-a-modern-language/56251
[2]
https://news.ycombinator.com/item?id=26356854