Woxi: Wolfram Mathematica Reimplementation in Rust
138 points
2 days ago
| 7 comments
| github.com
| HN
the__alchemist
2 hours ago
[-]
I love Rust for mathematical and scientific tasks (I am building the structural bio crate infrastructure), and I love Mathematica and have a personal sub. I should be the audience, but... What makes Mathematica great, IMO, is the polish and overall experience created by consistent work with applications in mind over decades. So, I look at this project with skepticism regarding its utility.
reply
adius
1 hour ago
[-]
Sure, but you've got to start somewhere! And with the amount of progress I was able to make in just a few weeks, I'm very optimistic that the polish will come sooner rather than later.
reply
the__alchemist
1 hour ago
[-]
Based on the list of contributors to your project, I am not sure this starting location is optimally suited to the task of building a foundation for polished, reliable, expandable software.
reply
adius
1 hour ago
[-]
It's having ~ 5000 tests already. Used correctly, AI agents can help you improve the quality of the code!
reply
the__alchemist
1 hour ago
[-]
Do you see why this perspective is a red flag on its own?
reply
ComplexSystems
51 minutes ago
[-]
I certainly don't. If a software developer has found a way to use these tools that works well for them and produces good results, that's a good thing.
reply
mountainriver
58 minutes ago
[-]
No I don’t, review your code
reply
supriyo-biswas
25 minutes ago
[-]
If I go by the contributor numbers on Github, I see Claude has committed something on the order of 300,000 lines of code. I don't think it's reasonable to review that much code, even in weeks worth of time.
reply
copperx
1 hour ago
[-]
God help us.
reply
s3p
1 hour ago
[-]
The sneering on HN really has no end. This is a good project! I for one am very excited to see an interpreter born out of rust.
reply
mountainriver
59 minutes ago
[-]
It’s so obnoxious
reply
rustyhancock
1 hour ago
[-]
Similarly I'm not sure Octave ever really got that polish to compete with MATLAB.

SPSS is hilariously painful to use. Still it's only losing ground ever so slowly. PSPP remains almost unheard of among SPSS core users.

reply
3eb7988a1663
30 minutes ago
[-]
I am not sure Octave ever had to put on that much polish. It just had to be decent enough to save $$$$ vs a Matlab license. If it can drop-in run the code that has been keeping the lab going for decades, good enough.
reply
gmueckl
11 minutes ago
[-]
MathWorks offers a huge list of "toolboces", domain specofic extensions that cover a lot features inneach domain. Replacing Matlab isn't about the core language alone.
reply
amelius
2 hours ago
[-]
Yeah, the Mathematica language is the least interesting aspect of the Mathematica system. Closely followed by the interactive notebooks.
reply
stared
1 hour ago
[-]
The notebooks were THE thing of Mathematica, at least to me. 12 years ago, as I was finishing my PhD in quantum optics, I wanted to migrate to the stack used in industry - and picked Python. Also, that way I was an early adopter of Jupyter Notebook, as it captured what was need + was open.

Now Mathematica notebooks (still remember, it is .nb) do not have the novelty factor. But they were the first to set a trend, which we now take for granted.

That said, I rarely use notebooks anymore. In the coding time, it is much easier to create scripts and ask to create a visualization in HTML.

reply
aeonik
1 hour ago
[-]
I disagree, the language itself is one of the more elegant parts of the system, and enables a lot of the rest of the elegance.

From a purely programming language theory, it's pretty unique.

I once tried to find a language that had all the same properties, and I failed. The Factor language is probably the closest. But they are still pretty different.

reply
zozbot234
1 hour ago
[-]
The relevant programming paradigm is string/term rewriting, which is featured in other programming languages such as Pure. It seems to have few direct applications outside of symbolic computing itself, compilers and related fields such as PL theory. (Formal calculi and languages are often specified in PL theory as rewrite rules, even though the practical implementation may ultimately differ.)
reply
s3p
1 hour ago
[-]
First I believe there is no such thing as the Mathematica language, it's Wolframscript which is useful in a bunch of different applications. And second, if you don't have access to a $1000 / yr wolfram subscription, this would be the next best thing.
reply
adius
39 minutes ago
[-]
They rebranded it to Wolfram Language a few years ago (which I actually appreciate, as it is so much more than just "math" by now!)

