Man, I miss Wolfram Language. Once you've twisted your brain a little to grok its usage, it's such an incredibly high-value tool, especially for exploration and prototyping. I saw it more as a do-anything software tool for researchers rather than as a language aimed at programmers, so I put on a researcher hat and tried to forget everything I knew as a professional programmer, and had a few memorable seasons with it around 2016-2020. I remember calculating precisely which days of the year would cause the sunlight to pass through a window and some glass blocks in an internal wall, creating a beautiful light show indoors. It only took a couple of minutes to get a nice animated visualisation and a calendar.
Nowadays I'd probably just ask Claude to figure it out for me, but pre LLMs, WL was the highest value tool for thought in my toolbox.
(Edit: and they actually offer perpetual licenses!)
The power of the language came from the concise syntax (I liked it more then classical LISPs) with the huge library of Mathematica. When Python is "batteries included", Mathematica is "spaceship included".
If this was open sourced, it had the potential to severely change the software/IT industry. As an expensive proprietary software however, it is deemed to stay a niche product mainly for academia.
As discussed on another thread, the outcome is poorly tools glued together, due to lack of roadmap and polish that commercial software usually supports, instead of volunteers coming and going, only caring for their little ich.
I’m not sure about that. I used to use LabView and its various libraries often. The whole thing felt scattered and ossified. I’d take a python standard library any day.
Commercial software polish is lipstick on a pig. A pig that will never be anything else and will eventually die as a pig.
Ugly os software at least has potential to grow internally. Long lived commercial software is a totting carcass with fresh coat of paint every now and then.
Yet, the Year of XYZ software seldom comes, the usual cheering of tools like Blender, often forgets its origin as commercial product and existing userbase.
Someone has to pay the bills for development effort, and when it based on volunteer work, it is mostly followers and not innovators.
There's nothing wrong with commercial software being the origin. What's a crime is that it can stay commercial. Source code should enter public domain in a decade at most.
> What's a crime is that it can stay commercial. Source code should enter public domain in a decade at most.
In many cases, people are free to write their own implementation. Your claim " Source code should enter public domain in a decade at most." means that every software vendor shall be obliged after some time to hand out their source code, which is something very strong to ask for.
What is the true crime are the laws that in some cases make such an own implementation illegal (software patents, probitions of reverse-engineering, ...).
> If this was open sourced, it had the potential to severely change the software/IT industry.
As an engineering undergrad I had a similar feeling about Matlab & Mathematica.
Matlab especially had 'tool boxes' that you bought as add-ons to do specific engineering calcs and simulations and it was great, but I almost always found myself recreating things in python just because it felt slightly more sane to handle data and glue code.
Pandas and Matplotlib and SciPy all used via an ipython notebook were almost a replacement.
Well, that doesn't sound too bad. But this is a high enough barrier for Mathematica to not see wide spread use.
I don't remember what the pricing has been throughout the years. But I do remember that for some of the time I couldn't really afford Mathematica. And the license I wanted was also a bit too expensive to justify for a piece of software that only I would be using within an organization.
Because it is also about enough other people around you not being able to justify the expense. And about companies not wanting to pay a lot of money for licenses so they can lock their computations into an ecosystem that is very small.
Mathematica is, in the computing world, pretty irrelevant. And I'm being generous when I say "pretty": I have never encountered it in any job or even in academia. People know of it. They just don't use it for work.
It would have been nice if the language and the runtime had been open source. But Wolfram didn't want to go in that direction. That's a perfectly fine choice to make. But it does mean that as a language, Mathematica will never be important. Nor will knowing how to program in it be a marketable skill.
(To Stephen Wolfram it really doesn't matter. He obviously makes a good living. I'm not sure I'd bother with the noise and stress coming from open sourcing something)
I definitely get the impression that Wolfram builds his tools primarily for himself, and is happy to let other people play with them because that way he gets money to pay for them.
> And I'm being generous when I say "pretty": I have never encountered it in any job or even in academia. People know of it. They just don't use it for work.
To my knowledge, at least in academia, Wolfram (Mathematica) seems to be used quite a bit by physicists. Also in some areas of mathematics it is used (but many mathematicians seems to prefer Maple). Concerning mathematical research, I want to mention that by now also some open-source (and often more specialized) CASs seem to have become more widespread, such as SageMath, SymPy, Macaulay2, GP/PARI or GAP.
That's exactly the same analogy I used to use, although I said "nuclear reactor included" - spaceship is better, it implies less danger and more expanded horizons!
Interesting. I have always felt I am missing out on not using tools like Mathematica or MatLab. I see some people doing everything using MatLab, including building GUI and DL models, which I found surprising for a single software suite, and - nowadays - one that is quite affordable (at least the home edition).
Mathematica seems a little pricey but maybe it would motivate me to learn more math.
I would love to read what non-mathematicians use MatLab, Mathematica, and Maple for.
MatLab was taught and used extensively at my university, and has many strong sides and a fantastic standard library. We used it mainly for physics and robotics calculations. The licenses are (were?) prohibitively expensive outside of academia though. Hard to compete with free Python + NumPy and a larger talent pool.
Yeah, I was one of those schmucks that used sympy / python instead of mathematica in my physics coursework. Policy was "mathematica is recommended and supported, but you can bring your own tools if you want to and can make them work."
In retrospect, doing the work in mathematica would have probably stretched my brain more (in a good way!) since it provides a different and powerful way of solving problems vs other languages...maybe I'll have to revisit it. Perhaps even try advent of code with it?
While python did get the job done, it feels like the ceiling (especially for power users) is so much higher in mathematica.
I'm a non-mathematician and I used it for lots of novel stuff - GIS, visualisations of all kinds, machine learning. The Wolfram Community staff picks is a great introduction into the varied things you can do: https://community.wolfram.com/content?curTag=staff%20picks
I used mathematica for real last time in SGI days and loved it. I know probably a ton has changed since, but I do have to ask those that use it today if you'd still use it for non math-heavy (and even so) tasks if you have access to the wonderful world of python and jupyter / polars, R, and similar?
Mathematica is awesome for weird, one-off tasks in fields that I'm unfamiliar with, since the documentation is excellent, and the functionality is really broad (so I don't need to figure out how to install a specialty program for every one-off task). But for fields that I'm experienced with or tasks that I'm planning on running frequently, I'll usually just use Python, since most of the Python libraries have more functionality and run quicker than Mathematica.
(Mathematica is of course much better than Python at symbolic math, but this isn't what you are asking about)
I've had it installed on my laptop for over two decades, and I use it maybe once a year for actual work. Every time, it feels like cracking a walnut with a 500-ton press.
Mathematica is way, way under appreciated in industry, and even in the sciences.
Maybe with the power of a supercomputer, Mathematica can finally launch in less than 30s. I have no idea how a software that still does essentially the same thing as it did in 1988 can be that sluggish.
Sage Math? Though I admit, unlike homogeneous Mathematica, it's just a Python glue on multiple smaller projects of different quality and poorly integrated. I wish there was something more like the Wolfram software but there isn't.
I quite like Sage. Python is a much better language than Wolfram (yes, he named it after himself...). In Wolfram, there is no real scoping (even different notebooks share all variables, Module[] is incredibly clumsy), no real control flow (If[] is just a function), and no real error handling. When Wolfram encounters an exception, it just prints a red message and keeps chugging along with the output of the error'd function being replaced by a symbolic expression. This usually leads to pages and pages of gibberish and/or crashes the kernel (which for some reason is quite difficult to interrupt or restart). Together with the notebook format and the laughable debugger, this makes finding errors extremely frustrating.
The notebooks are also difficult to version control (unreadable diffs for minor changes), and unit testing is clearly just an afterthought. Also the GUI performance is bad. Put more than a hand full of plots on a page, and everything slows to a crawl. What keeps me coming back is the comprehensive function library, and the formula inputs. I find it quite difficult to spot mistakes in mathematical expressions written in Python syntax.
Different languages are better at different things, so it rarely makes much sense to say that one language is better than another in general. Python is definitely much better than Mathematica for "typical" imperative programming tasks (web servers, CLI programs, CRUD apps, etc.), but Mathematica is much better at data processing, symbolic manipulation, drawing plots, and other similar tasks.
> there is no real scoping (even different notebooks share all variables, Module[] is incredibly clumsy)
Scoping is indeed an absolute mess, and the thing that I personally find the most irritating about the language.
> no real control flow (If[] is just a function)
You're meant to program Mathematica by using patterns and operating on lists as a whole, so you should rarely need to use branching/control flow/If[]. It's a very different style of programming that takes quite a while to get used to, but it works really well for some tasks.
> no real error handling
For input validation, you should use the pattern features to make it impossible to even call the function with invalid input. And for errors in computation, it often makes the most sense to return "Undefined", "Null", "Infinity", or something similar, and then propagate that through the rest of the expression.
> The notebooks are also difficult to version control (unreadable diffs for minor changes)
Mathematica notebooks tend to do slightly better with version control than Jupyter Notebooks, although they're both terrible. You can work around this with Git clean/smudge filters, or you can just use ".wls"/".py" files directly.
Fully agreed. I have never seen a programming language which is so badly designed as Wolfram. I really wish there was another way to access all of Mathematica's functionality with a more sane interface.
Prob I am a very small minority here, but I used Maple a lot in the past and I liked it a lot. More standard syntax than mathematica, and overall much much easier to debug. In particular, as far as I remember, maple allowed for more transparency in the mathematical methods used in some computation than mathematica, as I could just see what it was doing exactly when an unexpected result came or I wanted to understand some method. When you work a lot with integrals, limits and special functions there is always a shit ton of assumptions and cases all over the place, and if something is missed somewhere the computation can just get wrong. There were some few times I would actually get wrong results in mathematica. When the language is more like a black box, it is hard to know what happened.
Yes, I didn't think so. So again, why do you want an alternative? Is there something about Mathematica you don't like, but think an alternative would do better?
Ok, I agree with you. I own a copy of Mathematica myself. This topic just very much interests me, because there is this dilemma with this kind of software (I am working on something like that myself): It is so much work, you need to charge for it; on the other hand, for widespread adoption it probably needs to be open-source. What do you do?
I think it's an extreme example of not-invented-here syndrome. In many ways that leads to interesting novelties, and in others it leads to not having undo/redo until the 2010s.
Yes this is an all a bit quirky and nuanced but when you get into it these things are really good. It’s refreshing to see some really smart folks just focused on doing great things without blinding from VCs and MBAs pushing another hacky quick way to make a buck and cash out.
I really like this way of introducing a new feature/service. Straight to the point, explains what it does, which problem it solves, gives practical examples and walks the reader through them. So many times when I read about a new feature/service I am left with more questions than I had started with, but this was great!
One of the more interesting things about WL is that Stephen Wolfram is really a genuine daily user of the software his company makes and he's the final say on what ships and in what form. They used to livestream his meetings reviewing potential new features on Youtube, an interesting watch. It didn't make me want to work there but I did feel like he cared very much. Quite Jobsian, dare I say.
So "use our proprietary service to scale our proprietary language" is a great pitch for people who are already all in. Increasing spend among existing customers won't help you get new ones though. And it kind of feels like a prelude to nerfing non-cloud based usage.
Typical example of a extraction/exploitation mentality where innovation would be better. Wolfram is in an amazingly good spot to spin up better "simulation as a service" if they would look at fine-tuning LLMs for compiling natural language (or academic papers) into mathematica semi-autonomously and very reliably. Mathworld is potentially a huge asset for that sort of thing too.
Huh. So Stephen finally discovered cloud computing (yes, I know about the hosted notebooks).
I played around with RemoteKernel some time ago (https://taoofmac.com/space/blog/2016/08/10/0830) but this is “better”, although I wish they’d make it hostable in your own cloud provider like materials simulation software and other things we see running in HPC clusters.
(I also ran Mathematica in a 512GB/128core VM once for kicks, but it’s just not cost-effective).
Just before I stopped using Mathematica they came out with that headless kernel, and I had wondered if you could spin it up on a Kubernetes cluster or something.
I've been using Mathematica since 1992 or so and at least for the last 20 years I've been wondering why they didn't provide cloud computing services, so that I can simply evaluate stuff remotely on a larger computer. So, I guess I should say "FINALLY!" :-)
I love this, too many people keep themselves busy discussing bits and bytes, or Stephen Wolfram's personality.
The reality is that by now we should already be at a level where common programming would be like Wolfram everywhere.
Maybe agents and LLM driven code generation is how we eventually get into the next abstraction level, sadly won't be without casualties with smaller team sizes, when so much can be automated away.
> The reality is that by now we should already be at a level where common programming would be like Wolfram everywhere.
What aspects of the Wolfram language should be everywhere? The easy access to lots of datasets? The easy access to lots of mathematical functions? CAS in general?
All of those, plus having an interactive graphical environment, debugging experience and optimisation when needed.
Basically the ideas of Smalltalk and Lisp Machine variations, that are still only partially available in modern IDEs, and proudly ignored by the "vt100 rules and vi first" minded devs.
Jokes and sales pitches aside. We kinda have that already, we platforms that allow us to run the same code on, x86, arm, wasm… and so on. It’s just there is no consensus on which platform to use. Nor should there be since that would slow progress of new and better ways to program.
We will never have one language to span graphics, full stack, embedded, scientific, high performance, etc without excessive bloat.
No. I work in VC backed startups. Externally they might say that for investors, but talk to a software engineer. Agentic IA is not working, it will regurgitate code from examples online, but if you get it to do something complex or slightly novel, it falls flat on its face.
Maybe it will someday be good enough, but not today, and probably not for at least 5 years.
With all the integrated standard functions Mathematica is such an incredible tool. We really need an open source version of it. Even if we implement only 10% of the features it would be already incredible useful.
I started working on an implementation in Rust called Woxi (https://github.com/ad-si/Woxi) and I hope to find some contributors, as it is such a gargantuan task!
Nowadays I'd probably just ask Claude to figure it out for me, but pre LLMs, WL was the highest value tool for thought in my toolbox.
(Edit: and they actually offer perpetual licenses!)
reply