Friday, November 15, 2013
Wolfram Working On A 'Symbolic' Programing Language

Stephen Wolfram, the man behind Mathematica, CDF and Alpha, is working to bring its natural language, knowledge-based computational prowess to programming languages.

Many of the details are still quite vague but, according to
Stephen Wolfram, the 'Wolfram Language' will be a general
purpose programming language, except it will be largely self
contained.

In a sense, the Wolfram Language has been incubating inside
Mathematica for more than 25 years. But now - extended, and
unified with the knowledgebase of Wolfram|Alpha - it's about to
emerge on its own, ready to be at the center of new
developments.

"It's a general-purpose knowledge-based language. That covers
all forms of computing, in a new way," Stephen Wolfram said.

Existing general-purpose computer languages concentrate on
managing the structure of programs, keeping the language itself
small in scope, and relying on a web of external libraries for
additional functionality. In the Wolfram Language the concept
from the very beginning has been to create a single tightly
integrated system in which as much as possible is included
right in the language itself.

And so in the Wolfram Language, built right into the language,
are capabilities for laying out graphs or doing image
processing or creating user interfaces or whatever. Inside
there's a web of algorithms. And there are then thousands
functions set up to use these algorithms to perform operations
as automatically as possible. This would make it easy to
integrate data analysis here with document generation there,
with mathematical optimization somewhere else.

The Wolfram language is also integrating all the knowledge and
data and algorithms that are built into Wolfram|Alpha. So in a
sense inside the Wolfram Language ther is a whole computable
model of the world. And it becomes trivial to write a program
that makes use of the latest stock price, computes the next
high tide, generates a street map, shows an image of a type of
airplane, or a zillion other things.

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 - all of these are just symbolic expressions which can
be combined or manipulated in a very uniform way.

According to Stephen Wolfram, the result is an incredibly
powerful way to treat code like data, interspersing little
programs inside a piece of graphics, or a document, or an array
of data. Or being able to put an image, or a user interface
element, directly into the code of a program. Or having any
fragment of any program immediately be runnable.

In most languages there?s a sharp distinction between programs,
and data, and the output of programs. Not so in the Wolfram
Language. "It's all completely fluid. Data becomes algorithmic.
Algorithms become data. There?s no distinction needed between
code and data. And everything becomes both intrinsically
scriptable, and intrinsically interactive. And there's both a
new level of interoperability, and a new level of modularity,"
Stephen Wolfram said.

The Wolfram Language will do things automatically whenever you
want it to. Whether it?s selecting an optimal algorithm for
something, or pick the most aesthetic layout. Or parallelizing
a computation efficiently. Or figuring out the semantic meaning
of a piece of data. Or, for that matter, predicting what you
might want to do next.

The Wolfram Language will also work transparently across
desktop, cloud, mobile, enterprise and embedded systems.

Over the months to come, Wolfram's team will be releasing a
series of products that support particular ways of using the
Wolfram Engine and a Universal Platform that the new language
and deployment system make possible.

There?ll be the Wolfram Programming Cloud, that allows one to
create Wolfram Language programs, then instantly deploy them in
the cloud through an instant API, or a form-based app. Or
deploy them in a private cloud, or, for example, through a
Function Call Interface, deploy them standalone in desktop
programs and embedded systems.

There'll be the Wolfram Data Science Platform, that allows one
to connect to all sorts of data sources, then use the kind of
automation seen in Wolfram|Alpha Pro, then pick out and modify
Wolfram Language programs to do data science - and then use CDF
to set up reports to generate automatically, on a schedule,
through an API, or whatever.

There'll be the Wolfram Publishing Platform that lets you
create documents, then insert interactive elements using the
Wolfram Language and its free-form linguistics - and then deploy
the documents, on the web using technologies like CloudCDF,
that instantly support interactivity in any web browser, or on
mobile using the Wolfram Cloud App.

There?ll be also Mathematica Online, in which a whole
Mathematica session runs on the cloud through a web browser.
And on the desktop, there?ll be integration with the Wolfram
Cloud, letting one have things like persistent symbolic
storage, and instant large-scale parallelism.

Wolfram is planning to create a Programming Playground that
lets anyone start to use the language - and through the
Programming Cloud even step up to make some APIs and so on for
free.

Wolfram's team has been also building the Wolfram Course
Authoring Platform, that does major automation of the process
of going from a script to all the elements of an online course
- then lets one deploy the course in the cloud, so that
students can have immediate access to a Wolfram Language
sandbox, to be able to explore the material in the course, do
exercises, and so on.

"If we're forming a kind of global brain with all our
interconnected computers and devices, then the Wolfram Language
is the natural language for it. Symbolically representing both
the world and what can be created computationally. And,
conveniently enough, being efficient and understandable for
both computers and humans," Stefen Wolfram added.