https://writings.stephenwolfram.com/2013/02/what-should-we-c...

reply
anandijain
56 minutes ago
[-]
This is cool! I've always wanted a polished kernel on the terminal. I spent a lot of time a few years ago writing my own Wolfram Kernel. It was a blast to understand how a pattern matching (symbolic) language is implemented.

https://github.com/anandijain/cas8.rs

reply
adius
2 days ago
[-]
Hi, I'm the main developer. We're steadily getting closer to the next release which will support most features of Mathematica 1.0 plus some of the most popular newer functions (> 900 overall!). AMA!
reply
egl2020
1 hour ago
[-]
There's a mystique around Mathematica's math engine. Is this groundless, or will you eventually run into problems getting correct, identical answers -- especially for answers that Mathematic derives symbolically? The capabilities and results of the computer algebra systems that I've used varied widely.
reply
adius
1 hour ago
[-]
Hard to tell honestly. So far there was always some surprisingly straight forward solution If had any problems with the math engine. There is actually a lot of public research how equations can be solved/simplified with computer algorithms. So I'm optimistic. I also stumbled upon a few cases where Mathematica itself didn't quite do things correctly itself (rounding errors, missing simplifications, etc.). So maybe it's actually a little overhyped …
reply
Y_Y
20 minutes ago
[-]
I also found problems with integrating some obscure functions a few years black, though IIRC the issue was remedies by using the amazing Rubi package:

https://rulebasedintegration.org/

reply
cs702
2 hours ago
[-]
Thank you for sharing this on HN.

It's a worthwhile effort. If successful, Woxi can enable a large mass of scientists and engineers who don't have access to Mathematica to run legacy code written for it. Also, Woxi would give those scientists and engineers who regularly use Mathematica a non-proprietary, less restrictive alternative, which many of them would welcome.

How does Woxi compare to other "clean-room implementations"[a] of the same language?

--

[a] Please check with a lawyer to make sure you won't run into legal or copyright issues.

reply
utopiah
2 hours ago
[-]
Interesting, thanks for sharing. Naive question as I'm not familiar with Mathematica much (but aware of it and Wolfram Alpha and related tools), how does it compare to e.g. Jupyter or Julia or maybe another language (with its framework) that might be even closer?
reply
adius
1 hour ago
[-]
I think Wolfram Language is just so much more ergonomic. No need to import dependencies - everything's included and consistent, very readable - yet compact - syntax, less gotchas than Python, R, etc., sensible default, …
reply
Y_Y
14 minutes ago
[-]
Ymmv, but I've found that you sure do need to import things eventually, and it's not so ergonomic because most projects just end up as mega-notebooks.

Just like Python or any other language that looks easy for the learning examples, there are still hairy bits, they're just better hidden. The difference is that the debuggers for Python are far better.

Mathematica is great for quick stuff, but once you hit a particular level complexity it goes crazy. In this regard I find it similar to Bash.

reply
muizelaar
3 hours ago
[-]
How does it compare to mathics?

How close is it to being able to run rubi: https://rulebasedintegration.org/?

reply
disentanglement
3 hours ago
[-]
You can find the whole integration routine here https://github.com/ad-si/Woxi/blob/36343ab2cbc97e5081f7c811e.... It's essentially a test mock-up (not even trying partial fraction decomposition for rational functions).
reply
apetresc
3 hours ago
[-]
What percentage of the overall code was written primarily by agents?
reply
cs702
2 hours ago
[-]
reply
foobarqux
1 hour ago
[-]
How is the popularity/rank in functions.csv determined?
reply
adius
1 hour ago
[-]
That's actually a value that Wolfram determines themselves. Here is the documentation for it: https://reference.wolfram.com/language/ref/WolframLanguageDa...

Here is e.g. all the values for the Plus[] function:

$ wolframscript -code 'WolframLanguageData["Plus", "Ranks"]' {All -> 6, StackExchange -> 8, TypicalNotebookInputs -> 5, TypicalProductionCode -> 6, WolframAlphaCodebase -> 6, WolframDemonstrations -> 4, WolframDocumentation -> 4}

