Hacker News new | past | comments | ask | show | jobs | submit login
Mathics: A free, open-source alternative to Mathematica (mathics.org)
561 points by memorable on Nov 5, 2022 | hide | past | favorite | 203 comments



Related:

Mathics – A free, light-weight alternative to Mathematica - https://news.ycombinator.com/item?id=19851934 - May 2019 (83 comments)

Mathics: A free, light-weight alternative to Mathematica - https://news.ycombinator.com/item?id=11459186 - April 2016 (73 comments)

Mathics - A free, light-weight alternative to Mathematica - https://news.ycombinator.com/item?id=5196551 - Feb 2013 (86 comments)

Mathics - A free, light-weight alternative to Mathematica with support for Sage - https://news.ycombinator.com/item?id=4066826 - June 2012 (57 comments)


Is there a reasonably neutral comparison of Mathics vs Mathematica anywhere?

Based on an amazing showcase[1] Mathematica is right at the top of my list of languages to learn if it (and at least some of the surrounding tooling) ever becomes open source. I wonder how many of those examples would give useful results in Mathics, or what their equivalents would be.

[1] https://codegolf.stackexchange.com/a/44683/9570


The thing about Mathematica / the Wolfram language is that it's quite a bit harder to create an open source interpreter than it was for eg R (which is actually a FOSS interpteter for the commercial package S) or for Matlab (not sure what the status of Octave, the FOSS interpeter for Matlab code, is, I read an entry on a mailing list a long time ago that its sole dev was giving up). A lot of the symbolic solvers that are used under the hood are Wolfram's IP, and it would be a monumental effort to recreate something similarly powerful from scratch.


You've heard of SageMath right?

