Research · Blogs & Independent Thinkers
Back to sweepResearch sweep · deep · 1948 – 2026
Information Density and Semantic Determinacy - Formal vs Natural Language
Information density, entropy and semantic determinacy in formal versus natural languages, and what it implies for specifying computation
- Claude Opus 4.8
- academic
- frontier
- blogs
- tech
Synthesised 2026-08-27
Narrative
Independent writers engaging this topic mostly work downstream of the academic literature rather than generating new measurements, but several add genuine analytical value by testing claims against practice. Simon Willison's 2025 posts on vibe coding and vibe engineering are the clearest case: he distinguishes prompts accepted on trust from prompts whose output is tested and reviewed, which amounts to an informal statement of the brief's central question, how much formal residue has to sit alongside a natural-language prompt before behaviour is pinned down. Hillel Wayne's blog, written from inside the formal-methods community, makes the same point from the other direction: his 2019 piece on why people do not use formal methods argues the barrier is pedagogical rather than technical, and his TLA+ business-case post catalogues where formal specification has and has not paid off industrially.
On the ambiguity-as-optimum thread, Sean Trott's research-review blog and languagehat.com both engage directly with Coupé et al.'s 39 bits per second finding, explaining the syllable-rate methodology rather than just repeating the headline number, while Guy Wilson's Abstract Nonsense post raises the question of what 'efficiency' means once speech rate and information density are multiplied together. None of these sources overturns the finding, but they show independent writers doing the work of checking method rather than passing along the popular summary uncritically. LessWrong contributes similarly close readings: one 2015 post tests the ambiguity-is-optimal claim against constructed languages like Lojban, and a 2022 post revisits Shannon's original human-prediction entropy estimates for English, asking what exactly the 0.6 to 1.3 bits-per-character range is holding constant.
On the anti-natural-language-programming tradition, the clearest engagement is with Naur rather than Dijkstra: three independent blogs (codeutopia.net, cekrem.github.io, adropincalm.com) restate and extend Programming as Theory Building, with the most recent, from 2026, explicitly applying Naur's artefact-versus-theory distinction to code substantially written by language models. Dijkstra's EWD667 is itself treated as a primary text rather than commentary, and hxa.name's 2010 rebuttal is one of the few sustained independent counter-arguments found. On notation, Hillel Wayne's post on the J language and Ruben Verg's blog both push back on Iverson's 1979 claim that terse notation is a cognitive tool, arguing that context-dependence and terseness cut against comprehension rather than for it.
A minority of blogs repeat the folk claim that natural language carries less information per unit than code or formal notation, framing this as low density rather than low determinacy. Where sources in this lane make that move (for example some of the prompt-as-code Substack writing), it inverts what Hindle et al. actually measured, since their n-gram entropy estimates put source code at roughly 3 to 4 bits, lower than typical estimates for English. The more careful writers, Trott, Wayne, and the LessWrong entropy posts, keep the two properties, predictability and determinacy, analytically separate, which is the distinction the brief asks this sweep to preserve.
Sources
| ID | Title | Outlet | Date | Significance |
|---|---|---|---|---|
| b1 | Here's how I use LLMs to help me write code | Simon Willison's Weblog | 2025-03 | Willison treats prompts as an underdetermined interface layer, arguing that reliable LLM-assisted coding requires the human to supply the missing verification (tests, review, tight scope) that the prompt itself cannot encode. |
| b2 | Not all AI-assisted programming is vibe coding (but vibe coding rocks) | Simon Willison's Weblog | 2025-03 | Draws the line between accepting LLM output on trust and accepting it after verification, effectively separating specification-by-prompt from specification-plus-checking as two different reliability regimes. |
| b3 | Vibe engineering | Simon Willison's Weblog | 2025-10 | Proposes a disciplined counterpart to vibe coding built on automated tests, planning and code review, an explicit attempt to reintroduce a formal residue around a stochastic, natural-language-driven process. |
| b4 | Do different languages really convey information at the same rate? [research review] | Sean Trott (personal research blog) | 2019 | A working cognitive scientist's close reading of Coupé et al. 2019, explaining the syllable-information-rate methodology and what the 39 bits/second figure does and does not claim. |
| b5 | The Efficiency of Spoken Languages | languagehat.com | 2019 | An independent linguistics blog's cross-reading of the same Coupé et al. result, useful for triangulating how the finding was received outside the psycholinguistics specialist community. |
| b6 | Are some languages more efficient than others? | Abstract Nonsense (Guy H. Wilson) | 2021 | A graduate-researcher blog post interrogating whether 'efficiency' in the Coupé et al. sense is doing the same conceptual work as intuitive claims about language density, a useful check on overreach. |
| b7 | Why Don't People Use Formal Methods? | Hillel Wayne (personal blog) | 2019-01 | Argues the barrier to formal specification adoption is pedagogical rather than technical, directly bearing on why the formal-methods answer to specification ambiguity has stayed a niche practice. |
| b8 | J Notation as a Tool of Thought | Hillel Wayne (personal blog) | 2020-08 | Revisits Iverson's Turing Award thesis through the J language, testing the notation-as-cognitive-leverage claim against decades of subsequent evidence on terse array notations. |
| b9 | The Business Case for Formal Methods | Hillel Wayne (personal blog) | 2020-01 | A practitioner's ledger of what formal specification (TLA+, Alloy) has actually delivered in industrial use, distinct from the theoretical case usually made in academic papers. |
| b10 | A comment adding to Dijkstra on natural language programming | hxa.name (independent technical blog) | 2010-12 | An independent rebuttal-and-extension of EWD667 written decades after the original, showing the essay's argument is still actively contested rather than settled. |
| b11 | Natural Language Is an Unnatural Interface | Varun's Notes (Substack) | 2023-06 | Argues that unconstrained natural-language prompting reintroduces the ambiguity problem that structured interfaces were built to avoid, a direct engagement with the LLM-era reframe. |
| b12 | Driving AI Agents with Specifications | AI Changes Everything (Substack) | 2025-08 | Documents Harper Reed's spec-first codegen workflow, treating the written spec, not the prompt, as the artefact that constrains agent behaviour, evidence for the spec-driven-development trend. |
| b13 | Yeah, About Your "Precise" Specification... | Codemanship (Jason Gorman's blog) | 2026-01 | A software-craftsmanship consultant's skeptical rejoinder to claims that any written specification, formal or natural-language, is ever actually complete or unambiguous in practice. |
| b14 | The value of ambiguous speech | LessWrong | 2015-11 | Engages directly with the ambiguity-as-communicative-optimum thesis, using constructed languages like Lojban as a foil to test whether zero-ambiguity language would actually help. |
| b15 | Entropy Scaling And Intrinsic Memory | LessWrong | 2022-11 | Revisits Shannon's human-prediction entropy estimates for English and questions what the standard 0.6 to 1.3 bits per character range actually holds constant across estimation methods. |
| b16 | Forecasting progress in language models | LessWrong | 2021-10 | Uses English's predictability, the same property Shannon measured, as a forecasting variable for language model capability, linking the entropy literature directly to the LLM-era question. |
| b17 | You should read Programming as Theory Building | codeutopia.net | 2026-05 | A recent independent restatement of Naur's 1985 argument aimed at an AI-coding-era audience, applying the theory-versus-artefact distinction to code produced largely by LLMs. |
| b18 | Programming as Theory Building: Why Senior Developers Are More Valuable Than Ever | cekrem.github.io (personal blog) | 2024 | Extends Naur's claim that the artefact never contains the theory into an explicit argument about what AI-generated code cannot substitute for. |
| b19 | Thoughts on Peter Naur's Programming as Theory Building | adropincalm.com (personal blog) | 2020 | A close practitioner reading of Naur's essay, useful for cross-checking how consistently independent writers represent his actual claim versus a looser 'tacit knowledge' gloss. |
| b20 | Your Notation for Your Thoughts | Ruben Verg's blog | 2022 | A working programming-language designer's critique of Iverson's notation-as-cognitive-leverage thesis, arguing terseness and context-dependence in APL-family notations cut against the claimed comprehension gains. |
| b21 | The Scaling Hypothesis | gwern.net | 2020 | Cites the Shannon 1951 and Teahan and Cleary entropy-of-English estimates directly and uses the residual gap between human and n-gram prediction to motivate the scaling argument for language models. |
| b22 | Dissecting Non-Determinism in Large Language Models | ICLR Blogposts 2026 | 2026 | A peer-reviewed-adjacent blog track post distinguishing genuine stochasticity from engineering-induced variance in LLM output, directly relevant to the residual-entropy-of-behaviour framing. |
| b23 | Prompts are Programs | SIGPLAN Blog | 2024-10 | Argues from a programming-languages research perspective that prompts should be treated as a new class of program with their own semantics, engaging directly with what a prompt formally specifies. |
| b24 | On OpenAI's Model Spec | Don't Worry About the Vase (Substack, Zvi Mowshowitz) | 2024-06 | A close independent reading of a named-author document intended to disambiguate model behaviour, treating it as an attempt at formal specification for a stochastic system. |