top | item 47156906

(no title)

adius | 4 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!

discuss

order

cs702|1 day 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.

egl2020|1 day 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.

adius|1 day 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 …

redbluered|1 day ago

Scmutils from MIT does a very good -- arguably better -- job for correctness. No symbolic integration by ideology and not identical. Sussman and Terman. Amazing attention to detailand correctness. Claude could probably bridge Scheme to Wolfram.

I'm not sure how important but- for-bug identical output really is.

lupire|5 hours ago

Mathematica gets incorrect answers quite frequently.

utopiah|1 day 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?

adius|1 day 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, …

jacquesm|1 day ago

What is your plan for long term support?

foobarqux|1 day ago

How is the popularity/rank in functions.csv determined?

adius|1 day 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}

dist-epoch|1 day ago

Why would I use this and not Wolfram Script?

Better license? Allowed for commercial operations?

redbluered|1 day ago

License is a big deal, and not just for cost and openness, but also for practical use in pages like docker, ci/cd pipeline, cloud deployments, or other places licenses need to be dynamic.

adius|1 day 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)

- …

foobarqux|1 day ago

Have you considered using quickcheck/random/property-based testing with LLM code generation to automate function implementation?

adius|1 day 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.