The biggest thing missing from SageMath is a step by step solver. (Edit to add a caveat, I'm sure many professionals depend on minutiae of one or the other)

Feature-wise I'd say Sage has more Mathematica functionality than Octave does for MATLAB. Sage is not trying to be compatible however presumably it wouldn't be that hard if the functionality is there?

Sage is a bit of a Frankenstein though


Agree on the value of Sage and the Frankenstein.

Sage is amazing and valuable but the value of Mathematica is the cognitive ease of having one unified platform for everything. Sage is a nice integration of multiple specialized tools under a rudimentary common framework but requires a lot more mental overhead to tie it all together.


SageMath (and the cocalc-docker image, and JupyterLite, and mambaforge, ) include SymPy; which can be called with `evaluate=False`

Advanced Expression Manipulation > Prevent expression evaluation: https://docs.sympy.org/latest/tutorials/intro-tutorial/manip...

> There are generally two ways to prevent the evaluation, either pass an evaluate=False parameter while constructing the expression, or create an evaluation stopper by wrapping the expression with UnevaluatedExpr.

From "disabling automatic simplification in sympy" https://stackoverflow.com/a/48847102 :

> A simpler way to disable automatic evaluation is to use context manager evaluate. For example,

  from sympy.core.evaluate import evaluate
  from sympy.abc import x,y,z
  with evaluate(False):
    print(x/x)
sage.symbolic.expression.Expression.unhold() and `hold=True`: https://doc.sagemath.org/html/en/reference/calculus/sage/sym...

IIRC there is a Wolfram Jupyter kernel?

WolframResearch/WolframLanguageForJupyter: https://github.com/WolframResearch/WolframLanguageForJupyter

mathics/IMathics is the Jupyter kernel for mathics: https://github.com/mathics/IMathics@main#egg=imathics

  #pip install jupyter_console imathics
  #conda install -c conda-forge -y jupyter_console jupyterlab
  mamba install -y jupyter_console jupyterlab
  jupyter console
  
  jupyter kernelspec list
  pip install -e git+https://github.com/mathics/imathics@main#egg=mathics
  jupyter console --kernel=
  
  %?
  %logstart?
  %logstart -o demo.log.py
There are Jupyter kernels for Python, Mathics, Wolfram, R, Octave, Matlab, xeus-cling, allthekernels (the polyglot kernel). https://github.com/jupyter/jupyter/wiki/Jupyter-kernels https://github.com/ml-tooling/best-of-jupyter#jupyter-kernel...

The Python Jupyter kernel checks IPython.display.display()'d objects for methods in order to represent an object in a command line shell, graphical shell (qtconsole), notebook (.ipynb), or a latex document: _repr_mimebundle_(), _repr_html_(), _repr_json_(), _repr_latex_(), ..., __repr__(), __str__()

The last expression in an input cell of a notebook is implictly displayed:

  from IPython.display import display
  %display?  # argspec, docstring
  %display?? # ' & source code
  display(last_expresssion)
Symbolic CAS mobile apps with tabling and charting and varying levels of support for complex numbers and quaternions, for example: Wolfram Mathematica, Desmos, Geogebra, JupyterLite, Jupyter on mobile


A virtue of it being private is that they have many paid people responsible for maintaining the software. I once wrote to them about a special function returning incorrect values and they had it fixed the next day.

I consider Mathematica a true gift to humanity.


I used to work for them. This was a common occurrence. Not the errors, but the taking of errors very seriously.


I've had similar experiences using free software. Mathematica sounds like they do indeed take bugs seriously, but it's a bit of a non sequitur to say it's because it's private.



> The thing about Mathematica / the Wolfram language is that it's quite a bit harder to create an open source interpreter than it was for eg R

On the other hand there are lots of Common Lisp systems which are capable of running the venerable Maxima/Macsyma.

> not sure what the status of Octave

I'm glad that Octave and Scilab exist, but I switched to NumPy and never looked back.


I doubt it, probably also because the price tag is so far away from cheap/for free if you cannot go for any student program in which case the question probably doesn't even pop up


That's not true: here is the pricing for the Home and Hobby licenses:

> https://www.wolfram.com/mathematica/pricing/home-hobby/

These prices are not cheap, but affordable if you are serious about your hobby.


Sure, but that's really strictly hobby. Anything remotely for commercial usage or even open source isn't an option, there the prices are 10x. Also for people just having finished studies even those prices can be a lot. IMHO the Home/Hobby licenses seem to be in a very tiny niche


As much as I admire the power behind the “wolfram language”, it’s just never going to be open sourced, never going to really be available for a hobbyist to learn, never viable for a startup to build their entire data analysis core value on top of, its just never going to happen… Stephen Wolfram would die before he gave up control, the entire thing is his precious child. His track record at Wolfram Research is well established.

Mathematica could be so much more, but basically until Stephen dies, it will remain an academic mathematical tool. It’s a complete coin flip as to when he dies the company will collapse or thrive, but it’s just so far away from anything they have plans for at the moment that it’s just impossible to guess.


> Stephen Wolfram would die before he gave up control, the entire thing is his precious child.

I understand that Wolfram made unrealistic agreements with the original programmers, incompatible with growing a large organization to support his evolving vision for Mathematica. Rather than renegotiating, he attempted a maneuver that did not survive a court challenge. The original programmers are now rich.

I cannot find any account of this on the web. There's an unrelated "Fields medalist car accident" that I again know from first-hand accounts, that also has no trace on the web. Huh.


Interesting. I do recall that quite a few years ago I happened to talk with one of the original programmers (I won't say their name here, though I remember it), who complained that Wolfram had basically stolen from them. That must have been before the court victory.

So if anyone's wondering, this post does seem to be based on something, even if it's not easily verifiable.


Yes, surely they would have told you had they lost. Instead, silence and a change in spending habits.

I don't know here that "not easily verifiable" is deliberate, but it could be.

In the case of the Fields Medalist, one can read in major publications that they engaged a PR firm. Those articles don't specifically spell out sanitizing the web. If one already knows every detail of the event in question (in my case, confirmation includes overhearing him express concerns about a wrongful death lawsuit), an internet search finds many accounts relaying a cover story, and a single forum comment that correctly describes the event. That comment was apparently beyond the PR firm's reach.


What about web archiving services? Do these sanitizing PR maneuvers take those down as well? That’d be an alarming revelation to me.


So who is the fields medalist? Interestingly a Google search didn't find that. I'm guessing they were somehow at fault or were drinking. I'm sure if I ever had a car accident where I hurt someone or I was drunk or something, I'd be ashamed, horrified and probably not want anyone to know. But because I'm a nobody, nobody would care. If I was the greatest engineer ever it might be on everything written about me in the future, which would be really horrible in a way. But if this person did something dangerous it shouldn't necessarily remain a secret. The problem with these things is powerful people can block discussion of them by threatening lawsuits.


> hobbyist

At least there's a minimized version in Raspbian. It ran fine on an old B model, snappy enough to play around.

https://www.wolfram.com/raspberry-pi/


The Home version is surprisingly cheap. I became so reliant on Mathematica from my student days that I just have to buy the Home version after graduation.


> never going to really be available for a hobbyist to learn

That's not true: here is the pricing for the Home and Hobby licenses:

> https://www.wolfram.com/mathematica/pricing/home-hobby/

These prices are not cheap, but affordable if you are serious about your hobby.


> it’s just never going to be open sourced

Mathematica is a prime, tender and juicy target for modern reverse engineering tools.


Every time someone makes a "free mathematica", my first question is "can I write, and see, maths as actual maths instead of as programming statement?" and every time so far the answer has been "no". So... can I write, and see, maths as actual maths?


Reading these replies, it's surprising to me how many people think that constraining writing a linear sequence of fixed characters is somehow natural as opposed to a simplification made for cost and technical reasons by Gutenberg, typewriters, keyboards, and ASCII.

Writing is more than this. Writers can arrange characters in 2d space to convey semantic relationships in equations or among words. You can have multiple degrees of emphasis and italics. You can get a sense of which parts of the equation or prose were written quickly and which were written slowly and carefully. Often it conveys a bit of personality. You can even include small drawings or sketches embedded within the text like Gallelo's illustration of Saturn's rings.

I get that we have to strip out this kind of nuance for technical reasons, but claiming that writing ought to be constrained to only what can be represented in plain text feels like claiming that painting should be constrained to only what can be represented in a bitmap.


I strongly agree that representing multidimensional structures with one dimensional strings is suboptimal.

On the computing side I see this as an editor problem. It’s not hard to conceptualize some multidimensional editor, but evidently it is hard to build one that will overtake the traditional text editors and their not particularly more advanced IDE cousins.

The closest such thing I’ve personally used was HyperCard. I think that for real progress in this area we’ll have to abandon the desire to keep editor and language separated.


I have adhd, and personally I find it a lot easier to follow through "math" when it's step by step. When I can say "first this happens, than this". I'm sure part of it is a don't have a great toolbox to break problems down, but personally what you're describing sounds horrible. Like trying to read a book out of order.


Edward Tufte, is that you?


The industry standard (in my industry) software to do that is MathCad, of which version 15 is the peak release. Although not maintained anymore, it is still used a lot today. Because it is not maintained anymore, it doesn't change and has been the same for the past ~15 years.

A free, still maintained, alternative of that is smathhttps://en.smath.com/view/SMathStudio/summary, which also has a cloud option.


In that space, https://blockpad.net/ is interesting also


Which is your industry, if you don't mind me asking?


Civil engineering


Oh, I miss MathCad, I wish we had a decent FOSS clone.


I find Julia’s Pluto to be reasonably close alternative.

Of course it lacks many features, but plugins systems and overall architecture gives hope for possible extension to include many of the desired features.


Wait, Mathcad is unmaintained? What happened?


It became Mathcad Prime that is still maintained and had a release this year.


I'm not sure you'd want to write maths that way. Every WYSIWYG equation editor I've used are very annoying to work with.

Displaying equations is a different thing and it's supported by many tools. Maxima for example has wxMaxima: https://sourceforge.net/projects/wxmaxima/

I've also been working on a different UI for Maxima: https://peertube.functional.cafe/w/qnx1onPEx9LCtDP3wFqjWz


Mathematica had a really nice way of entering equations, once you learned the shortcuts. It's so much nicer to see fractions, matrices and integrals in proper notation, rather than an endless sea of parenthesis.

Eg. when you enter a rotation matrix, it's obvious when you make a mistake when you use the graphical editor in Mathematica. It takes a lot more effort to check if ((1,0,0),(0, sin(2pit),cos(2pit)),(0, cos(2pit),-sin(2pit))) is correct.


This, so much this, writting nested equations are hell in python and other mathematica alternatives but they are so easy in mathematica.


What is a nested equation?


Nesting is the concept of having a thing under another thing. 1+2 will be referred to as a mathematical equation and 1+((((a-b)/3+2/87)-6)23) will be referred to as a nested equation. Of cause this is rather lose semantics since both are expressions or statements and not equations, but that’s how the language is typically used.

This is what that looks like in wolfram alpha: https://www.wolframalpha.com/input?i=1%2B%28%28%28%28a-b%29%... It looks the same in Mathematica while your typing it in, which makes I extremely easy to work with, because even very complex equations look exactly like usual in Mathematica instead of ending up looking like lisp implementation of the Fibonacci sequence.


> looking like lisp implementation of the Fibonacci sequence.

I wonder if Lisp can benefit from a similar 2d visualization sugar.


Yeah, the nesting Viz shouldn't be too hard. Just nested divs in HTML really.

And super/sub scripts are in HTML as well.

Unicode is doing all the symbols these days

Param placement like n=0 under a summation, etc are a little more idiosyncratic


I sometimes use wxMaxima. For my needs it works perfectly fine. Nice to know there are people working on the interface, because you definitely need to know quite a bit about different functions with similar tasks.

Would you know how Mathics compares to Maxima? Mathics' information is pretty sparse.


> I'm not sure you'd want to write maths that way. Every WYSIWYG equation editor I've used are very annoying to work with.

Try Marhematica and you’d change your mind. Yes every other tool does it poorly, but Mathematica does it right. It’s fantastic and you miss it everywhere else when you have to leave the Mathematica eco system.


Cool: the fact that I'm asking suggests I do, though. And I absolutely want to see the results in maths, not in programming notation. If I'm solving a complicated bit of maths, I want to see the result and intermediary steps as maths, not as programming code.


Surprised nobody has made an app that lets you photograph/cut & paste formulae from books or web pages, or just write with a stylus. It's the layout with keyboard and mouse that's the stumbling block. There's lots of good options for symbolic logic, numeric analysis etc.


You underestimate how hard the problem is. Things that in other fields would be minor typographical differences are often semantically meaningful in traditional math notation. Formula OCR would need to distinguish chi from x, lowercase delta from o with an overbar, a dot-product dot from a dot intended as multiplication, parentheses from brackets, v from the or sign. It needs to be able to determine whether your fraction "a / b / c" (by / I mean horizontal lines) was intended as "a / (b / c)" or "(a / b) / c" from the size of your letters, or from the relative widths of the fraction lines.

Of course, anything a human can do, ML can learn to do eventually. Which invites the question: is reading arbitrary hand-written math actually something any human can do?


It seems to me that few would underestimate how hard the problem is as the difficulty would be obvious to those who develop such software.

There are at least two issues here, the first is that there isn't any agreed typographical standard that would make OCR more reliable, and second, there's no consistent or uniform way OCR algorithms are applied. To use your example, the OCR software ought to be able to recognize 'a dot-product dot from a dot intended as multiplication' from its useage context, and where ambiguities or doubts exist the item or aspect of the converted text should be flagged and dropped into an editor that would provide easy access to a choice of selectable options to choose from.

In the absence of accurate AI/ML, having ready access to a flexible mathematically-aware editor so as humans can easily make corrections seems an absolute necessity (especially so when OCRed text originates from source material that has not been typeset with OCR in mind).

It seems odd that mathematicians and programmers haven't yet agreed on standards and protocols around the OCR of mathematical formulae given that the problem has been with us since the outset OCR.


> You underestimate how hard the problem is.

It's hrd, but it's not that hard. Character recognition is half the problem, the other half is context recognition - and there's abundant reference material available. I think we'll see 'copilot for math' aimed at AP/college level users within a few years.

It's not something that any human can do, bu something that any human can do with help. The first killer app will be 'I found this formula, please tell me how to read it.' Not in the sense of being a math tutor (although that may come, but simply in the sense of helping students to read it out loud, identify symbols like hats or bars and son so on. Most math books are terrible in this respect because they assume the student already knows all the notation or has someone who can lecture or tutor them about it. This massively inhibits solo learners who can't engage in the practice of 'teaching themselves' by verbally walking through formulae or discussing them fluently, unless they're lucky enough to have found a good reference for notation.

If you are not in the latter group, Wikipedia has OK summary articles on notation; and these two books offer variously concise and in-depth tools to built mathematical literacy:

https://www.amazon.com/Mathematical-Notation-Guide-Engineers...

https://www.amazon.com/Programmers-Introduction-Mathematics-...


Microsoft Math Solver does a good job at scanning hand drawn equations. Graph and solve simple polynoms


> Surprised nobody has made an app that lets you photograph/cut & paste formulae from books or web pages, or just write with a stylus...

https://mathpix.com/

I can't vouch for it, but it seems to be trying to do that.


There have been lots of apps that have tried to convert hand written math on a tablet. I've personally tried at least 4 or 5 over the last decade or so. None of the really manage to pull it off successfully for anything beyond the most trivial examples.


Also the actual value of Mathematica or Maple seems to me how good solvers are. E.g. when it comes to Integrals or just solving a non-linear equation. Also most common tasks work good enough. A good/fast UI is also important (like for Maxima, although I miss modern convenience a bit)


I’d guess the end state is: tablet, stylus and convert scrawls into print-worthy output. Many pitfalls along the way I’m sure but nothing will beat just drawing what you mean.


I agree. Mathematica and Wolfram Alpha are amazing because of how close they get to maths as it is taught in school, uni and through books.

There are many other ways of working with maths. Graphing calculators are very common, and some models even have proper algebra support. There are also the likes of Matlab, R, Python + numpy, and obviously the addition of Jupyter notebooks.

“Mathematica®-compatible syntax and functions” seems to be the main selling point of Mathics. I presume that this means that I can copy-paste Mathematica examples I find online or that are shared with my by someone else.


I understand the wish, and Mathematica does a pretty great job of making the mathematical notation less ambiguous, but I‘m surprised that this would be your highest priority. Do you actually enjoy writing in math notation?


Yes. I'm sorry but how is this not obvious? Do you enjoy hand-writing code on paper?

The natural medium for math is on whiteboards and paper. A computer algebra system like Mathematica is useful, but it augments what is traditionally a paper-and-pencil activity. It makes sense that the standard notation for math is something that is amenable to physical tools.

And it makes sense that the computer tools to assist mathematicians should more closely match this standard notation.


If you’re a working mathematician, it’s the only way you think.


If you are the X then you must do/be Y is called gatekeeping.

And of course this is not true.

I know mathematicians who work almost exclusively on a computer, and others who have an old dusty computer from 20 years ago in the corner of their office that they barely touch. Most are somewhere in between.


Mathematics is one of the oldest disciplines in the world. Grumbling about the legacy of its ancient history as ‘gatekeeping’ is puerile.


This started worth talking about notation. Notation of mathematics has changed significantly over time - Newton's Principae is not readable without accounting for changes. In the history of maths, that is a fairly recent work.


I actually agree with your premise: mathematics and it’s notations (plural) are ancient. The current notations are those that were found to be most convenient by centuries of practice by expert practitioners.


This is of course very true but doesn’t take into account invention of computer that is relatively recent.

Since it in principle never makes mistakes (in practice there are of course bugs, but they are usually different in nature than human errors) it changes what is possible and most convenient. You no longer have to optimise for simplicity as heavily for example. On the other hand computers basically can’t deal with ambiguity, so the rules and statements have to be stated very simply and clearly.

EDIT: One example that comes to mind are indexes in functions. Usually they are just additional arguments that are different somehow from the “main” arguments, for example often being non-negative integers. For humans it makes it easier to think and operate about indices separately from the rest of arguments. But for the computer it’s all the same, as all arguments are treated just as argument, (of course it depends on the implementation etc) and there is no need to treat them separately, since every argument is “special”.

I believe computers can change the landscape of what’s best notation. This is an interesting, interdisciplinary topic to explore.


I think APL was originally created as a fix to this problem. A completely revamped math notation to make it more fit to computers as a medium, instead of pen and paper.


If it was created thus then it could hardly be considered successful. To all but the dedicated and obsessive cognoscenti APL is nothing but gobbledygook.


> If you are the X then you must do/be Y is called gatekeeping.

Let's be precise here: the parent hasn't used "must" here, just stated their observation. It's possible that many if not most mathematicians work this way, but it's not definitely the only one, and it doesn't mean it can't be changed. Actually, there is a lot of work being done on theorem provers, for example.


If you are a python programmer you must program in python.


Who said it was my highest priority? Obviously having a solver is the highest priority, but it turns out that if you purport to have made a mathematica competitor, that was the baseline. If you don't have that, you have nothing. So the question is never "can it do what it needs to", it's always "can it do the things which keep me using Mathematica, instead of Sage, like letting me compose notebooks that contain, and show, actual maths?"

And yes, I enjoy writing in math notation because it's an immediately understandable notation compared to 500 character programming statement.


In many cases yes. Especially non-programmers really like that the equation they type into their software looks exactly the the equation in the paper they are copying it from.


Desmos has open source library called MathQuill, which converts typed chars to mathematical representation similar to Mathematica. Sure there is some "programming statements" with some (La)TeX like syntax there, but so does Mathematica too.

[1]: http://mathquill.com/


> So... can I write, and see, maths as actual maths?

Sorry to be nitpicking, but it seems you conflate "actual maths" with "maths notation we're accustomed to (since the 19 century)".

As to what "actual maths" really is, it's an extremely interesting question that belongs to the philosophy of mathematics (mostly).


That's indeed a bit of a nitpick. If you're working with maths, going back to your notes and reading them is really important. If your notes look like Sum(k,math.inf, (math.pipow(sqrt(x),k))...)), it's really not great. So, while you're correct that it's just notation, the issue remains that it's much harder to read maths in ascii.


That's not a conflation, that is using the word "actual" correctly.

Amusingly, the one thing that the word "actual" does not permit is leading the conversation to that "extremely interesting question": the word "actual" forces an interlocutor to consider only those contexts in which the thing in question is a real, existing thing. "Actual" is a no-hypotheticals-or-philosophical-ponderings zone =)

