Mathics: A free, light-weight alternative to Mathematica
mathics.github.io
mathics.github.io
I used Maxima during my engineering course and found it rather useful for checking my differentiation and integration algebra.
Hard to get started with, I can agree with. Despite there being several tutorials, it's not as easy to start using out of the box as Mathematica.
In fact, I'm pretty confused as to why someone would go to the trouble of trying to write a new, python-based mathematica alternative with Sage already quite established and equally free. (I guess keeping the Mathematica language is a motivation for someone who's tied to the mathematica world already, but I've always found it to be a write-only language...)
Having spent time learning the syntax of Mathematica, this seems like a nice interface to SymPy.
What is missing in R/Pandas that makes people choose other pieces of software that does something very similar? Commercial versions of software probably has an edge in support/performance/libraries...Or (as with Simulink ) provides a very specific piece of functionality or integration.
But what is the general use case? Even Mathworks has acknowledged the need to integrate with the huge R community out there - http://blog.wolfram.com/2013/05/22/why-would-a-mathematica-u...
Uhm... it says right at the top of the linked website that sympy is used as the backend.
Remember I'm not qualifying the value of this project as a replacement to Mathematica. I'm asking who is the segment bthat would use this as opposed to going directly to symPy or R.
If we look at Mathics only, it features a Mathematica compatible syntax which allows users familiar with the syntax to be up, running and productive with the tool much quicker.
Mathics also provides a notebook, however others do as well as optional downloads. R has RStudio, and you can use Jupyter for Pandas.
The symbolic stuff is pretty cool too. Years ago I wrote "pyml" which made all the Mathematica features available in Python via a C language bridge. Whereas in scipy/numpy you can find the eigenvectors of a numeric array (a matrix of floats), in Mathematica, you can find the eigenvectors of a symbolic array (a matrix containing terms like x-1, y-5, etc).
The value of maths is 1) it's "open-source", 2) it's free to use, 3) if you want to switch from one module to another (say, number theory to category theory) you are able to do so using the same tools (pencil, paper, and a trained mathematician), and so long as the two "modules" are inter-operable it flows so beautifully. If they are not, then you get to try to figure out ways to make them so.
That, imho, is why I think all these open source packages keep popping up. Math itself is the ultimate "open source". And in doing math one is not limited to command line interface, left-to-right, line-by-line tools. Compare the experience of writing out a derivative in LaTeX vs on paper. LaTeX is an exercise in causing pain and frustration to oneself. On paper, it feels as though you're writing music.
also, i don't understand this fervent attitude that something must be free and open source to be useful. a lot of open source software is complete trash. there is a reason why people pay to use tools like matlab, labview, and mathematica. it is because their value exceeds their cost.
In the case of Mathematica there is a ton that is "locked away behind institution barriers". Mathematica contains millions of lines of code dedicated to implementing clever algorithms for making their root finder and other things work really, really well. but those are all internal source code lines within the company.
I've seen this play out across multiple industries. A good example is SAS and R. There are certain parts of FDA new drug applications that require, specifically, the SAS implementation of a statistical routine, and you can't use R because it doesn't implement the routine in a bit-identical manner. However, a spokesperson from SAS once said, "You'd never fly in an airplane designed by open source software" to which Boeing responded "we use open source software to design our airplanes"
The advantage of free software is that it never dies; someone can always, if they want/need, pick it up and use/extend it. You don't have to hope a company does go bust, and pay them for the product and/or support, and keep upgrading your devices to newer, still supported versions. Ok, some of that applies to free software but if you want to you could stick with the old versions, or make changes yourself, or pay someone to. These avenues just aren't open with closed source software.
Some people won't be able to afford the commercial products, and the free ones might not be as good/polished but if they get (most of) the job done then they fill a niche.
That's a theoretical advantage. In practice lots of things needs to be true for this to happen, even if there's a large user based depending on an abandoned open source program: the code needs to be easily approachable, there should be people willing to extend it who also have the required programming skills etc.
Tons of projects that had lots of users have died or languished.
Heck, even something as popular as GTK+ -- the project is still available, but development has stalled to a halt, and there was a cry of despair from the maintainer that it was just one (one) person doing 90% of the work. If that can happen to GTK+ which is used by millions and powers Gnome, GIMP etc, consider all the other stuff.
Besides, this same theoretical advantage ("never tries") in theory is also potentially true for a proprietary product. Even if the parent company folds, the code and product could always be bought and revived in the future.
I wasn't meaning to imply that Mathematica has no value or has little value. It's indeed awesome both productivity wise and for just enjoying the exercise of doing math.
I was trying, and doing a poor job, to give reasons why pencil and paper has value. Not to the exclusion of Mathematica or more so than Mathematica. Just, that it still has tons of value. And that, maybe that is what these open source projects are trying to recreate that Mathematica has not yet captured.
I think the interesting product idea here would be something I've never seen: a canvas on a tablet that acts like pencil and paper (drawing) but also "helps" by recognizing what you write, converting it to a formal language, and validating/verifying it. sort of the mathematica notebook, but more like a notepad
Consider the simple looking problem, find the definite integral of sin(x^2) from 0 to positive infinity. This is a real expression that that occurs naturally in the study of electromagnetism.
Solving this is beyond the ability of most practicing mathematicians to just sit down and noodle out an answer. The integral in known as the Fresnel integral and has the pretty answer of sqrt(pi/2)/2. Mathematica gives me the answer in just a second.
SageMath, http://www.sagemath.org, is perfect for those that can't afford Mathematica or want to leverage their existing knowledge of Python. It solves the Fresnel Integral too. Please consider supporting the SageMath project.
You'd be surprised. Actually it's not even close.
Good like calculating FFT, working with large primes, etc, with pen and power for one...
The true values of Mathematica are it’s Solve-Algorithms and it’s Simplification-Algorithms. They did a heap fine job there.
The documentation is also incredibly better - every symbol/function has examples that have already been run so you can scan for a result that looks like what you need and see how they did it, and then play with the example in the documentation notebook.
You mean Mathematica, yes?
Python is hard to learn to use for math. It requires a strong programming and math background.
Mathematica's syntax is more natural and it doesn't require learning numerous different packages and figuring out how to stitch them together - it just works. Graphing is more convenient, too.
https://www.gnu.org/software/octave/
I've only used it a bit, but when I did it was adequate. Not sure how this compares to Mathics overall in terms of functionality, footprint though.
The interface would be a lot easier to use if it had an integrated help system (help function?) and tab completion.
https://github.com/mathics/Mathics/graphs/contributors
It looks like sn6uv (Angus Griffith "a Mathematician and Programmer from Sydney Australia") has picked up the baton ...
There may be a few other differences you are not considering.
Also it didn't have a proper "undo" feature until a year or so ago, which is pretty embarrassing.
It sounded like your point was "I trust Mathematica, but not this open-source CAS". Otherwise you would have just said "I don't trust CASs".