Hey Konrad - I'm Declan, I make calculang! I'm glad you looked!
I think JS is an implementation detail - a small one in fact, because implementing calculang is absurdly simple e.g. I have a new 500 line compiler that runs in the browser; only missing modularity.
There are no millions of LOC; just simple rules that we can implement anywhere or for different language targets.
The rest of it is just about not making a mess! The main thing I want to draw attention to with calculang now is about separating numbers from programming. I think we should have higher expectations about numbers: about our ability to see their workings and interact with them to understand them.
Also manipulate/develop them in flexible and expressive ways (not locked to layout - not a spreadsheet).
So, we need to separate things.
Another important part is about sharing workings and numbers.
For many of these bits JS is quite ideal.
But the execution model is incredibly naive due to recurrances (call stack pressure).
This is the same for many language targets. When I know a really good target, it might lead to a new implementation.
But in the meantime it means thinking carefully about if a problem can be solved or simplified sufficiently. Lots of practical stuff can't, but I'm deciding - at least for a while - to embrace this fact and focus on simple things.
Like simplified things for teaching about a thing (things for teaching happen to be simple already! <3 ), or like important financial things like mortgages or pensions - but for 1 individual and not for 10M customers.
In this space I haven't often rubbed against barriers in JS Math stack. An example of when I did is when last Pi day I wanted to calculate 17 significant digits of Pi, but then I was able to break free by using... a JS library :)
https://observablehq.com/@declann/its-pi-day