A Multi-Language Computing Environment for Literate Programming and Reproducible Research
eric-schulte (University of New Mexico), dan-davison (Counsyl), thomas-dye (University of Hawai'i) and carsten-dominik (University of Amsterdam), Journal of Statistical Software 46(3), January 2012. Submitted 2010-12-22, accepted 2011-10-03. T1 — peer-reviewed, CC-BY, with the source code and replication material published alongside the article.
Read from the full PDF on 2026-08-14 (curator re-sent the galley URL). The 2026-08-09 version of this page was written from the abstract; everything below the fold — the tool comparison, the tangle/weave mechanics, the confirmation prompt, the adoption-cost argument — comes from the body.
The paper describes what is now called Org Babel: a single Org file holding "code in arbitrary programming languages, raw data, links to external resources, project management data, working notes, and text for publication." Code runs inside the document, with "graphical, numerical and textual output captured or linked in the file," and the whole thing exports to LaTeX, HTML, beamer or DocBook.
Two traditions, and the claim to be first at both
The paper's frame is that mixing prose and code has two separate histories, which it keeps apart throughout — literate-programming (Knuth, 1984: code embedded in an essay, extracted for the compiler) and reproducible-research (Buckheit & Donoho, Gentleman & Temple Lang: code embedded in a publication, executed to produce the publication). The distinction is directional. Literate programming tangles code out to a file the compiler reads; reproducible research runs code in so the document generates itself.
Section 2.3 puts ten tools in a table against four columns — literate programming, reproducible
research, LaTeX export, HTML export — and the row that matters is the one with four "yes"es and
any for language. Javadoc, POD and Haskell .lhs get "partial" on literate programming because
they cannot reorder code blocks. cweb and noweb do literate programming fully and reproducible
research not at all. Sweave and its descendants (SASweave, Statweave, odfWeave) invert that: they run
the code but cannot reorder it, so they are "partial" literate programming. Only Scribble, a Scheme
extension, and Org-mode score full marks on both — and the authors claim one thing beyond Scribble:
"Org-mode is the only reproducible research tool that supports data flow between code blocks of arbitrary programming languages."
That is the sharper version of the multi-language claim. Not merely that blocks may be in different languages, but that one language's output becomes another language's input inside the same file, so the document is a small dataflow program with prose around it. The worked example is Pascal's triangle passing between a table, code blocks and a figure; a later one pulls live climate data through SQLite and R.
How it works
- Weave and tangle are Knuth's terms, and Org implements noweb's syntax outright — "identical syntax and functionality" for block references, which is how code gets presented to the reader in one order and to the compiler in another.
:exportsdecides what survives the weave — the code, the results, both, or neither.- Language support is a small contract, not a plugin API. Tangling, editing and export are language-agnostic; only evaluation and live sessions need per-language Emacs Lisp functions "named according to language, following some simple conventions." 30+ languages at the time, and the authors note users were increasingly writing that support themselves.
- Execution asks first. "By default every execution of a code block requires explicit
confirmation from the user," suppressible via
org-confirm-babel-evaluate.
Safety: the corpus's one worked answer
Section 3.5 is short and it is the only place in this wiki where an executable-document system reasons about its own threat model. The argument runs: a reproducible-research document carries code that runs on the reader's machine; the primary defence is the reader recognising malicious code and declining to run it; and multi-language makes that defence weaker, because the reader may not know one of the languages in the file. The confirmation prompt exists to answer that.
This corrects a claim on executable-markdown, which said the ordinary mitigations — sandbox, per-execution gesture, separating the reading tool from the executing tool — were nowhere evidenced in the corpus. The per-execution gesture is evidenced here, has been the default since 2012, and was argued for on exactly the grounds that page raises. What remains unevidenced is a sandbox, and any measurement of whether the prompt works or just gets customised away.
Why this belongs in the spoke
It is the reproducible-research case made fourteen years before the corpus's current sources make it, in a statistics journal, with the artifact attached. Read next to executable-markdown and wiki-compiler, it says the idea of a document that runs is not new and did not arrive with LLM tooling; what has changed is who writes the code inside it.
The discussion adds an argument the corpus has not heard elsewhere: that literate programming and reproducible research stayed niche because their tools are "typically prescriptive and difficult to use," and that Org's contribution is a gradual adoption path — plain text editing first, code execution later, nothing forced. That is the same toolbox stance org-mode takes on complexity generally, applied to a specific failure of diffusion, and it sits close to the spoke's adoption-dynamics thread.
It also gives org-mode something none of the newer tools here have: an academic account of its own mechanism, rather than vendor documentation or a user's enthusiasm.
Caveat: this is 2012, by the system's own authors and its maintainer (Dominik wrote Org and maintains orgmode.org, which the paper states). It documents a design and demonstrates it; it does not measure adoption or compare performance against alternatives. The comparison table is a feature matrix drawn by the winning entry's authors. Every "yes" in it is a capability claim, not a usage figure.
Related
org-mode · literate-programming · reproducible-research · executable-markdown · wiki-compiler · tools-for-thought