Between SageMath, Numpy, scikit-learn, Pandas, Folium etc. Python can probably match Mathematica feature for feature and even beat it in some cutting edge research areas.
However Mathematica makes it a lot easier to get started if you don't know how to program. Just start Mathematica, enter the equation like it looks on the page in your math book using the equation editor GUI, click solve and you're done. Also since everything is built in you don't have to worry about working out which package implements Moving Median or Facial Recognition.
Mathematica also comes with a bunch of real time data sources which are really fun to play with. Want to plot Germany's GDP vs Natual Gas prices or Gold prices vs global average temperatures? The datasets are there and ready to be explored.
For instance in SageMath, to get the eigenvalues of a matrix M, you have to do A.eigenvalues(). What is that supposed to mean? To a programmer, that means A is an object (in the sense of OOP), and you are calling an internal method on it.
But that's not how you think about mathematics. Mathematics is functional. A mathematician knows that eigenvalues(A) means, to choose an appropriate eigenvalue-finding algorithm and apply it to the matrix A.
The mathematics program should conform to how one should think about mathematics, rather than forcing mathematics students to think like programmers. Mathematica does that.
The only place where Python is better if you need to share your code - not everyone has Mathematica license.
Haven't tried Folium, but from people who are familiar with both: The number of ways Mathematica has an edge over Sage (in terms of math capabilities, not interface), significantly outnumbers the reverse comparison.
Sage is better in a few ways. Mathematica is better in many ways.
Still, for the typical undergrad curriculum, Sage is probably good enough.
Nothing in principle.
But if we teach people to do math with Mathematica, and they graduate and don't have access to Mathematica any more, how are they going to do math?
Most of the practical lab skills you're taught for doing "wet" biology require quite an expensive lab, and doing computational biology often requires a much more expensive supercomputers.
But the MATLAB skills I honed in university have seen little direct use after graduating - because it's faster to teach myself to do whatever it is in Python than to get an employer to adopt MATLAB.
You can pay to get access to Mathematica, but you can’t pay to get the freedom you would get from open source. No matter how much you pay, Mathematica is still proprietary. There is, indeed, no price for freedom.
Here is an editorial from an American Math Society journal that expresses very well one aspect of Mathematica that lots of us find troubling: http://www.ams.org/notices/200710/tx071001279p.pdf
If there is, then it's a genuine grievance.
But if there's not — what's wrong with paying for a good product? I have yet to see an equally good alternative to other software products, like Excel, Photoshop or Logic Pro. There are alternatives that have the same functions, but none that have the same level of quality.
After all, most of us here on HN are being paid to write code. It's really weird that we would expect to use someone else's software with thousands of years of developers, designers, testers and other professionals without having to pay for it.