In this case, that real thing would be modern maths notations. So this is kind of artificial nitpicking: English is not a zero-context language, you are still required and expected to understand the context words are used in based on understanding that they wouldn't make a lot of sense in other -even related- contexts.

Of course, if I'd been glib and said this:

> So... can I write, and see, maths?

Then the insinuation that maths and programming are mutually exclusive concepts should definitely lead to a philosophical discussion.


I think you’ve just each used a different sense of the word ‘actual’.

Sense 1) “‘Actual’ mathematics does not consist in notational embodiments”

‘Actual’ as in essence rather than appearance, territory rather than map. Implies platonic reality of an eternal ephemeral mathematics. Conceived of as beyond and beneath all the particulars of any given representation.

Sense 2) “‘Actual’ mathematics consists in notational embodiments”

‘Actual’ as in embodied. Material. That ‘actual’ mathematics is the set of mathematics which has been ‘actually’ done.

You describe the second sense as self evident but with mathematics in particular this is bound to cause trouble. The sense ‘actual as in essence’ is perfectly reasonable and has a particular affinity to a discussion of mathematics.

I find it hard to even write the description of the second sense without tying some linguistic knot. If ‘actual’ mathematics is its embodiments, what is the thing being embodied? Either the notation embodies nothing (what does it mean to describe the characteristics of a thing which doesn’t exist?) or if it does refer to something then according to the designation of embodied mathematics as ‘material’ then it embodies something which exists immaterially. So either mathematics describes the characteristics of a non existing thing, or a thing which exists, but exists immaterially. If ‘actual’ mathematics is the materially existing embodied form of a separate immaterial thing, what is that thing? So that ‘Actual mathematics’ is the embodiment of a separate immaterial thing called ‘not actual mathematics’. I’m not trying to make a watertight argument here just trying to outline the course of thought that your assertions inflame.

