I’ve used Mathematica at university, it’s so great! Creating fractals, animations and so on is so easy and intuitive.

The problem though is that Wolfram is a walled garden. When you think about integrating it in an enterprise environment, you get hit by such high costs, it stops making sense. Imagine if they open sourced it, I feel like their products have so much utility, buried deep down Wolfram ecosystem and conventions.

It doesn't make sense even for academia. Reproducibility is an issue and as we've seen with recent fraudulent claims in major publications - it's what is going to be used for verification of research.

Many years back while in grad school I could not reproduce a result from a paper. Thankfully they had provided the data as public but not the code. I emailed the authors and got some matlab code back. My university didn't have a matlab subscription. Octave saved me there since the syntax is similar.

But with something like mathematica and the price of it you will never be able to have a wide verification of the result if the software is not free.

Also, a lot of things in industry gain traction first in academia (especially math tools). So unless academic traction is dealt with mathematica's headway in industry will remain limited. They are still a profitable company. So I'm guessing there are deep pocketed clients who purchase the tooling.

The situation you’re describing is probably why Python is the defacto language of Machine Learning to this day.

I've noticed an increase in Rust, and I just googled it (for whatever that's worth) it seems to be #2 tied with C++ wont be surprised if it surpasses C++ and eventually gets tied with Python.

CUDA Oxide is only at 0.2, and NVidia has almost two decades to catch up, same with other "Python" frameworks that are basically bindings to C++ frameworks.

Even the Python GPU JITs only started to be invested seriously by the big three last year.

It will take a while.

As opposed to what?

Mathematica or MATLAB

This problem is very visible in Physics with software such as COMSOL, which many papers use. The licenses are so crazy expensive, that verifying any paper is difficult.

Mathematica has a lot of clients in math and engineering. Traditionally these clients are not so concerned about software engineering issues you mention. What Mathematica offers also makes sense for small firms with a few engineers, because they can leverage their vast amount of ready to use functions and libraries. But I agree that for medium to large size companies it stops making sense.

True but also for a one of piracy exists just use a cracked copy of it and be done with it

Not practical in research. Doesn't solve the blackbox reproducibility problem. Also it makes the act of publishing a paper under your name practically a crime confession, as it's easy for companies to comb the literature to seek people publishing results obtained with software X without a license.

How do you run cracked/pirated copies of software? I stopped pirating software decades ago due to malware risks.

Download the installer itself in the official way. Run the keygen in a virtual machine.

[dead]

[deleted]

Here are some alternatives (some internally use free Wolfram engine):

Reimplementation in Rust: https://github.com/ad-si/Woxi

WLJS Notebook: https://wljs.io

VS Code extension: https://github.com/vanbaalon/wolfbook

There is also SageMath and Mathics. Not replacements but close.

> Reimplementation in Rust

It's so disappointing to see CLAUDE.md in projects like these. Basically rules it out for serious use.

Author here: I absolutely do not understand this mindset. It has almost 20K unit tests by now and hundreds of full end-to-end tests of complicated scripts to ensure it works and matches the output of Wolframscript. Why does it matter that I was using Claude to help me implement it?

https://github.com/ad-si/Woxi/tree/main/tests

Spot checking, I don't see any issues.

e.g. https://github.com/ad-si/Woxi/blob/main/tests/list_tests.rs

  #[test]
  fn first() {
    assert_eq!(interpret("First[{1, 2, 3}]").unwrap(), "1");
    assert_eq!(interpret("First[{a, b, c}]").unwrap(), "a");
    assert_eq!(interpret("First[{True, False, False}]").unwrap(), "True");
  }

Are they 20k unit tests or sloppy tests? Would 100k unit tests make it better?

My issue is that Mathematica is essentially a term rewriting system. Reimplementing everything in Rust seems to go against the idea. The derivative computation is 400 lines of Rust and could be 20 lines of Mathematica code.

My theory is that writing as much as possible in Rust will improve performance and produce higher-quality code due to Rust's static typing. So far, it's been working well, but the final verdict is still out.

I have not looked at the implementation but isn't the idea to write a Lispy language in Rust (in other words, Mathematica the language) and then write the differentiation and other routines in that.

They had to patch the Rust compiler to natively support AutoDiff.

Contrast with Julia where it can be a regular Julia library,

I mean you can do autodiff with a regular library in Rust. Enzyme is just a very specific type of autodiff which transforms after some compilation has taken place.

I don't know that you can match something speedwise like a JIT or Expression Templates in rust though without using something like Enzyme.

No, they're implementing all functions, all matching etc. in Rust.

Will that be faster? Seems like it should be a lot faster.

I see.

AI has a tendency of "just make it pass!" (which to be fair you also sometimes see from junior human devs - maybe where it learnt from!). Remember that C compiler which didn't even do basic error checking because that wasn't checked by the test suite?

