You’ve probably used Wolfram Alpha and maybe even used the company’s desktop software for high-powered math such as Mathematica. One of the interesting things about all of Wolfram’s mathematics software is that it shares a common core engine — the Wolfram Engine. As of this month, the company is allowing free use of the engine in software projects. The catch? It is only for preproduction use. If you are going into production you need a license, although a free open source project can apply for a free license. Naturally, Wolfram gets to decide what is production, although the actual license is pretty clear that non-commercial projects for personal use and approved open source projects can continue to use the free license. In addition, work you do for a school or large company may already be covered by a site license.
Given how comprehensive the engine is, this is reasonably generous. The engine even has access to the Wolfram Knowledgebase (with a free Basic subscription). If you don’t want to be connected, though, you don’t have to be. You just won’t be able to get live data. If you want to play with the engine, you can use the Wolfram Cloud Sandbox in which you can try some samples.
If this were just another language it might be interesting, especially since it can do so much with math. but the real power is how it interprets things and can draw data from a variety of sources. For example, this query for flags of European countries:
There is no special library or database required. It just happens to know what a country is and what flag each country has and what “European” means. Naturally, it can read data from the web, make charts, and even do machine learning. If you’ve had trouble following machine learning code before, try this animal image recognition example:
We covered when the Wolfram language emerged in 2013. If you really have a thing for the notebook style of programming there is always Mathics, Jupyter, and even Fortran.
You could use the full Mathematica GUI notebook interface on Raspberry Pi to figure out how to do what you want to do, with a scaled-down set of input data, and then use Wolfram Engine on a more powerful computer to run the code you’ve worked out on the full inputs.
Also there’s a thing on github to integrate Wolfram Engine with Jupyter.
https://github.com/WolframResearch/WolframLanguageForJupyter
Yes, Wolfram Research finally created a package that allow its engine to be used in Jupyter. Hopefully the core engine (free now) will give WL a chance to compete with languages like python. Wolfram language already has a complete functional language which makes python’s functional paradigm look like a broken toy.
If you use this in an open source project…. It’s not exactly open source anymore… I’m for making all the Jupiter frontends you want, I’m not a super purist or anything, but I still prefer to avoid closed source without a strong reason, although I do use plenty of closed source stuff.
I would think it could still be useful for producing machine learning models, or pre-processing data, or making images, or generating 3d models, etc. that you incorporate into an open source project, as opposed to incorporating WolframEngine and using it at run time.
Akin to using Photoshop to make image resources.
(Admittedly they’re probably hoping you’ll do the latter.)
I contemplated using a powerful CAS inside a compiler backend (instead of a simple instcombine), for some extreme cases of optimisation. Maybe I should go back to this idea once more now.