reply
foobarqux
1 hour ago
[-]
Have you considered using quickcheck/random/property-based testing with LLM code generation to automate function implementation?
reply
adius
27 minutes ago
[-]
Yeah, I've already looked into it, but decided to keep developing it "example driven" for now. Aka I'm playing around with it, and whenever I find something that's broken I keep a note of it and then I pick those notes one by one and implement them. Once the most common things are implemented I will start writing property tests to catch all the edge cases of each feature.
reply
dist-epoch
2 hours ago
[-]
Why would I use this and not Wolfram Script?

Better license? Allowed for commercial operations?

reply
adius
1 hour ago
[-]
Exactly! And:

- Faster startup time because of no license check

- Can run multiple instances of Woxi at the same time

- Embeddable via WASM

- Configurable via compile time flags (which features should be included)

- …

reply
WillAdams
1 hour ago
[-]
For folks who are considering passing, note that there is a "Jupyter Lite" mode in addition to "Woxi Studio" --- seems very promising and the former addressed my first concern out-the-gate.
reply
esafak
1 hour ago
[-]
I wonder if it would make a good Zeppelin interpreter. https://zeppelin.apache.org/
reply
adius
55 minutes ago
[-]
Oh cool, haven't heard of this before. Could be a good fit - I'll have to try it out some day!
reply
fnord77
1 hour ago
[-]
vibe coded?
reply
adius
1 hour ago
[-]
Such a massive undertaking would be almost impossible without AI agents, so yeah, they help me. But with around 5000 tests, they are actually helping to improve the software quality!
reply
throawayonthe
1 hour ago
[-]
are all the tests hand written or are some agent-contributed? curious
reply
mountainriver
56 minutes ago
[-]
What’s the difference if you review the code getting merged?
reply
i_cannot_hack
15 minutes ago
[-]
Reviewing the correctness of code is a lot harder than writing correct code, in my experience. Especially when the code given looks correct on an initial glance, and leads you into faulty assumptions you would not have made otherwise.

I'm not claiming AI-written and human-reviewed code is necessarily bad, just that the claim that reviewing code is equivalent to writing it yourself does not match my experience at all.

reply
tempest_
8 minutes ago
[-]
Plus if you look at the commit cadence there is a lot of commits like 5-10 minutes a part in places that add new functionality (which I realize doesn't mean they were "written" in that time)

I find people do argue a lot about "if it is reviewed it is the same" which might be easy when you start but I think the allure of just glancing going "it makes sense" and hammering on is super high and hard to resist.

We are still early into the use of these tools so perhaps best practices will need to be adjusted with these tools in mind. At the moment it seems to be a bit of a crap shoot to me.

reply
throawayonthe
7 minutes ago
[-]
i mean idk that's sorta like asking what's the difference of having tests if you review the code getting merged
reply
tock
54 minutes ago
[-]
Did you actually review 313,397 LOC written by claude? And you wrote the tests? That's honestly very impressive if yes.
reply
downboots
2 hours ago
[-]
Great! Math tools for everyone.

what's stopping some Mathematica employee from taking the source code and having an agent port it. Or even reconstruction from the manual. Who owns an algorithm?

Will everything get copied eventually?

reply
adius
1 hour ago
[-]
According to https://en.wikipedia.org/wiki/Lotus_Development_Corp._v._Bor...., a software clone does not infringe software copyright. So yeah, I'd guess sooner or later everything is going be cloned …
reply
MengerSponge
1 hour ago
[-]
> what's stopping some employee from something like Mathematica from taking the source code and having an agent port it to open source

Laws against theft. Also the same reason employees don't release the code on pastebin or something.

> Who owns an algorithm?

The org or person who was granted the software patent. https://en.wikipedia.org/wiki/Software_patent

> Will everything get copied eventually?

If we're lucky. More likely everything bitrots as technical capabilities are lost. Slowly at first, then quickly.

reply
Y_Y
12 minutes ago
[-]
Which patent are you referring to?
reply
downboots
1 hour ago
[-]
reply