Super-smart guy Stephen Wolfram is proposing to create a new general purpose programming language that is powerful and easy to use, called Wolfram Language.
I’m skeptical. He doesn’t propose to be doing anything particularly innovative or ground-breaking:
“There are plenty of existing general-purpose computer languages. But their vision is very different—and in a sense much more modest—than the Wolfram Language. They 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 my 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.”
This isn’t a new idea. The problem with such an approach is that it forces users of the language to pack a lot of code into their programs that they aren’t using. In this era of high-capacity hard drives this isn’t such a huge deal for, for example, general-purpose machines like desktop PCs, but it does have repercussions for the language’s usability in embedded systems and the like.
It’s also tough to discern exactly what he’s talking about. Programming languages are meant to be tools, or better yet, provide a source of tools, like a toolbelt. Java, for example, comes with a lot of useful functionality out of the box, without any “external libraries,” but the functionality provided by those built-in libraries is akin to the tools in your toolbelt–they aren’t particularly useful in the context of a finished project but they are integral to the construction and proper functioning of that project.
Wolfram appears to want to include what amount to finished projects in his new programming language. The usefulness of this is limited because the strength of programming languages isn’t really in their final products, but in what their basic tools allow you to accomplish.
He says:
“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.”
All modern programming languages have these functionalities, either natively or as part of external libraries. All Wolfram is doing is forcing users of his language to pack them along. The primary appeal I see of this approach is consistency and (hopefully) guaranteed compatibility, which, don’t mistake, is a wonderful goal, but to try and accurately predict what programmers need ahead of time, particularly years down the road, is asking for trouble.
Instead of creating a general purpose programming language as he claims, Wolfram appears to be creating a programming language specially suited toward using this giant set of pre-built functions. Unless by “general purpose,” Wolfram thinks he has enclosed the majority of useful computation under the umbrella of his own libraries, but that’s quite a claim to make. As a programmer continually dissatisfied with the state of programming languages, I wish him luck, but I’m not overly hopeful.