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.
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.