A very young project written by AI means you haven't reviewed the code and nobody has used it in anger. It might work perfectly, but my experience of AI so far says that it won't.

It could very well be 20K slop tests

True but on the other hand it is really impressive how Stephen Wolfram managed to build a viable company around scientific software.

Impressive indeed, but it makes sense if you call it "Wolfram-Jupyter" and you notice the guy made it 20 years before it was cool.

Basically he did it by developing the first version of Mathematica when he was a professor at the University of Illinois. They were not pleased (although they've settled since and Wolfram is still headquartered in Champaign-Urbana near the campus)

Wolfram is $4000/seat for a perpetual commercial license with support. [1] $4000 will only buy a middling Mac Tool tool chest…and not the tools to put in it.

[1] a personal perpetual license is only $400.

Cost goes down significantly for subsequent years personal. Currently at less than $200 yearly.

Unless you need System Modeler, in which case add another $576 perpetual + $260 annual.

There is a combined license for Mathematica + System Modeler, but it's "Contact us for pricing". Mind you, that's still on the Hobbyist tier. You cannot use its output for anything commercial.

Contrast with Julia's MTK/Dyad that are free for non-commercial use.

Do they still offer a free license on Raspberry Pi?

Not just on Raspberry Pi, wolfram scripting engine is free and works on windows or mac too. You lose the notebook interface, but if you're just using it as a calculator, it does the job.

Oh that would make a great mcp

You can also emulate a Pi using QEMU to run Mathematica (slowly!) on other platforms, see e.g.

https://www.thelinuxvault.net/blog/how-to-run-the-raspberry-...

on a Mac you should be able to emulate it pretty quickly since it's arm to arm

Last anyone tried that in earnest, the binary executable formats were of course incompatible and there were hardware checks.

I loved Mathematica. I was so sad about having to use Python math packages in industry.

Wolfram did have Visual Studio API integration at one point, and it was useful reducing algorithmic symbolic design complexity. However, it was mostly the academically controversial assumptions that Mathematica makes that undermined its credibility in many faculties.

For example, when digging into GNU Octave you will find many of its libraries were built on peer reviewed legacy code provably reproducible with prior aerospace published works.

The problem with closed source academic programs isn't features or even quality, but rather one of traceable Metrology and scientific rigor. =3

Most scientific fields have no problem using SAS or STATA or other black box code. I don't think that explains Mathematica's problems.

Indeed, likely negatively correlated with other behavioral phenomena =3

https://www.statista.com/chart/4111/do-europeans-wash-their-...

I'm aways surprised that there's no open source language that provides everything you get with Wolfram language. For example, the level of pattern matching you can use when defining functions, as well as the high level of functional composition. It is like having a mix of APL, Lisp, and Prolog that is very productive to use.

From a strict PL perspective, the Wolfram/Mathematica language is rather based on a term rewriting paradigm. The languages Maude, Pure and TXL would be examples of something that's broadly comparable but more generic. In general, it turns out to be a fairly niche paradigm that's not very useful outside of symbolic computing itself, or related fields such as modeling of PL syntax and compiler internals.

There is Mathics: https://mathics.org/

It doesn't cover the full standard library of Mathematica but the syntax is very similar and a lot of functionality is there.

Wolfram language is the easy part to implement

Its standard library is almost impossible to reproduce in its enterity

If those libraries were like regular code that got published to Github or something like that.. like pypi or npm or crates.io or whatever. And if mathematica had a lean standard library. It would be very feasible to implement a clone that's basically compatible

I mean. Depending on just wolfram rather than random open source contributors has benefits, for example it's more resistant to supply chain attacks. Indeed the npm model is not good. But, it is open, and that's what enabled for example deno and bun to have some compatibility with node

kimi reproduce this standard lib, make no mistakes

Tbh I fully expect someone to get the proprietary Mathematica code and somehow launder it through LLMs and pretend whatever outuput is not legally a derivative work from the original code, and then does not need to be bound by Mathematica license and can be its own open source project

Like the following dudes who are doing this, but to a project that is already open source (git):

https://news.ycombinator.com/item?id=48468904

Except that Wolfram would of course sue and we might as well see what the courts has to say about this topic

> "...the level of pattern matching you can use when defining functions, as well as the high level of functional composition..."

This sounds like your average functional programming language. The Scicloj community is the first thing to come to mind (but I assume they don't do symbolic algebra/calculus like Mathematica does), but I don't know what you're specifically missing.

IT doesn't even need to be open source, a walled garden that you can afford is perfectly fine. Someone's going to find the cracks in the wall anyway.

But a walled garden that costs $400 for personal use (we're ignoring yearly licensing, because f that noise) is utter nonsense, and the clearest sign you have no idea how to sell and then upsell products to users over the course of several years.