Mathematica’s barebones symbolic representation doesn’t get you very far when you want to do more than some common algebra over the reals and complexes. Mathematica’s abilities, for instance, in abstract algebra are seriously lacking. (In this instance, GAP (open source) exceeds Mathematica pretty seriously.)
...
> Mathematica’s abilities, for instance, in abstract algebra are seriously lacking. (In this instance, GAP (open source) exceeds Mathematica pretty seriously.)
For someone who is not familiar with FriCAS, can you give an example or two (assuming a math background)? I'm interested in specific cases where open source tooling outperforms Mathematica.
[0] http://reference.wolfram.com/language/tutorial/SomeNotesOnIn...
Wolfram’s page uses vague language (“an extended form of”) and doesn’t actually confirm with precision what it is able to do.
However, nothing open source currently comes close to Mathematica for symbolic and symbolic-numerical calculus (expression simplification, symbolic integration, solving PDEs, etc.). Also, one of Mathematica's main strengths is providing a lot of functionality in a neat package where diverse components are very easy for the user to glue together, with automagical interfaces where the user doesn't need to know what happens behind the scenes (or at least that's how Wolfram PR spins Mathematica being closed source).
Meanwhile, Sage combines a lot of functionality but you can't go very far before you run into visible duct tape, API inconsistencies and things that don't quite work together automatically when you think they ought to. Its documentation is also not as good (Sage has very detailed documentation, but often not well structured). Many of the same issues that exist in open source software in other fields, really.
It's not particularly difficult to understand why. An individual home license for Mathematica is $320. An unrestricted license for an open-source "alternative" is $0.
To be an alternative to Mathematica, it doesn't have to be as good as Mathematica.
It just has to be useful enough that learning it is an acceptable tradeoff for "not spending $320 and becoming locked into Mathematica-specific tooling"
(A decade ago, we'd just pirate the software we needed, because a tunnel to university's licensing server was both unreliable and a PITA to set up...)
I did buy software with student discount during high school, which means even more resource constrained than university level students.
Yes there were lots of piracy with street bazaars even, but I really wanted to own proper Borland software and managed to save money for it.
Those that produce software also have their own priorities, based on how they can managed to pay their bills, which given the comments here is why most software tooling shops nowadays mostly sell to enterprise customers.
My buddy is a GIS analyst/technician (master's degree in it) and a lot of experience in ESRI Arc-GIS, which is insanely expensive. Both he and several colleagues have QGIS installed and are learning it in case they go solo and don't have a client with an ESRI system.
https://www.esri.com/en-us/arcgis/products/arcgis-for-person...
Normally an Advanced Desktop license with multiple extensions would run well north of $10,000/yr with an initial purchase price about 4x that amount.
Also, Mathematica has a very terse and somewhat confusing syntax (I have used lisp before). On the other hand Python is a much simpler way for me to write code in.
Lastly, it eliminates the price which if you aren't a University or a corporation you won't have access to those tools. This makes it easier for people to reproduce their work.
EDIT: corrected typo
I know there is a project to do Mathematica-like things (computer algebra system) on github written in pure Python ( http://sympy.org/ ).
I've been told that Sage ( http://sagemath.org/ ) is Mathematica-like but uses Python as its programming language.
There is also Maxima ( http://maxima.sourceforge.net/ ) which also has a close to Mathematica experience.
Which is awesome, BTW. There's also Giac/Xcas: https://www-fourier.ujf-grenoble.fr/~parisse/giac.html, and a few more specialised ones.
I can't say anything about Matlab, which seems to be fully focused on engineering applications.
Fellow theoretical physicist?
These days, post physics, I do most of my work in Perl, Python, Julia, and various DBs, with lots of spreadsheets and slide decks.
I have Maxima (GPLed Macsyma) on my laptop now. I love that the fortran(); bit still works ...
(%i1) integrate(sin(x) * exp(-x) ,x,0,a); Is a positive, negative or zero?
positive;
- a
1 %e (cos(a) + sin(a))
(%o1) - - ------------------------------ 2 2
(%i2) fortran(%o1); 1.0E+0/2.0E+0-(exp(-a)*(cos(a)+sin(a)))/2.0E+0
[updated to fix formatting issues]What's the deal with it, does it actually add anything over c/fortran + python?
That being said Julia has also done very good job of making it easy to use as just matlab 'clone' if that is what you want.
edit: I should add that as much as I admire Julia and enjoy playing around with it. 99% of my numeric work is still done with numpy and a smattering of C due to libraries/existing code/inertia
"Second place for me goes to Matlab... I can't say anything about Matlab..."
> the challenge that comes to mind is that undertaken by the teams that contributed to numpy, scipy, and pandas in order to be a viable alternative to Matlab.
I mean, numpy/scipy/pandas are reasonably successful. And to take a larger view, open source software has made great gains in replacing not only Matlab, but SAS, SPSS, Stata and others as well. A large amount of specialized domain knowledge was required to replace those as well. What makes Mathematica out of the reach of the same forces (economic and social) that have pushed open source software into replacing Matlab/SAS/SPSS/Stata/etc.?
Most people who don't know better mistake polish for capability.