# \[ANN\] Symbolics.jl: A Modern Computer Algebra System for a Modern Language

**URL:** <https://discourse.julialang.org/t/ann-symbolics-jl-a-modern-computer-algebra-system-for-a-modern-language/56251>\
**Category:** Package Announcements\
**Created:** [March 1, 2021, 2:59pm UTC](https://discourse.julialang.org/t/ann-symbolics-jl-a-modern-computer-algebra-system-for-a-modern-language/56251 "2021-03-01T14:59:40Z")\
**Posts on this page:** 1\
**Showing post:** 51

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [March 6, 2021, 2:47am UTC](https://discourse.julialang.org/t/ann-symbolics-jl-a-modern-computer-algebra-system-for-a-modern-language/56251/51 "2021-03-06T02:47:07Z")

</div>

> [@fgerick](#):
>
> Isn’t this exactly what @rfateman is trying to warn against? As I understand
> 
> > [@rfateman](#):
> >
> > the barriers that should have been examined earlier
> 
> there are limitations that cannot be thought out later? Seeming to be detailed technical points far from the high level functionality turn out to be breaking progress in exactly that high level interface?

Think about this comment a little bit deeper. We’ve read the literature (of course), and now it’s saying don’t try anything until you know you have a plan that won’t fail at anything? Isn’t that a little crazy?

Instead, we are building something based off of the current literature that already is solving problems in cases where the previous tools we hooked up with failed (we have set ModelingToolkit.jl up with SymPy, SymEngine, and REDUCE already before starting a CAS, all of those had failed to do what we needed before this had succeeded). Will we have gotten everything right the first time? No, in fact we’re already onto our 3rd underlying representation, now hitting benchmark speeds on par with SymEngine (which itself [benchmarks really well](https://github.com/symengine/symengine/pull/579)), with an extensible rule-based system that supports non-commutative algebras. We may have to tweak it again, and making a higher level that is robust to such changes is just good smart coding. Remember, we’re only in year 2 of what is a 30 year journey.

---

_[View the full topic](https://discourse.julialang.org/t/ann-symbolics-jl-a-modern-computer-algebra-system-for-a-modern-language/56251)._
