Typesetting that you can properly interact with. Above and beyond the basic technology hurdles, it turns out that we had evolved notebooks to do things we’re no longer willing to sacrifice. It turns out that the “cells and notebooks” concept wasn’t as easy to recreate as we all thought it would be. There was even a significant open-source project that recreated some of our major concepts, down to the use of cells and the Shift + Enter evaluations.Īll of these projects ran into some trouble, though. Variants of Markdown started to become the language of document creation on the web, and many of those documents looked a lot like notebooks.
REPLs started becoming fashionable in software development circles again. A small skunk works project.Įven outside Wolfram’s doors, people were adapting to notebook-oriented computing. Turned out they were working on this web thing, and wanted a bit of advice. A short while later, another Wolfram development team started contacting me, asking about notebook front ends. Surely it wouldn’t take long to get that up and running, we thought. So, we decided to try to recreate the notebook experience from scratch in a way that both fit within the constraints of the platform and played to its strengths. But iOS came with some very different constraints from the desktop system-so much so that it seemed an impossible task to try to adapt our existing notebook technology to the platform. In 2010, as iPhones and iPads evolved into general computing platforms, they became an obvious platform for notebooks. And while the REPL fell out of fashion, the humble notebook continued to present its REPL-plus-narrative structured content. In computer science, there’s a fancy name for this: a read–evaluate–print loop, or REPL. But by the time I graduated university, this wasn’t considered “serious programming” anymore. I remember the immediate feedback of line-by-line programming from my youth in the 1980s, although it had actually begun much earlier. It seems that in the 1990s and 2000s, we were in a cycle where many in the software field thought that inline computation was merely for a few math tricks of the sort that could be done by Mathematica or Excel, while hardcore computation required some sort of compile or deployment step. But those environments don’t accomplish inline computation, and the world is increasingly recognizing how much inline computation with immediate feedback really matters.Īnd even the notion of what “computation” is has evolved over time. Editing environments such as various Markdown editors or the WordPress environment expose many of these concepts at a higher level. HTML exposes many similar concepts as notebooks at a lower level. One might have thought that the web would make notebooks obsolete. While the word “notebook” evokes the idea of a laboratory notebook, it easily encompasses educational documents, literate programs, academic papers, generated reports and experimental scratch pads.
Cells with code are considered input, which generate outputs inline in the document. Cells might be designated for headings, narrative, code or results. We have a document we refer to as a notebook. It’s interesting to see how relevant today the basic concepts we started with are. Little did I suspect that I would someday be spending 20 years of my life (and counting) working on it. My first exposure to it was in 1989, when I first saw Mathematica running on a NeXT machine at university. In 1988, Theo Gray and Stephen Wolfram conceived the idea of the notebook front end for use with the Mathematica system. And in the process, we’ve learned a lot about notebook front ends, a thing we already knew a lot about. To some degree, we’ve been working on a Wolfram notebook front end for iOS for about six years now.
Wolfram Player for iOS is out of beta! You can download it from the App Store today.