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.
> 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.
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.
I once interned at a lab that used a piece of surely overpriced hardware that integrated with Simulink. You would make a Simulink model, and you’d click something and the computer would (IIRC) compile it to C and upload it to the hardware. On the bright side, you didn’t waste time bikeshedding about how to structure things. On the other hand, actually implementing any sort of nontrivial logic was incredibly unpleasant.
No not really, depending on the application Cpp or python has been the language of choice in the lab. Labview was used because it was seen as easy to make UIs for operators in production facilities, but even that was a regrettable decision. We ended up rewriting LV business logic in c# and importing it as a lib into a LV front end.
To be fair, "sundry tools poorly glued together" describes CAS and symbolic computation software in general, including Maple or Mathematica. It's surprisingly difficult to put a proper formal foundation (guaranteeing the absence of "wrong" or even outright meaningless results) even on very basic symbolic manipulations.
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, ...).
> every software vendor shall be obliged after some time to hand out their source code,
Obviously. Since software is as much vital to the modern world as water, making people who deal with it disclose implementation details is a very small ask.
Access to the market is not a right but a privilege. If you want to sell things we can demand things of you.
Infringing on that should be justified in terms of protecting the rights of those involved, such as ensuring the quality of goods, enforcement of reasonable contract terms and such. We are involved in the process as participants in the market, and that’s the basis of any legitimacy we have to impose any rules in the market. That includes an obligation to fair treatment of other participants.
If someone writes notes, procedures, a diary, software etc for their own use they are under no obligation to publish it, ever. That’s basic privacy protection. Whether an executable was written from scratch in an assembler or is compiled from high level source code isn’t anyone else’s business. It should meet quality standards for commercial transactions and that’s it. There’s no more obligation to publish source than there is to publish design documents, early versions, or unpublished material. That would be an overreaching invasion of privacy.
On what justification? You just want to take their stuff, because?
People shouldn’t lose their rights to what they own, just because they do so through a company.
I do think reasonable taxation and regulation is justifiable but on the understanding that it is an imposition. There is a give and take when it comes to rights and obligations, but this seems like overreach.
I see, you think actively preventing companies and individuals from interacting freely is the default. And it's a privilege allowed to?
Well I wonder who it is you think has the right to deny others the freedom to cooperate economically by default. Then, allow "privileges" so people can work together.
--
Aside from that moral upside-down world, what you are describing is a steep limit on copyrights, with forced source, i.e. trade secret, reveals.
So you are removing the huge incentives that copyright creates. If software were always trivial to build, or cost very little to build, that would not be problem. In real life, that would devastate software work, and we would all be poorer for it. Companies, individual software developers, and users.
> Obviously. Since software is as much vital to the modern world as water, making people who deal with it disclose implementation details is a very small ask.
The analogy would be ever-so-slightly more accurate if you said "software is as much vital to the modern world as beverages".
It would also be more accurate if all water was free.
Fortunaley hardware designs are routinely reverse engineered and cloned. Imagine the world where industrial designs were as hard to reverse engineer as clone in practice as software. Global GDP would be 10% of what it is. Largest economies of the world owe lion share of their development to cloned designs.
Not everyone buys into FOSS religion, especially when there are bills to pay, and too many people feeling entitled to leech on work of others and being paid themselves, or companies for that matter.
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)
> 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.
You're right -- the theoretical particle physicists at my faculty were using Mathematica very heavily when I was still in academia and maintained a dedicated compute cluster for it.
They really did not appreciate the debugging experience, but maybe that's improved in 15 years. :)
I've been at a few universities and labs as a postdoc, and a Mathematica license always came either as part of the University or the department. It might not be relevant in some disciplines, but generally I assume it must be used a lot to warrant such broad licensing (it is a tool I use daily as a theoretical physicist).
The Maple syntax may superficially seem easier but actually leads to more problems in practice. The point of the [ ] is that argument of a function is logically distinct from algebraically grouping terms in an equation. Also, Mathematica is a camel case language since underscore is for pattern recognition, hence the capitalization of function names. Personally, I’ve found every little Mathematica design feature to be incredibly well thought out, logical, and consistently implemented over the whole of the language.
It's not about good nor bad, but about the different trade-offs that these two CASs made. What is more important for you is something that you can only answer for yourself.
I actually loved this idea so much that every language I make, I try to do the same. The point of it is that typing ( requires shift, while [ does not. And you have no idea when you have tunnel syndrome, how much it hurts each time you write a (. While it’s ugly, the hand thanks you for it.
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.
That is not the impression, that is exactly why, And actually that is their strength. Back in the days the whole Apple was there to make software for Jobs and look how awesome that turned out. Wolfram is trying to complete tue work of Leibniz and create a universal calculus. A unifying language for symbolic computation, which is amazing.
While I'm not sure the particular price point is the biggest problem here, the student license pricing doesn't feel seem that great either. The language is hard enough to learn, and most students won't have time to figure out if they want to buy it with a 15-day trial. They'd probably need half a semester at the very least, unless it's a required part of the curriculum. In the rare case where a student is already familiar enough to know they want it, then four years of $75/year is $300... at that point they may as well just pay $390 for a perpetual personal license, so they can at least keep opening their files in the future.
That said, the parent was talking about it being expensive for use in industry. Personal and student licenses aren't relevant there.
My thought is that licenses were similarly cheap for historical programming tools like Turbo Pascal and Visual Basic. My dad got me Turbo Pascal for my birthday, for $39, after reading about it in the Wall Street Journal.
But it seems like the proprietary languages have all withered, regardless of price. Even $195 for Mathematica is an obvious concession to this trend. I don't ever remember it being that cheap.
I could write an essay on the benefits of free tooling, but enough has already been written. I'll spare you the slop. ;-)
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!
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.
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 and Python are in the same ballpark. Easy syntax and large standard library. Matlab provides a lot more dedicated libraries for niche areas but the overall experience feels the same.
Mathematica doesn't really have a standard counterpart. Jupyter notebooks try to capture the experience but the support for symbolic expressions makes the Mathematica experience very different.
Matlab is fundamentally not a great language. It's not great at interacting with data that isn't already blocks of numbers, it's terrible for UI design, and even for matrix manipulation numpy is beating it nowadays. The main reason to use it is if you really need something in one of the toolboxes that doesn't have an open-source equivalent, or for Simulink. As a general data processing language it's far from the best default.
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
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.
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.
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)
> Nowadays I'd probably just ask Claude to figure it out for me
Incidentally, Mathematica + LLMs make a great combination. If you take what is pretty much the biggest mathematical routine library in the world and combine it with interactive visualization tools, and then use an LLM to accelerate things, it becomes an incredible tool. Almost ridiculously powerful for trying things out, teaching, visualizing things, etc.
(I've been using Mathematica since 1992 or so, so I'm familiar with the language, but it's still so much faster to just tell Claude to visualize this or that)
Yes, I’m sure! I had mostly stopped using WL by the time ChatGPT came out and so my only experience of their integration is a lot of hallucinated syntax by GPT3. I’ve not been tempted to upgrade to the newer, more LLM-integrated versions yet, particularly because I’ve been trying to cut down on expenses and spending more money on LLM api calls versus just using my existing Anthropic subscription for Claude code isn’t that appealing. I’ve also been going through a bit of a crisis of a lack of creativity and inventiveness and it’s hard to decide to spend money on an update when it doesn’t seem like I have any good ideas of what to do with it after I’ve spent the cash!
I bet that if they can integrate LLMs _really_ well (I’m not sure the chat driven notebook thing is necessarily the way) it’ll be a massive upgrade.
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!)