Wolfram Language: A paradigm shift?

A possible breakthrough in programmer productivity and data visualization

Twenty five years ago, Stephen Wolfram published his symbolic math program, Mathematica. My wife was taking a calculus class at the time, and we fed it all the integration problems from her final exam. It solved all but one problem.

In 2009, Wolfram Alpha was launched, bringing Mathematica to the Web. But, Wolfram Alpha is more than an interactive symbolic math program, it is an attempt at creating a semantic Web or Web of things: a vast database of objects, the values of their attributes and the relationships between them. (For example, Wolfram Alpha “knows” that George Washington is a person and the value of his spouse attribute is Martha Washington, the daughter of the person called John Dandridge.) Google’s Knowledge Graph is a similar project. (For more on Knowledge Graph and Wolfram Alpha, follow this link.)

Recently Wolfram announced that Wolfram Language, the tool used to create Wolfram Alpha, will be available on the Web.

Here is how he describes Wolfram Language:

“There’s a fundamental idea that’s at the foundation of the Wolfram Language: the idea of symbolic programming, and the idea of representing everything as a symbolic expression… It can be an array of data. Or a piece of graphics. Or an algebraic formula. Or a network. Or a time series. Or a geographic location. Or a user interface. Or a document. Or a piece of code. All of these are just symbolic expressions which can be combined or manipulated in a very uniform way.”

And here is how he visualizes it:

wolfram6001

Image credit: Wolfram

It sounds like a uniform way to represent and operate on everything from text strings to user interfaces. You can drill down on the data types shown above at the Language reference manual on Wolfram’s site. It is primarily a reference manual, but there are also examples and tutorials.

wolfram6002

Image credit: Wolfram

Another way to learn more is to watch Wolfram’s keynote talk at The Next Web in Amsterdam (video below). He mentions Mathematica, but spends most of the time on Wolfram Alpha, Wolfram Language, and the complexity arising from simple procedures and data analysis and visualization.

He puts the language in context by saying that “Wolfram Alpha is basically 15 million lines of Wolfram Language code plus some number of terabytes of raw data plus a whole collection of real time feeds.” The description and demo of Wolfram Language begins around the 6m 50s point in his talk.

Wolfram talks fast and is somewhat elliptical, but he peppers his presentation with demos. One might be tempted to write him off as hype, but the demos are real. The most impressive was this one-liner:

dynamic[EdgeDetect[CurrentImage[]]]

which produced real-time edge detection as he moved his hand in front of a camera. (It’s at the 10m 10s point of the video.)

Impressive as that was, one has to wonder how brittle the system is. Wolfram knew the language included an edge detection algorithm, but can it be used for a variety of problems and applications? I cannot figure out a query that will get Wolfram Alpha to tell me the number of LTE mobile subscribers — that is a bad sign.

Here’s Wolfram’s keynote:

A version that includes a woman introducing him is on YouTube.

Wolfram’s presentation is vague but enticing. He promises to make Wolfram Language freely available on the Web so we will be able to see it for ourselves. If this were coming from someone at a Silicon Valley startup, I would have dismissed it as marketing hype. But, it wasn’t. Instead, it reminded me of the “Preliminary discussion” of the von Neumann architecture I read as a student many years ago.

wolfram6003

Image credit: Princeton University Institute for Advanced Study
Jon von Neumann beside the IAS computer at Princeton

 

Larry Press
Based in Los Angeles, Larry Press is a senior editor at aNewDomain.net and a professor of information systems at California State University at Dominguez Hills. Email him at [email protected]
Larry Press
Tags: Technology