|
| 1 | +# 🛣️ Roadmap |
| 2 | + |
| 3 | +**One algorithm, every language, step by step.** |
| 4 | + |
| 5 | +This is a long-horizon project. We grow by milestones, not deadlines: each |
| 6 | +milestone is a number of **verified** languages, and each one unlocks the |
| 7 | +infrastructure the next one needs. We move on when a milestone is reached, |
| 8 | +not when a date arrives. |
| 9 | + |
| 10 | +```text |
| 11 | + ✅ ──── 64 ──── 99 ──── 128 ──── 256 ──── 512 ──── 1024 |
| 12 | + base 2⁶ 🍺 2⁷ 2⁸ 2⁹ 2¹⁰ |
| 13 | + ▲ |
| 14 | + we are here |
| 15 | +``` |
| 16 | + |
| 17 | +| Milestone | Why this number | What it unlocks | |
| 18 | +|---|---|---| |
| 19 | +| ✅ **Foundation** | — | Spec, test vectors, runner, CI, first languages | |
| 20 | +| 🎯 **64** | 2⁶, the number of computing | Built by the core team, 10 languages per session; spec 1.0 | |
| 21 | +| 🍺 **99** | *99 Bottles of Beer* | Community takes over; dashboard, hidden suite, Guinness application | |
| 22 | +| 🔤 **128** | 2⁷, the ASCII table | Historical machines and emulators, spec extensions | |
| 23 | +| 💾 **256** | 2⁸, one byte | Formal record attempt, second challenge | |
| 24 | +| 🧮 **512** | 2⁹ | Rare and esoteric languages, long-term archive | |
| 25 | +| 🚀 **1024** | 2¹⁰, one "kibi" of languages | The moonshot: every language that can run it | |
| 26 | + |
| 27 | +Live progress: [README](README.md) · open work: |
| 28 | +[milestones](https://github.com/openapi/every-language-fiscal-code/milestones). |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## ✅ Foundation (done) |
| 33 | + |
| 34 | +- [x] Translated and published the [challenge](CHALLENGE.md) |
| 35 | +- [x] [Specification](SPECIFICATION.md) v0.1.0: algorithm, I/O contract, error codes |
| 36 | +- [x] 87 shared [test vectors](test-vectors/), cross-checked by two independent implementations |
| 37 | +- [x] Dockerized runner (`./elc`), per-language containers, network disabled |
| 38 | +- [x] JSON report and per-language evidence |
| 39 | +- [x] GitHub Actions CI |
| 40 | +- [x] Python and PHP verified |
| 41 | +- [x] Hacktoberfest 2026, with one issue per wanted language |
| 42 | + |
| 43 | +## 🎯 64: the first goal |
| 44 | + |
| 45 | +*2⁶. The word size of every modern processor; see [Why 64?](README.md#-why-64).* |
| 46 | + |
| 47 | +The first 64 languages are built **by the core team**, at a steady pace of |
| 48 | +**ten languages per working session**. That gives the community a solid, |
| 49 | +varied base to start from, and proves that the runner and the specification |
| 50 | +hold up across very different paradigms before anyone else depends on them. |
| 51 | +Community Pull Requests are welcome at any time and simply make us faster. |
| 52 | + |
| 53 | +**Sessions** (languages already verified are ticked): |
| 54 | + |
| 55 | +| Session | Languages | Total | |
| 56 | +|---|---|---| |
| 57 | +| 1 | ✅ Python, ✅ PHP, C, C++, Rust, Go, JavaScript, Java, Ruby, Perl | 10 | |
| 58 | +| 2 | C#, Kotlin, Scala, Lua, Swift, Dart, Haskell, OCaml, Elixir, Erlang | 20 | |
| 59 | +| 3 | F#, Clojure, Common Lisp, Scheme, Racket, Prolog, Julia, R, Tcl, Groovy | 30 | |
| 60 | +| 4 | Bash, AWK, COBOL, FORTRAN, Ada, Pascal, D, Nim, Zig, Crystal | 40 | |
| 61 | +| 5 | VB.NET, Octave, Smalltalk, Forth, Raku, PowerShell, Gleam, V, Odin, Standard ML | 50 | |
| 62 | +| 6 | Idris, Mercury, Haxe, Vala, Objective-C, FreeBASIC, x86-64 Assembly, Io, Rexx, Chapel | 60 | |
| 63 | +| 7 | APL, J, Pony, Hare | **64** | |
| 64 | + |
| 65 | +The order may change if a toolchain turns out to be hard to containerize. A |
| 66 | +language that cannot be verified in its session moves to a later one instead |
| 67 | +of blocking the others. |
| 68 | + |
| 69 | +**Infrastructure, built along the way.** |
| 70 | +- [ ] CI runs only the languages touched by a Pull Request, plus all of them nightly |
| 71 | +- [ ] Languages run in parallel in CI |
| 72 | +- [ ] Badge, progress bars and [LANGUAGES.md](LANGUAGES.md) generated from `report.json` |
| 73 | +- [ ] Contributor credits generated from manifests |
| 74 | + |
| 75 | +**Specification.** |
| 76 | +- [ ] Freeze **spec 1.0**: no more changes to existing expected outputs |
| 77 | +- [ ] Publish the language-classification rules as final (versions, dialects, supersets) |
| 78 | + |
| 79 | +**Community.** |
| 80 | +- [ ] Write-up: "The first 64 languages" |
| 81 | +- [ ] Open the issue backlog for the next milestones |
| 82 | + |
| 83 | +## 🍺 99: a toast to 99 Bottles |
| 84 | + |
| 85 | +*The [99 Bottles of Beer](https://www.99-bottles-of-beer.net) project has |
| 86 | +collected the same little song in well over a thousand languages since the |
| 87 | +1990s, a classic of polyglot programming. At 99 we raise a glass to it, one |
| 88 | +step before the symbolic 100.* |
| 89 | + |
| 90 | +From here on the **community** leads: every language beyond the core set is |
| 91 | +an open issue waiting for a contributor. |
| 92 | + |
| 93 | +**Infrastructure.** |
| 94 | +- [ ] Static dashboard on GitHub Pages: progress, languages, authors, tests, sources |
| 95 | +- [ ] Hidden verification suite, run by CI alongside the public one, so that |
| 96 | + implementations cannot be tuned to known examples |
| 97 | +- [ ] Tagged releases with a signed evidence bundle (report, hashes, logs) |
| 98 | + |
| 99 | +**Record.** |
| 100 | +- [ ] Search for existing Guinness World Records categories |
| 101 | +- [ ] Submit the title proposal from [RECORD.md](RECORD.md) |
| 102 | +- [ ] Obtain the official guidelines and adapt evidence collection to them |
| 103 | + |
| 104 | +**Community.** |
| 105 | +- [ ] Write-up: paradigms, toolchains, surprises |
| 106 | + |
| 107 | +## 🔤 128: the ASCII milestone |
| 108 | + |
| 109 | +*2⁷. The 128 characters of ASCII, the table that taught computers to write.* |
| 110 | + |
| 111 | +**Historical computing.** |
| 112 | +- [ ] Support for languages that need emulators or vintage environments |
| 113 | + (e.g. DOS, mainframe or 8-bit toolchains in containers) |
| 114 | +- [ ] Distinguish **historically verified** implementations from those |
| 115 | + **verifiable in current CI** |
| 116 | +- [ ] Toolchain recipes preserved in the repository whenever legally possible |
| 117 | + |
| 118 | +**Specification 1.x extensions.** |
| 119 | +- [ ] Validate an existing fiscal code |
| 120 | +- [ ] Decode the information contained in a code |
| 121 | +- [ ] Homocode (*omocodia*) variants |
| 122 | + |
| 123 | +## 💾 256: one byte of languages |
| 124 | + |
| 125 | +*2⁸. Every value a byte can hold: one language for each.* |
| 126 | + |
| 127 | +**Record.** |
| 128 | +- [ ] Formal record attempt, **only** if the category has been approved and |
| 129 | + under the official rules received |
| 130 | + |
| 131 | +**Ecosystem.** |
| 132 | +- [ ] Launch the second challenge, `every-language-sha256`, on the same runner |
| 133 | +- [ ] Multi-architecture verification (amd64 and arm64) |
| 134 | + |
| 135 | +## 🧮 512: the long tail |
| 136 | + |
| 137 | +*2⁹. Rare, academic and esoteric languages.* |
| 138 | + |
| 139 | +- [ ] Dedicated track for esoteric languages, with classification rules |
| 140 | +- [ ] Long-term archive of sources and toolchain images (e.g. Software Heritage) |
| 141 | +- [ ] Reproducible rebuilds of every verified implementation from a tag |
| 142 | + |
| 143 | +## 🚀 1024: the moonshot |
| 144 | + |
| 145 | +*2¹⁰. One "kibi" of languages.* |
| 146 | + |
| 147 | +Every programming language that can still be run, running the same algorithm |
| 148 | +and passing the same tests. We may never get there, and that is fine: the |
| 149 | +journey is the project. |
| 150 | + |
| 151 | +--- |
| 152 | + |
| 153 | +## How the roadmap evolves |
| 154 | + |
| 155 | +- A milestone is **reached** when the number of `verified` languages in the CI |
| 156 | + report on `main` reaches it. |
| 157 | +- Infrastructure items may land earlier than their milestone. They are listed |
| 158 | + where they become **necessary**. |
| 159 | +- Changes to this roadmap are proposed through issues or Pull Requests. |
0 commit comments