Sunday, November 17, 2013

Wolfram Language -- a paradigm shift?

As technology evolves, working with new data types becomes economically feasible. The first computers worked on numbers, they "computed." Then came alphanumeric data, text, speech, music, etc. This table shows the decade in which each data type became widely available:


Wolfram Language sounds like it might change this paradigm. This year marks the 25th anniversary of Stephen Wolfram's symbolic math program Mathematica. While Wolfram has introduced several "products" over the years, his has been a 25 year research and development project on generalized symbolic programming -- developing what he calls Wolfram Language.

Here is how he describes it:
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’s been an embarrassingly gradual process over the course of decades for me to understand just how powerful this idea is. That there’s a completely general and uniform way to represent things, and that at every level that representation is immediately and fluidly accessible to computation.

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:

It sounds like a uniform way to represent and operate on everything from text strings to user interfaces.

Wolfram's blog post is vague but enticing. He promises to make Wolfram Language freely available in the cloud so we will be able to see it for ourselves. If this blog post had been written by someone at a Silicon Valley startup, I would have dismissed it as pre-marketing hype. But, it wasn't. Instead, it reminded me of of the "Preliminary discussion" of the von Neumann architecture I read as a student many years ago.

Jon von Neumann beside the IAS computer at Princeton
-----




Update 11/18/2013

John Graves commented on the natural language processing promises in Wolfram's post.
-----

Update 11/22/2013

Wolfram has posted a Language reference manual on their site. It primarily a reference manual, but there are some examples and tutorials.

-----

Update 12/8/2013

Stephen Wolfram gave the keynote talk at The Next Web in Amsterdam (video below).  He mentioned Mathematica, but spent most of the time on Wolfram Alpha, Wolfram Language, complexity arising from simple procedures and data analysis and visualization.

He put 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: