Dr. Wolfram’s Magic Language

I got my first PC somewhere around 1985. It was a Tandy 1000. Almost immediately, my father taught me the basics of DOS batch scripting. One of the first things he said to me was:

“If the computer doesn’t do what you expect, it’s your fault. It can only do exactly what you tell it to do. The computer is dumb.”

The notion of a system as a passive, mindless interpreter of commands and abstract data helped me greatly in my early years as a programmer. The system speaks a limited language and has no external knowledge. It cannot (and should not) infer or assume intent.

The programmer is in control, always.

This tenet has stuck with me throughout my career and still holds true to me (although tools like scaffolding generators and automated dependency management have been chipping away at the edges of it).

Nearly 30 years (!) after I sat with my dad at the Tandy 1000, I sat at SXSW 2014 and watched Dr. Stephen Wolfram present something that, for the first time, completely changed the way I look at computer programming.

Dr. Wolfram is a renowned scientist and founder of Wolfram Research, the team behind the Wolfram Alpha knowledge engine. At SXSW 2014, he presented The Wolfram Language, a “knowledge-based programming language”. I encourage you to take the 13 minutes to watch the introductory video to get the full introduction.

Inference, assumption, and external knowledge are central to the philosophy of the Wolfram Language. It exposes the algorithms that drive Wolfram Alpha to a programmatic interface as well as meta-algorithms to allow the language to determine how best to mine its own abilities. It knows more than just the abstract data structures that the programmer supplies. It is able to reference continuously-updated, real world knowledge. Everything from financial data to audio processing to cultural data to higher mathematics to engineering computation are included as modules.

Additionally, the language promises an integrated deployment model and API layer that ensures that this tool doesn’t devolve into a huge thought experiment. It can deploy stand-alone modules to the cloud, include them in existing languages, embed them on microcontrollers, and more.

Watching Dr. Wolfram present his demonstration modules, nearly every project I’ve worked on started to look different in hindsight.

I was struck by not only the possibilities for the programmer of the future, but the shift in perspective required. The system is no longer a dumb interpreter of language and abstract data. In the Wolfram world, the system is a gateway to a living knowledge platform. A programming language is no longer a taxonomy of command and control. In the Wolfram world, the language closer to a human linguistic language, a true communication system designed for extracting and delivering dynamic knowledge.

The Wolfram Language “beta” was just released this week. You can start to experiment with some of the early features at programming.wolframcloud.com.

Restored from Internet Archive · Capture: Sat, 19 Sep 2015 19:26:19 GMT