3 ms·
If Python is a "batteries included" language, then Wolfram Language might be a "nuclear reactor included" language. Its functionality covers a broad range of do
by carry_bit 5y ago
If Python is a "batteries included" language, then Wolfram Language might be a "nuclear reactor included" language. Its functionality covers a broad range of domains, and keeps growing. The principle behind much of it is "maximum automation", so you have so-called "hyperfunctions" to, for example, build a classifier using machine learning. You just give it the example data, and it'll by default pick the method, etc. for you and perform the training. You can still go in and control the options if needed.
The language itself has its quirks, like any 30 year old language would, but you can do a lot with a little if you know what you're doing. It's similar to Lisp in that way.
The downside is that once you need to go beyond the "standard library" things are a lot more sparse, but they've been working to make it easier to get 3rd party functionality.
It's the kind of language that if it was free 15 years ago would probably be all over the place today.
- fault1 5y agothe other cool thing about wolfram functions is that they really embrace the whole "content addressed function" idiom (like unison). code is data is a networked resource.
- dsizzle 5y agoOne weird thing about the language, which seems contrary to this "most productive language" claim, is that it seems a bit complicated to use normal version control https://mathematica.stackexchange.com/questions/26174/what-are-the-recommended-settings-for-git-when-using-with-mathematica-projects/26180#26180 https://mathematica.stackexchange.com/questions/26174/what-a...
- Smaug123 5y agoVersion control is very easy as long as you're not versioning notebooks. A `.m` file is just plain text.
- gdelfino01 5y agoThe language is version control friendly, the notebooks are not. You explore and document using notebooks (.nb) and if your stuff get serious you should move the source code to a package (.wl or .m) which is just plain text file which is nice for version control.
- dsizzle 5y agoRight, but I mean it's a notebook-based language/environment so they seem hard to uncouple. Just looking at the link I posted it seems a little complicated. Have you used Mathematica in a team situation?
- scoopertrooper 5y agoYou'd run into the same problem with Python notebooks. For a lot of data scientists out there, Python is a notebook based language. The Stackoverflow thread had a few other interesting ideas beyond discarding the notebooks entirely.
- dsizzle 5y agoRight, but no one is claiming Python notebooks is the world's most productive way to work!
- mensetmanusman 5y agoThat’s interesting, has anyone reimplemented AlphaGo or something using Mathematica?