5 ms·
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
by adius 7mo 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!
- apetresc 7mo agoWhat percentage of the overall code was written primarily by agents?
- cs702 7mo agohttps://github.com/ad-si/Woxi/graphs/contributors https://github.com/ad-si/Woxi/graphs/contributors
- muizelaar 7mo agoHow does it compare to mathics? How close is it to being able to run rubi: https://rulebasedintegration.org/ https://rulebasedintegration.org/?
- disentanglement 7mo agoYou can find the whole integration routine here https://github.com/ad-si/Woxi/blob/36343ab2cbc97e5081f7c811e2dd15a2da5c67f4/src/functions/calculus.rs#L629 https://github.com/ad-si/Woxi/blob/36343ab2cbc97e5081f7c811e.... It's essentially a test mock-up (not even trying partial fraction decomposition for rational functions).
- anematode 7mo ago// ∫ tan(x) dx = -ln|cos(x)| - not implemented (requires Log) This really doesn't bode well... I'm no expert in CASes, but everything I've looked at seems very naive. Vibe coding a Mathematica replacement makes zero sense to me.
- anematode 7mo agoReported a few issues, e.g. https://github.com/ad-si/Woxi/issues/16 https://github.com/ad-si/Woxi/issues/16
- cs702 7mo agoThank 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.
- utopiah 7mo agoInteresting, 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 7mo agoI 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, …
- Y_Y 7mo agoYmmv, 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.
- robotpepi 7mo agoI'd add the pattern matching syntax. it's so natural for a mathematician.
- dist-epoch 7mo agoWhy would I use this and not Wolfram Script? Better license? Allowed for commercial operations?
- adius 7mo agoExactly! 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) - …
- redbluered 7mo agoLicense 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.
- foobarqux 7mo agoHow is the popularity/rank in functions.csv determined?
- adius 7mo agoThat's actually a value that Wolfram determines themselves. Here is the documentation for it: https://reference.wolfram.com/language/ref/WolframLanguageData.html 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}
- egl2020 7mo agoThere'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 7mo agoHard 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 …
- Y_Y 7mo agoI 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/ https://rulebasedintegration.org/
- redbluered 7mo agoScmutils 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 7mo agoMathematica gets incorrect answers quite frequently.
- foobarqux 7mo agoHave you considered using quickcheck/random/property-based testing with LLM code generation to automate function implementation?
- adius 7mo agoYeah, 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.
- foobarqux 7mo agoI'm saying you can go even further and automate the entire thing using LLMs/agents, it is pretty much the ideal use case: you have a black-box reference implementation to test against; descriptive documentation for what the functions should do; some explicitly supplied examples in the documentation; and the ability to automatically create an arbitrary number of tests. So not only do you have a closed loop system that has objective/automatic pass-fail criteria you also don't even have to supply the instructions about what the function is supposed to do or the test cases! Obviously this isn't going to be 100% reliable (especially for edge cases) but you should be able to get an enormous speed up. And in many cases you should be able to supply the edge case tests and have the LLM fix it. (Codex is still free for the next few days if you want to try their "High"/"Extra high" thinking models)
- thrtythreeforty 7mo agoYou accidentally raise an interesting point: good, thorough public documentation, once considered a great selling point for your system, now invites automated reimplementation by competition. It would be a shame to see public docs vanish because it turns out they are literally machine readable specs.
- pwdisswordfishy 7mo agoLSP?
- adius 7mo agoNot yet, but on the roadmap!
- jacquesm 7mo agoWhat is your plan for long term support?