From another angle, what does it mean for something to ‘materially exist’ so that it can be considered ‘actual’. I think this concept so nebulous as to make impossible the patching up of all the holes a cursory investigation reveals.

Personally I think the distinction between the two is the root of trouble here. In the sense that anything exists, it exists according to mathematics. The essence of material existence, to the extent that it can be specified, is a structure of formal relational principles. Such formal structures are the domain of mathematics.

Of course ‘material existence’ is used and understood perfectly well in ordinary circumstances but when the topic at hand is “what counts as ‘actual’ mathematics?” it seems shaky ground to build a house.


what about recognizing handwritten math? https://mathpix.com/handwriting-recognition


A simplistic but nice application for Android I found looking for this after reading parent's comment. https://play.google.com/store/apps/details?id=us.mathlab.and... (Adware/Non-free/closed source)


in Mathematica at least, you can use TraditionalForm to format your equations like maths. and what's more, you can edit things in that form without dropping out of it. you can also make palettes for commonly used symbols and such. it's not a magic blackboard, but with the symbolic nature of Mathematica and the rendering, it's kinda close.


Indeed, so does this have that?


> my first question is "can I write, and see, maths as actual maths instead of as programming statement?"

What would that look like?

Do you have a hypothetical example?


I suspect they mean they want something like this: https://i.stack.imgur.com/Ymrym.png

