Plain English
An experimental programming language and self-hosting development environment whose source code reads like ordinary English sentences, created by the Osmosian Order to test whether natural language can serve as real source code.
Created by Gerry Rzeppa and Dan Rzeppa (the Osmosian Order of Plain English Programmers)
Plain English is an experimental programming language in which source code is written as ordinary English sentences, created by Gerry Rzeppa and his son Dan Rzeppa under the whimsical banner of the Osmosian Order of Plain English Programmers. It is a sustained experiment: an attempt to answer, with a working artifact, whether natural language can work as real, compilable source code. The entire system — a complete integrated development environment with its own compiler, editor, file manager, and page-layout tools — is itself written in Plain English, in roughly 25,000 sentences that ship with the download.
History & Origins
The project grew out of a personal frustration. Gerry Rzeppa, having programmed for many years in many languages, noticed that he habitually thought in English pseudo-code and then translated those thoughts into whatever artificial syntax he happened to be using. One day he asked the obvious question: why not simply code at the natural-language level and skip the translation step? He and his elder son, Dan, talked it over and decided to test the theory directly by building a compiler.
They wrote the first version over the winter of 2005–2006. The work was accompanied by a now widely circulated white paper, “Plain English Programming” (copyright 2006), published under the playful, quasi-monastic identity of the Osmosian Order, with Gerry styling himself the “Grand Negus” and Dan the “Prime Assembler.” The paper frames the whole endeavor around three questions:
- Is programming actually easier when you do not have to translate natural-language thoughts into an alternate syntax?
- Can natural languages be parsed in a deliberately “sloppy” way and still yield a stable, predictable programming environment?
- Can low-level programs — like compilers themselves — be written in high-level, English-like languages?
Plain English exists to answer all three with a confident “yes,” backed by a self-hosting implementation.
Note: some catalogs list this language’s origin as around 2000, but the creators’ own account places the first working compiler in the winter of 2005–2006, and the founding white paper is dated 2006. This page uses 2006 as the first-appearance year accordingly.
Design Philosophy
Plain English is built on a small set of strong convictions about how programming should feel:
- Code should read like prose. A program is a sequence of English sentences. Routines, conditions, and loops are expressed in words a non-programmer can follow, rather than in punctuation-heavy syntax.
- Sloppy parsing, precise meaning. The compiler tolerates a degree of arbitrary word choice and “noise” words, parsing input loosely — yet the sentences it actually acts on must still describe the program’s operation precisely. The slogan is essentially that the language is like pseudocode that compiles.
- The whole system should be comprehensible. Rather than hiding behind millions of lines of opaque tooling, the Osmosians made the entire environment small (a sub-megabyte download) and fully open in its own language, so a curious reader can study how a real compiler works by reading English.
- Simplicity over feature-completeness. Plain English deliberately omits much of the machinery of industrial languages. Its appeal is pedagogical and philosophical: it is a place to think clearly about what programming fundamentally requires.
What the Language Looks Like
In Plain English, you define data types (“things”), routines, and logic in full sentences. A routine to add two numbers and a typical call read close to how you might explain them aloud:
To add a number to another number giving a result:
Intel $8B85080000008B008B9D0C0000000301898500000000.
To run:
Start up.
Add 2 and 2 giving a count.
Write the count on the console.
Wait for the escape key.
Shut down.
Routines are written as English sentence templates — “To add a number to another number giving a result” — and later invoked by matching prose — “Add 2 and 2 giving a count.” Variables are introduced naturally (“a count”), and the standard library exposes I/O through readable verbs like “Write … on the console.” Where raw performance or hardware access is needed, the language allows inline machine code, illustrated above by the Intel directive carrying hexadecimal x86 bytes.
Key Features
- A self-hosting toolchain. The compiler, editor, file manager, hex dumper, linker, and WYSIWYG page-layout facility are all written in Plain English. The roughly 25,000-sentence source is included in the download, and the system can compile itself.
- Native-code generation. According to the community-maintained compiler’s documentation, it reads extension-less source files and produces 32-bit x86 Portable Executable files — actual native Windows programs, not interpreted bytecode.
- Windows targeting. The compiled programs use 8-bit ASCII and run on Windows systems; the toolchain is reportedly usable across a range of Windows versions, and the resulting programs are reported to run under WINE on other platforms. (Specific OS-version support is not fully documented in the project’s official materials.)
- A simple type system. Programmers define record-like aggregate types — the language’s “things” — and work with numbers, pointers, and text, keeping the model approachable for beginners.
- Inline assembly escape hatch. For low-level work, hexadecimal machine code can be embedded directly, which is how parts of the runtime and arithmetic primitives are implemented.
- Multilingual potential. The existence of Español Llano, a Spanish-language edition, demonstrates that the natural-language design generalizes beyond English.
Evolution
Plain English has always been a small, tightly held project. After the original mid-2000s implementation and white paper, development continued in numbered builds of the Osmosian IDE. Version 4700 (CAL-4700) was released in January 2017, and in May 2018 the Order launched a blog, “The Journey Begins,” to republish its documentation and reach new readers.
Beyond the original authors, the language found a second life through a community “dynamic fork” hosted on GitHub by a developer using the handle “Folds” — syntax-compatible with CAL-4700, though not endorsed by the Osmosian Order. That fork began from version 3040 of the Osmosian IDE, folded in code from version 4700, and promoted build CAL-4018 to its master branch in March 2019, keeping the compiler buildable on contemporary Windows systems. This community stewardship — along with the Spanish-language edition — is how Plain English has remained runnable.
Current Relevance
Plain English is not, and was never intended to be, a production language competing with Python or C. Its relevance is pedagogical and philosophical. It offers a concrete answer to a recurring dream in computing — that programs might one day be written in the language we already speak. The Osmosians delivered a complete, self-hosting environment whose every component is written in readable English, and anyone can download it, read it, and run it.
It continues to surface in discussions of natural-language programming, beginner-friendly tooling, and the design of small self-hosting compilers — featured by outlets such as Hackaday and debated on forums like Hacker News and OSDev. Its presence on Rosetta Code, with solutions to classic tasks, lets curious readers compare its prose against conventional syntax directly.
Why It Matters
In an era now dominated by large language models that turn English instructions into code, Plain English stands out as a much earlier, hand-built attempt at the same goal — one that makes the English be the code, deterministically and transparently, instead of generating code from English. Whether or not one finds its “sloppy parsing” approach convincing, the project shows that the boundary between human language and machine instruction is more negotiable than it first appears. As a small, complete, self-documenting system, Plain English is a useful case study in language design, compiler construction, and accessible programming.
Timeline
Notable Uses & Legacy
The Osmosian IDE (self-hosting compiler)
The language's flagship demonstration is the development environment itself — a unique interface, file manager, text editor, hexadecimal dumper, native-code compiler/linker, and WYSIWYG page-layout facility — all written entirely in Plain English in roughly 25,000 sentences, proving that even a compiler can be written in the language.
Español Llano
A Spanish-language counterpart to Plain English, developed with community help, whose compiler accepts source written in Spanish — a demonstration that the natural-language approach is not tied to English specifically.
Community 'dynamic fork' (CAL)
A community fork maintained on GitHub — syntax-compatible with CAL-4700 but not endorsed by the Osmosian Order — that produces 32-bit x86 Portable Executable files for Windows, keeping the compiler buildable on contemporary Windows systems and, reportedly, under WINE.
Rosetta Code task solutions
Plain English has its own category on Rosetta Code, where contributors have written solutions to classic programming tasks, providing side-by-side comparisons of its prose-like syntax against hundreds of other languages.
Educational and demonstration discussions
The language is regularly cited in discussions of natural-language and beginner programming — featured by outlets such as Hackaday and debated on Hacker News and OSDev — as a thought-provoking proof of concept rather than a production tool.
Running Today
Sources & Further Reading
- Plain English Programming: The Osmosian Order's blog Official
- CAL-4700 Windows development system (.zip, includes source) Download
- Plain English Programming: instruction manual (PDF) Documentation
- The Osmosian Manifesto (PDF, 2006) History
- Folds/english: community dynamic fork on GitHub Community
- Plain English on Rosetta Code Community
- Plain English Programming on the OSDev Wiki Reference
- Programming In Plain English (Hackaday, June 2020) Reference