Starting to Demo the Wolfram Language by Stephen Wolfram.
From the post:
We’re getting closer to the first official release of the Wolfram Language—so I am starting to demo it more publicly.
Here’s a short video demo I just made. It’s amazing to me how much of this is based on things I hadn’t even thought of just a few months ago. Knowledge-based programming is going to be much bigger than I imagined…
You really need to watch this video.
Impressive demo but how does it run on ordinary hardware and network connectivity?
Not unlike the old Veg-o-matic commercial:
Notice where the table top is locate relative to his waist. Do you have a table like that at home? If not, the Veg-o-matic isn’t going to work the same for you.
Was Stephen on his local supercomputer cluster or a laptop?
Excited but more details needed.
I’ve been looking into Mathematica and running it (Version 9) for a while now. It is very impressive. Well written code runs very fast but poorly written code can take multiple seconds on a laptop (and even good code can take minutes on a Raspberry PI.) With all the internal optimizations, it is not always clear (to me) why one technique is fast and another is slow.
The “new” Wolfram language looks like a re-marketing effort for a bunch of existing technology that Wolfram already has and is already well integrated (Mathematica for the desktop/laptop, Wolfram Alpha for search, webMathematica for the cloud, and Computable Document Format documents for deployment).
The next major release (version 10) is where it should get really useful for non-math related projects. It will add a standardized data framework for data manipulation and management. Supposedly, it will add a with a built-in data structure for slicing/dicing data (like the Data Frame from python’s Pandas package or R) as well as built in machine learning algorithms.
The “everything is an expression” basis of all the Wolfram software makes it very easy to manipulate anything. On the downside, the language itself can be cryptic because, like Perl, the community seems to value terseness and makes heavy use of combinations of symbols like @#&/.=: in shortcut commands to save themselves a few keystrokes. That can lead to some very short programs that take longer to understand than a much longer version of the same program.
As an example of all of the above in Mathematica 9, the following code (not mine) generates a 3D plot with the 100 nearest stars and provides tooltips with the star’s name.
Graphics3D[{Blue,
Tooltip[Point[#2], #1] & @@@
Transpose[
AstronomicalData[“StarNearest100”, #] & /@ {“Name”,
“PositionLightYears”}]}, Background -> Black]
If the needed data is not resident on the computer, it goes out to Wolfram servers, downloads it, caches it locally, then does the computation. After the data has been cached, it executes in less than a second on my 4 year old laptop.
Comment by clemp — February 25, 2014 @ 5:26 pm
Does everything is an expression remind you of everything is a list? Really great ideas keep resurfacing.
Have you found a good reference for the Wolfram language yet? The online guide is great but its “by example” approach seems a little loose to me.
For example:
*****
At http://reference.wolfram.com/language/tutorial/TheSyntaxOfTheWolframLanguage.html
I read:
“The // operator has rather low precedence.”
What does that mean? Relative to other operators?
Although I did find a demo on precedence in Mathematica (0 to 1000 levels) here:
http://demonstrations.wolfram.com/PrecedenceInSomeMathematicaFunctions/
Perhaps it is my distrust of explanation by example alone. If an example can be formulated, so can a general rule.
That’s just a difference in strategies for explanation. The core achievement is quite amazing. I am looking forward to the GA release.
Comment by Patrick Durusau — March 1, 2014 @ 9:45 am