As opposed to something like

  def f(x,k) = Sum(k,math.inf, (math.pi*pow(sqrt(x),k))*sin(2*theta*(sqrt(...


What is “actual maths?”


I'm never sure why projects try to claim themselves as a free alternative to Mathematica. For one, they never seem to reach anywhere near the polish and power of Mathematica. And secondly, is Mathematica really that expensive if you use it in your job/industry?

For hobbyists, Mathematica is free on a Raspberry Pi, which probably runs better than any alternative, and has a pretty reasonable price point if you buy the real thing for personal use.

For students/professors, Mathematica is basically already free at most major universities.


>And secondly, is Mathematica really that expensive if you use it in your job/industry?

If you live in a developing country where the average salary is $50-$300/month and your company's revenue is similarly thin, yes it is really expensive.

I tried to discuss pricing with Mathematica on behalf of one of these companies and after a few initial exchanges to assess our needs, the sales representatives did not even bother getting back to us and started ghosting us.

The world is not limited to wealthy western countries, countries in Africa, Asia and other regions of the world are increasingly aspiring to develop their technology sector by building an ecosystem of engineering companies.

Mathics and similar initiatives are therefore more than welcome. Even in a developed country, there are many reasons not to want to tie yourself to a proprietary tech so central to your operations, especially in today's world. For example, what about if you are a Chinese company and the US treasury decides to blacklist your company or country?


"countries in Africa, Asia and other regions of the world are increasingly aspiring to develop their technology sector by building an ecosystem of engineering companies"

So by basing that ecosystem around open source software where appropriate, these companies and their employees can avoid the lock in and restrictions of commercial software. I'd expect them to be overtaking the tired Western industrial world fairly soon - or at least being a lot more nimble.


I just checked how much a license of Mathematica for Home & Hobby costs.

It's €447 one time purchase, or a €224/year subscription.

The one time purchase does not include updates, so if something breaks with next years macOS update I will probably have to pay for an upgrade again.

This license is pretty pricy for something I just buy for fun, but arguably worth it if you use it often. But I am not allowed to use it for any professional purposes at all. If I just wanted to use it to graph the sales numbers of my side projects (probably not the best tool for the job, but why learn another tool if you have one that does the job?), I would need a professional license which is 10x the price.

Being able to run it on the Raspberry Pi for free is nice, but I assume it is also limited to "personal use".

Mathematica is ridiculously expensive. It's expensive because it's professional software, and there are few alternatives. If you use it daily as part of your job, the price is absolutely worth it, but if you don't, it's just way overpriced.

When I left university, I would have loved to keep using Mathematica, but it was just way too expensive to run it on my laptop, for an app that I would just use a few times per year. And logging into a Raspberry Pi just to use an even slower version of an app that isn't known for being particularly responsive in the first place just isn't something that I care about.


> Mathematica is ridiculously expensive

This is something I used to believe.

I am a hobbyist user. Mathematica was not required for my work or for any other interests outside personal curiosity and an ever growing love of math and science.

I’ve made it an indispensable part of my work. A small side-project in Mathematica blossomed into one of the key ways my clients analyze data now.

Mathematica costs less than a dollar a day. It’s always open among the apps on my desktop on both my work Mac and my kitchen Mac.

To stop using Mathematica, you’d have to pry it away from my cold, dead hands. It’s really that great.


"I’ve made it an indispensable part of my work"

And that's why Mathematica is indispensable to you—familiarity and use have made it indispensable.

The trouble is that it's a chicken and egg problem, with the program being so expensive many won't have access to it to try it—some of whom, if they'd had access, would have progressed to your situation.

A program like Mathematica only becomes indispensable to a person after he/she has had access to it for long enough to become familiar with its workings and for the person to actually benefit from the program's features—here that is to provide quick mathematical solutions to problems that would otherwise take a long time or require tedious workings out.

Thus, it's little wonder that so many are looking for cheaper alternatives—as they simply haven't developed the experience necessary to arrive at the same conclusion that you have.

It's unfortunate that's the situation exists and that there aren't more products capable of competing with Mathematica that have a similar UI experience and calculating granularities.


Are you using the hobby license for professional work? Or do they drop the price to less than a dollar a day if you ask nicely?

Licenses that you are allowed to use for commercial activities are a lot more than a dollar a day according to their website.


[insert anything] is ridiculously expensive. If you use it the price is absolutely worth it, but if you don't, it's just way overpriced.


Disagreed. Example: Numi.app and Soulver3.app = both are essentially just fancy calculators with built-in unit conversions and a few other convenient features. I use them maybe once a month, but €30 for a lifetime license with no subscription is more than ok for what they are.


You are misrepresenting my comment by removing essential qualifiers: It's worth it if you use it daily as part of your job.

There are plenty of jobs where Mathematica would be useful occasionally, but not every day. For these cases, the software is overpriced.


It can also be worth it when used outside of jobs and occasionally - in the same way that a bike or a blender or a day at a spa can be worth it. I wouldn’t say that a blender is “ridiculously expensive” because I don’t care much about smoothies.


If I wanted to buy a Mathematica license for my use case (hobby stuff, use it for my job maybe two times a year) it would cost me around 5000€. If that isn't ridiculously expensive, I don't know what else to call it.


I think I misunderstood your first comment - I thought you found the "home and hobby" license ridiculously expensive.

I'm not sure what that 5000€ refers to. The standard licence is 3880+VAT (I guess that's what you meant), the annual one half that price.

If you look at it as

  "hobby stuff" 500
  "use it for my job maybe two times a year" 4500 extra
maybe the "home and hobby" license makes more sense for your use case - use it "cheap" for hobby even though you cannot justify paying the full price for work. That's why that license was introduced in the first place!

One could also say that a 5000€ A0 printer is "ridiculously expensive" because you want to print only a couple of posters. While you would be better off going to a print shop it doesn't necessarily indicate any problem with the pricing of the machine.


Depending where you are and what you income is, €447 is a lot of money to spend on a hobby.

That costs more than a month's rent in some European cities https://www.numbeo.com/cost-of-living/region_prices_by_city?...


Well, in that context one can also say that a €447 pair of shoes is ridiculously expensive, a €447 bike is ridiculously expensive, a €447 telephone is ridiculously expensive, etc.


> €447 pair of shoes is ridiculously expensive

Well, at this point it's not even ridiculously expensive; €100 would be ridiculously expensive already.

> a €447 bike is ridiculously expensive

Nah, a good bike can easily cost as much; it's an investment similar to buying car.

> a €447 telephone is ridiculously expensive

It is and it baffles me people are willing to spend even more.


A pair of shoes, a bike or a phone will be used a lot more, and with no license restrictions, than a hobbyist copy of Mathematica.


I would perhaps say: if it offers you more value (not necessarily financial) than its cost, then it's worth it.

But this is a truism also.


I agree that Mathematica is extremely powerful, but in my opinion calling it polished is quite a stretch.

The notebook interface has a look and feel as if it was hacked together in two weeks in 2004. Kernel startup and function evaluations can be extremely slow (how the hell did Mathematica 1 run on 1988 hardware?). Sometimes, long-running evaluations can be interrupted, sometimes doing it crashes the kernel. The arcane functional programming language makes writing procedures extremely painful (control flow is handled by nesting If[] functions). Plots are borderline unreadable by default. Customizing them is very complicated and inflexible compared to OOP-based plotting libraries in other languages. Many features don't work at all. I once tried exporting an animated plot as a video file, and most codecs were simply broken. Sometimes PDF exports of plots are Megabyte sized for no good reason.

Instead of fixing such basic stuff, Wolfram keeps adding cloud features that nobody asked for and machine learning stuff that nobody uses. For the vast majority of users, Mathematica 7 is functionally identical to Mathematica 13. Unfortunately, there still is no real alternative, so everyone keeps giving them lots of money for a frankly very unfinished product.


> Plots are borderline unreadable by default

Really? Of all your complaints that one seems the least true, in my experience. I think plots are lovely by default, but then 5% of the time it’s crap and then I’m cursing, with you, at how alien and annoying the whole thing has become.

I used Mathematica in 1988 on a Mac and have been grateful that my employment has given me free access ever since. The notebook interface feels basically the same to me as it did in 1988, when it was an incredible innovation. Now, it is a little annoying.

I also don’t know what feels unfinished about it, but it sounds like you’ve spent more time wrestling with it than me. It has been an incredibly enduring product that still wins at symbolic math. And I also hope open source tools can replace it in my work.


In my opinion, the axes labels are way too small and in a weird location, the lines are too thin, and the default color cycle has many colors that are indistinguishable for people with red–green color blindness (8% of all men). I have been in many meetings where someone could not read some of the Mathematica plots on the slides.


I agree with your specific comment. And in the more general sense (as I've repeated elsewhere) that user ergonomics of much software sucks big-time.

In the case of red-green (or any) color blindness the simple solution is to provide either a choice of predefined colors and or ways of manually overriding the defaults—and in relative terms the extra programming effort needed to provide this useful functionality is a trivial matter.

Sotware manufacturers really do have a damned hide when they omit such important features especially when the need for them is so obvious.

BTW, I'm not color blind but I've witnessed situations as you've mentioned, so too would have the program's software developers. That they've not attended to the matter makes it all the more annoying.


How about defining you own PlotTheme and setting $PlotTheme in init.m? It’s been supported since version 10, I believe.


"Instead of fixing such basic stuff, Wolfram keeps adding cloud features that nobody asked for and machine learning stuff that nobody uses."

Unfortunately, Wolfram is not alone and it's the curse of the software industry. There are hundreds upon hundreds of examples of programs where new usually-unwanted features are added at the expense of unfixed bugs and important features that are badly implemented and need attention but which its developers keep ignoring.

The problem ultimately boils down to us users—first, we don't complain loudly enough about obvious problems and second, we're all too taken in with promises from marketing departments about the benefits the new glitzy features will bring but which rarely live up to expectations.

What we don't collectively realize is that poorly finished software with bad user ergonomics is enormously costly to society in terms of wasted human effort and lost productivity when tallied across millions of users.

I qualify that comment from my own experience both as an IT professional and as someone who has run an IT department. Personally over the years I've lost thousands of hours trying to get buggy or poorly implemented software to do some of the most basic of core functions that ought to work properly from the outset. Same goes for typical users who are forever calling on my department's help desk to solve problems that ought not exist.


> For students/professors, Mathematica is basically already free at most major universities.

Just because someone else is writing the check doesn't mean it's free. Case in point, the pricing for an individual Mathematica license for use at a college or university ranges from $722/yr to $9k[1], with the customary confusion about what is actually included.

[1] https://www.wolfram.com/mathematica/pricing/colleges-univers...


> For students/professors, Mathematica is basically already free at most major universities.

When I was still in academia I avoided close source because I want my research to be accessible. It does make a difference if you need to go through some strange license portal to activate your university license or if you can just install it in one line.

For me that meant that my scripts run in octave as good as in matlab, if this was feasible (and of course many packages exist only for matlab).


For me, free as in freedom is the primary concern. A proprietary programming language seems a bit ridiculous. I don't see myself paying for a programming language either, though. Libre and gratis are the norm in this space, so going against that sticks out in a bad way. It's like text editors and web browsers. We've had good free options for a long time. Anyone trying to push a non-free option might as well be giving out malware. That malware isn't appealing whether it has a pricetag or not.


There is an interesting article about the reasons why Wolfram decided against open source and why their products would not have been possible otherwise: https://blog.wolfram.com/2019/04/02/why-wolfram-tech-isnt-op...

As much as I don’t like it either, I can understand their perspective and actually believe that it might have been very hard to create and sustain such a comprehensive, thoughtfully and consistently designed language with an open source model. But it may be interesting to see if there are projects of similar scale with similar requirements that thrive (long-term) on a free and open source model.


Most of the points in the article are for centralized development, which has nothing to do with open source.


This! I am coding something right now that Mathematica would honestly make 100x easier, but I refuse to use it because I want my software to be FOSS, and not depend on a proprietary language.

I respect Wolfram's enginuity, but I resent his ego for keeping us all out of his walled garden.


I love Mathematica, though I don't use it today.

Free tools have taken over programming, and I doubt that cost is the main reason. I don't know if there are any proprietary programming tools in widespread use any more. The same benefits might apply to software for "the rest of us."

Outside of truly enlightened organizations, the cost ends up being just high enough to trigger all sorts of wasteful habits such as: Management approval, dealing with the purchasing department (on a recurring basis these days), using outdated versions, shared licenses, centralized installations, node locking, separate "development" and "run-time" environments, and so forth.

For one specialized app that I use at my workplace, it costs a few man-hours per year to renew the subscription. The license server is on a firewalled domain, maintained by IT, so I can't use the software at home unless I carry a computer back and forth every day. On my bike.

Use of that software tacitly assumes certain work habits such as doing your work mostly in one place.

The cost frustrates sharing. If you want to share something you made, your victim has to buy their own license to use it.

In the time that it takes to hash out the purchase of software X, I can have my entire toolchain (Python, Arduino, WxMaxima, etc) on every computer that I touch: In my office, the labs, and at home. This has radically changed how I incorporate (mostly) Python into my life at work and at home.


> I don't know if there are any proprietary programming tools in widespread use any more.

Isn’t Xcode is a widely used programming tool?


Ah, good call. I admit that my claim is based on having periodically googled "top programming languages" over the years. So a few proprietary tools may have fallen through my sieve.


Another obvious example is the CUDA toolkit - unless you don't consider it a programming tool.


This might be a case similar to embedded development, which has seen much slower adoption of free tooling.

And I have a pretty broad definition of "programming," so by all rights I should have mentioned Excel.


Mathematica has so much closed-source hidden stuff under the hood that there's a question of correctness. I've certainly found bugs / wrong mathematical facts before.


Can you share an example of it getting math wrong?


Here is an article from 2014 by a (group of) mathematicians who used Mathematica extensively in their research describing the problems they had with Mathematica when trying to calculate the determinant of a Matrix containing large integers (on the order of 10k digits). The bug was reported in Mathematica 7 and was still there in Mathematica 10.

https://www.ams.org/notices/201410/rnoti-p1249.pdf

Back when I was using Mathematica a lot (2005-2010ish) the Mathematica usenet group kept an archive of all errors in Mathematica people had found, but it seems to have disappeared off the Internet.

If you browse the [bugs] tag in mathematica.stackexchange.com you'll find a few as well (although admittedly many of the issues there are user errors rather than Mathematica getting it wrong)


thank for the link to that nice article; it also has some other examples of symbolic math packages getting the wrong result


The [bugs] tag on the Mathematica stack exchange has 1900+ questions https://mathematica.stackexchange.com/questions/tagged/bugs

Here are two that I found:

the character table of some finite groups weren't square https://mathematica.stackexchange.com/q/252775/7936 this one makes me really nervous as this implies there's not unit testing for the most obvious checks (it's a theorem that the character table must be square and the check is trivial to implement)

conjugate transpose didn't do anything to vectors https://mathematica.stackexchange.com/q/258165/7936

There are plenty more where Mathematica produces the wrong antiderivative or limit.


Thanks for this link; I think your reply is the one I saw and then couldn't see, but now it's back. I may be misunderstanding how HN works.


There used to be another answer here, with a specific link, but now it's gone. I thought I upvoted it, but I'm worried my fumble fingers on my tiny phone downvoted it by accident.


There's a question of correctness for any system, no matter how closed or open.


But the process of answering that question is vastly different.


Yes, but having results verified with multiple different software increases the chance that correctness problems will noticed sooner.


When I went back to uni, a lot of my classes had us using Mathematica. While the software is fine, I found Steven Wolfram's relentless promotion a bit off-putting.

Felt a lot like P. T. Barnum somehow and I wasn't really comfortable being a customer of someone who made me feel like P. T. Barnum was selling me something.


Thanks; you have aptly expressed the vibe I got trying to read through New Kind of Science.


> For students/professors, Mathematica is basically already free at most major universities.

I think this is usually an on-premise license, and not a license to use it on your own computer offline.

You can use it on the cloud. I'm not sure what else you can do with such a license.


> And secondly, is Mathematica really that expensive if you use it in your job/industry?

i would pay double/triple the price if it was open source. i shudder at the thought of doing scientific work with help of a magic black box


>I'm never sure why projects try to claim themselves as a free alternative to Mathematica.

In this case it's an open-source project reimplementing Mathematica (though technically only the Wolfram language).

>For hobbyists, Mathematica is free on a Raspberry Pi,

Also Wolfram Engine (which due to previous technicality is closer to Mathics) is free anywhere.

>And secondly, is Mathematica really that expensive if you use it in your job/industry?

The point isn't the price but but that an important software used in academic research is closed source. Those that value open science want to have a way to reproduce results using free tools.


TIL: Mathematica is free on Raspberry Pi. https://www.wolfram.com/raspberry-pi/


Yea, it's a pretty awesome thing, in my opinion. It ran a bit slow on the old Raspberry Pis, but the Raspberry Pi 4 is obviously much more powerful.


and Minecraft is also free on RPi https://www.minecraft.net/en-us/edition/pi


And the free version has a neat open source fork that adds features: https://github.com/MCPI-Revival/minecraft-pi-reborn


Mathematica is prohibitively expensive. I work at a public technical university in Europe and we have no licenses for mathematica.


> Mathematica is basically already free at most major universities.

As a physicist I can say this is definitely not true


You’re not wrong.

It’s just the idea of “what if I accidentally turn my dream hobby into a success?” and “how do I even call lawyers?” and “is any of this worth investing in, on balance?”


it's nice you find it cheap, because i find it very very expensive.


One may want an open source tool for such a foundational requirement.

One may decide that it’s too unstable or dangerous to base one’s primary tools in proprietary software land.

I have precisely this concern in my fields of work.


This looks really nice and people interested in mathematical computing should try it out. I certainly will.

Apparently many commenters here do not understand the word "alternative", which means "a thing that you can choose to do or have out of two or more possibilities", and instead take it as "equal in every respect".


This looks difficult to install. I can see there's a core command line module and a GUI in different projects. I don't see a homebrew incantation or macOS installer or anything like that. Looks like python dependency hell.


Compared to what? What about the docker image? It’s effectively a development environment for math, and it’s seemingly robust. It doesn’t seem particularly wasteful in its use of dependencies specifically has the goal of interfacing with other open source tools. Rolling their own X for everything rather than using the de-facto third party libraries seems like a fine, manageable choice to me.


Compared to Mathematica, which has an installer, and a cloud version. Docker image does sound useful, for a more technical user.


Expecting a project like this to come out of the box with the polish of a decades old tool isn't quite fair is it?


But if it doesn't, then it's not really an alternative to Mathematica.


That's quite subjective.

To someone with no money to spend, Mathematica isnt really an alternative to Mathics.


Is a pen not an alternative to a pencil? Different features and tradeoffs; it depends on preference and context. If anything it’s less of an alternative if there’s no differences, otherwise it would be byte-for-byte Mathematica and you’d be unable to choose between the two.


Perhaps it isn't for some things or if you can't install it. But that's really dependent on use case and user, isn't it?


Well, I bought Mathematica decades ago, from the university book store. It came in a box and had an installer.


Then it’s an alternative for technical users.


From what I see, it's

pip3 install Mathics-omnibus

levels of hard. I'm missing some libraries on one of my machines, but I'm planning on playing with it.


It's missing mysql_config. Sounds a bit much to require mysql, for easy installation.


Is this in any way related to https://www.sagemath.org/?


The announcement years back suggested it supported sage at least https://news.ycombinator.com/item?id=4066826


unlikely, they seem to be separate efforts


I’m a big, big fan of Wolfram Language - as a recreational mathematician and programmer, there is nothing else I would rather do my explorations with.

As always in these discussions, I expect many people will start complaining about how expensive Mathematica is, and how Stephen Wolfram is very shortsighted with his pricing, and how open sourcing it would truly unlock all the potential of the system.

And I seriously doubt this point of view. Open sourcing is not a magic dust that automatically makes everything better. While it works in some cases, it doesn’t work in others - and not having a competitive open source mathematical system is a prove of that.

Hiring people to develop and evolve complex algorithms, on work on improving the UI and making it work on three different OSes, or curate and maintain the knowledge library, takes a lot of effort. I’m actually surprised they don’t price it higher!

Disclaimer: And yes, I live in a developed country, so $250/year for a personal license is not a substantial cost for me. I’m sure that somewhat biases my position.


In agreement: Creating "polished" software is enormously costly in time and effort, and involves the kind of work that people only tend to do for money: Elaborate GUI's, installers for multiple platforms, etc. Keeping specialized domain knowledge experts happy over a long time span costs money, because they probably know that they could jump ship and do mainstream development for even more money.

And the tools have to do everything because people outside of the programming world can't implement missing features themselves. Programmers can create programming tools, but mechanical engineers can't create CAD tools.

Of course there are downsides: Giving up everything that you get with open-source is a lot. Creating "everything" tools makes them bloated. Having to follow the rules of marketing encourages planned obsolescence and a continual upgrade cycle. Finite resources encourages focusing on "core competency" rather than making general purpose tools.

The choice to use less-polished but free tools is a tradeoff that makes sense for most programmers, and people like myself who are not employed as programmers per se, but do a lot of programming to support our work.

If someone wants to develop a free "alternative," their best bet is to piggy-back on existing free tools. So for instance, a programming language benefits from free text editors. A specialized math or science tool might benefit from being served up as a package with a Python API. And so forth.


> Open sourcing is not a magic dust that automatically makes everything better.

I think it does.

The market is then on ideas. Long term, someone will build an open core business model around Mathics (or similar) and that’ll create an incentive for Wolfram to reprioritize and pursue the best ideas.

The same will happen for this new biz with the open core business model. It will continue to fray as industry figures out what the market wants, pruning poor ideas/execution and rewarding good ideas/execution.

Let’s go!


Respectfully, I disagree with that premise. That clearly hasn’t happened with OpenSage, Maxima, or half a dozen other old open source computer algebra systems, many of which were around as long as Mathematica.

If the open sourcing a system works as you describe - why haven’t those system received even a tenth of a polish that Mathematica has, over all these years?

I have my answer: because, even with all its warts, producing something of Mathematica quality requires tremendous coordinated efforts of hundreds of highly qualified professionals who need to be tightly coordinated.

If you try the “next best thing” - a few core enthusiasts plus a large number of users who do occasional contribution you can get to (an impressive) quality level of the above mentioned alternatives, but not higher.


It's true that Mathematica has more polish than Sage, but conversely Sage has vastly more pure math functionality than Mathematica (Mathematica seems to me to have focused on data analytics and neglected mathematics), so the projects just have different focus.


You’re missing the ingredient of time.

Software (as an industry) was born with the right structure. That’s why it moves so quickly.

Other industries (incl. research) need to fix internal problems before they can accelerate, i.e. tightening feedback loops such as procurement cycles. Over time, institutions who can do more with less will outmaneuver even Wolfram.

The future of the world isn’t limited by one guy leading one company.


> Open sourcing is not a magic dust that automatically makes everything better.

> I think it does.

I think that it does not automatically make it better, although open source does improve the potential for making it better, compared with not making open source.

There are also other advantages of FOSS, too. Even if you do not modify it, there are benefits to examine the code to find undesirable behaviours, reading the code to figure out something that cannot be figured out from the documentation, avoiding worrying about copyright issues as much as proprietary code, etc. And then, further benefits may be possible if the code might be modified, too.


Here's a great one for Android as well.

https://github.com/mkulesh/microMathematics

These guys should collaborate.


Thank you for this. It is not comparable to the program in the OP, but it seems a terrific Android app nonetheless. And it's available on Fdroid too.


could someone advertise mathematica to me? like, how powerful is it? i'm a mathematically trained dev / DE. i'd probably be most interested in exploring rabbit holes as i find them, plotting things, simulating something etc


It has a better equation-solver and simplifier than anything available in open-source. For instance, I have a lot of experience with Sympy, but Sympy has no ability to detect that an equation has a piecewise solution, while Mathematica does. Sympy often finds a solution to an equation that is true most of the time but is generally wrong, while Mathematica gives a piecewise solution that's correct in every case.

It also has a great toolset for making interactive plots. Assuming you understand the following jargon, it uses the functional reactive paradigm.

All possible variable names in Mathematica are pre-declared, unlike in general-purpose programming languages.* For instance, the variable "x" is predeclared, and when its value is printed out, it prints out "x". Sympy and Sage absolutely use the wrong approach here. You can work around the problem in Sympy using

  from sympy.abc import *
but this is honestly rather shit.

The editor is nice, in that it suggests documentation, and offers to auto-complete your code. It's similar to an IDE in that respect. This compares favourably against Maxima, where some people suggest to use it via Emacs, and then you don't get access to auto-completion or context-relevant documentation.

You can also copy-paste any object in the notebook. I don't know if this is directly useful, but the copy-paste includes any plot, image, formula, output, etc. The experience is similar to MS Office, where you can similarly copy-paste any image, table, text, or combination of these. With something like Sympy, you would need to use some function to serialise an object (like a formula) to code.

Finally, comparison to Sagemath: Everything in Sagemath seems half done. It ticks a lot of feature boxes, but the features seem incompletely implemented, even when compared to Sympy. By contrast, when Mathematica does something, it seems to be done in a more complete and usable way. The whole system seems consistent, somehow.

* - This is one of the ways that a CAS should not behave like a general-purpose language.


Working with sage for about 17 years, I've had the complete opposite experience. There is no alternative for holistic number theory, group theory, and algebraic geometry (except maybe MAGMA, which I haven't used in years), and sage does these extremely well (sometimes with the aid of things like Gap and PARI), and this is evident by the large number of citations it has in papers. Plenty of leading mathematicians use sage in proper research, a property which I don't think Mathematica shares.


Maybe my criticisms are superficial, then. I guess superficially some problems with Sagemath I've found:

- If you do matrix algebra in it, it rigidly insists on knowing which ring your matrix-elements belong to. If you have a symbolic variable, then you need to indicate this as part of the ring. Some functionality is not available for certain rings, which sometimes feels overly pedantic; surely a best-case effort could somehow be made? I haven't tried this for a while, but I remember this was an obstacle that I hadn't encountered in Mathematica (or Sympy), which seemed to just do the right thing. Note that normally when working with real- and complex-algebras, I usually resort to various matrix representations.

- The pretty-printer wasn't good. Maybe my mistake was insisting it print to Unicode, but it failed to pretty-print the elements of a matrix. It defaulted to printing out Python code within a matrix. Maybe this is a bug? Maybe I should've just outputted to Latex?

- The variables weren't pre-declared, so I kept having to write out `var("x")`, etc. This is not ergonomic for a CAS. Sagemath doesn't even ship with a hack like `from sympy.abc import *`.


Mathematica enjoys a near monopoly among theoretical physicists. I imagine sage and mathematica then are simply targeting different applications.


A colleague wrote a blog post here: https://idrissi.eu/post/mathematica


I always find the same problem with all Mathematica clones (Mathics, Sage, wxMaxima).

Do they offer a .exe that I can install, then click on a button and start a program without any tinkering. Mathics and Sage no. wxMaxima yes. Although I always had the feeling that wxMaxima is more an alternative to Derive than Mathematica at this point.

Mathematica works because it is easy to deal with, no installing packages, libraries, libraries incompatible with others. You have Mathematica 9, you got all that Mathematica 9 supports. You send a notebook to someone else, they can execute the notebook if their mathematica version is equal or larger.

It is like saying that Latex is an alternative to word. No, they both make documents, but one is not an alternative to the other one.


can't wait to see what people come up with when they'll start interfacing it with a modern AI.


> Documentation for the Mathics system is provided in the PDF format (download the PDF).

Seriously? I'm already tired of latex packages only being documented as PDF, but at least there's a technical reason. Here, this is just contempt for the users.


What else would you require, or what would be more appropriate?


Appropriate? The Wolfram Language documentation of mathematics, the way it's accessible online as hypertext.


HTML. Take a look at Mathematica's documentation: https://reference.wolfram.com/language/ref/Solve.html


Agreed, it does seem an unacceptable oversight that HTML/MathML and perhaps also LaTeX and Open Document format etc. are missing—for reasons they're convenient to use as is and or are easy starting points for conversion to other formats.

One wonders why the omission given Mathematica's vintage—one would have thought that by now Wolfram would have had time to write the output format routines.


Mathematica has an army of mathematicians working on edge cases that only other mathematicians would care about. It's essentially impossible for any open source software to match what mathematica does.


Yep, this is why no other software can compete. People don’t realise that mathematica consists of huge lists of hard coded cases for different mathematical problems. It’s not like they managed to find the general formula for everything. And there are functions that I rely on that literally no other software has, that I haven’t even managed to find any papers that would even hint at their implementation, that magically work for almost any input. For example, MinimalStateSpace seems to be able to find the minimum required form for basically any input state space, which is highly non trivial. It’s a huge amount of work going into niche mathematical problems that even most people in STEM won’t have heard of. I don’t see how others can compete


This is so true for instance mathematica's treatment on numerical integration is the most complete I have seen out there so many methods that work on very minute and specific type of functions, this is even more so when you're working with functions that have singularities in them, and therefore need to be treated piecewisely, or functions that are highly oscillating.

(https://reference.wolfram.com/language/tutorial/NIntegrateIn...)


Yeah and tbh that's even the simple stuff. Those are widely needed, very common situations in practical mathematical/physical calculations. The thing that is really crazy is that the stuff that literally doesn't even exist in any other software, but is really necessary, such as in my case a full symbolic control systems library, is still absurdly complete.

That's why nothing can compete. Not only does Mathematica have an extremely complete implementation of common functionality, it even has an extremely complete implementation of very niche functionality. I don't think that the people who propose OSS solutions really appreciate this, probably because they aren't professional mathematicians/physicists


Much other software can and does compete. Professional mathematicians use any number of other programs as well as simply writing their own.


No, it can't compete, because there will always be things that other software cannot do that _only_ Mathematica can. That's why sympy is a non-starter for many mathematicians and physicists


Maple is pretty close, better in some areas worse in others.


Check out https://github.com/leanprover-community/mathlib . Sure, it's not really a CAS but CAS algorithms could be added to it where applicable, since Lean is a constructive system and can thus express formally verified computations.


The existence of https://github.com/robertylewis/mathematica makes me think it's more likely to go in the other direction, where you treat powerful tools as untrusted oracles which produce certificates that Lean then verifies.


Sure that's possible, but "untrusted oracles" are only useful if they provide easily-verified certificates. Some CAS problems are amenable to that approach, but not all. There's no difference in this case between Mma and, e.g. an external SAT/SMT solver.


I thought that all the fuzz about something being close source / commercial aka overpriced is not worth a hill of beans, because if it doesn't fit your ideals/wallet you just use what fits.

But no, there's always a discourse about how unfair, unethical, greedy etc the developers of closed source / commercial aka overpriced software are, which vividly displays that the actual sentiment in these complaints is pure and simple envy, towards better things that cost more, towards developers who make a living off their own projects and don't feel obliged to worship the ideals of open source, free as in beer, cheap as in dirt etc...


Open source software doesnt have to be free as in beer. I actually make a decent living off writing oss software. For the most part the work is like consultancy (we have paying clients request features). Despite being an oss dev I do actually pay for software I think is worth it. I think the major issue with mathematica is that it is _really_ pricy for paid software (and not great at that, ive run into many bugs with it).


This seems to be powered mostly by Python libraries, but they made a custom language that looks like Mathematica. Why not just use Python?


I was really hoping the *.cdf format would take off and interactive science papers on the iPad were going to be the future.


Surprisingly, it seems to have survived over a year without being taken offline by baseless DMCA threats.


It seems to have been around much longer than that. It was first posted to HN ten years ago: https://news.ycombinator.com/item?id=4066826


Why does Mathics not make use of jupyter notebooks? It seem they are reinventing the wheel a bit.


Hi, they did at one point: https://github.com/mathics/IMathics


I don't get the idea of re-running mathmatica scripts. I haven't used it 20 years, but always saw it as an algebra system. There's no re-running. Once the math is done it's done. Proving (manually) the correctness of the result is usually easier than finding it. Feeding numbers into the equations can be done elsewhere.


Haven't we had scipy for ages? It is a real OS replacement for Mathematica. It can even run a lot of its scripts/code (sometimes with minor changes).

In fact reading the linked page it appears they "build on top of" scipy.


Are you confusing scipy and sage? Sage is basically trying to fill the Mathematica space in the Open Source world. However they have completely different syntax (Sage is python and Mathematica uses its own Wolfram language) and you cannot run just run Mathematica script in Sage.


Scipy is for numerical computation. It's not a CAS.

While Sympy (which is one of the OSS libraries used in Mathics) is a CAS, it only implements a subset of the features of Mathematica, and not to the same standard. See here: https://news.ycombinator.com/item?id=33478881


SciPy definitely can't run Mathematica scripts. It's a numerical library for Python that adds on to NumPy with special functions, optimisation, DE solving, etc.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: