Log — Programming Languages Wiki
[2026-08-05] split | programming-languages-wiki created from the hub _inbox
Spun out of the software-design cluster once language sources arrived faster than the holding pen could
justify. Two records had been parked earlier the same day (rethinking-java-design-patterns, Clojure)
under the finding that no spoke owned programming languages or paradigms — dev-tooling-wiki owns the
compiler, VCS, formats and build tooling beneath a codebase, engineering-education-wiki owns curricula.
Rust, Go, PHP, Node.js, Elixir and C followed within minutes of the curator being told a third source
would trip the spin-out, so the founding corpus is 8 sources, not 3.
Founding shape: six concept pages (programming-language, memory-management-model,
concurrency-model, hosted-language, language-governance, design-patterns) and eight
source pages. Seven of the eight sources are a project’s own front page, which is the spoke’s founding
weakness and is recorded as a standing caveat in CLAUDE.md and in synthesis.
The two _inbox records were deleted as their content moved here.
[2026-08-05] ingest | Eight founding sources
Ingested together rather than one at a time, because the comparison is the content — a single language home page says almost nothing that its neighbours do not also claim, and the four axes only appear when they are set side by side.
Tier note: the front pages are graded T2 (first-party, promotional) rather than T1. c-language.org is T3 — a community site secondary to the ISO documents it points at — and the DZone article is T3. Nothing in the founding corpus is independently measured, which is where the growth edges start.
[2026-08-05] ingest | Prolog, The Power of Prolog, SPARK
Three more from the curator’s run, ingested together. New pages: prolog (source, T2 — Wikipedia), the-power-of-prolog (source, T2 — Triska), spark (source, T2 — AdaCore), and the concept page logic-programming.
Growth edge 2 closed on the day it was written, and not the way the edge expected. Prolog answers all four of programming-language‘s axes and is not described by any of them; the axis that matters for a logic language is the evaluation strategy. Recorded in synthesis as a correction to the framework rather than an addition to it — the four axes were a portrait of the founding sample.
prolog is also the first third-party source here, and the contrast is a finding about method: seven project front pages produced no weaknesses between them, one encyclopedia article produced four.
the-power-of-prolog is the first normative source — it argues for pure declarative Prolog against the older teaching canon. Routed here rather than to engineering-education-wiki (runner-up) because the substance is an argument about the language, with the curriculum angle noted on the page.
spark adds a fourth position on safety — prove the bug impossible — and carries two details worth
keeping: ownership and borrow-checking derived from Rust, moving a general-purpose safety idea into a
certification-driven language, and the specification problem as its cost. ../research-wiki reached the
same limit from the formal-methods side the same day (formal-verification).
[2026-08-05] lint | tier regrade — official language sites T2 → T1
Curator’s call, overriding my initial reading. It is also what ../QUALITY.md already says: an official
project site or first-party doc is T1 whoever links to it, and the tier ladder measures distance
from the primary source, not credibility. My T2 grading was the deviation.
Regraded: rust, go, clojure, php, elixir, nodejs, spark — frontmatter,
in-body tier note and index.md. Unchanged: c (T3, a community site secondary to the ISO documents),
prolog (T2, Wikipedia), the-power-of-prolog (T2, single-author book),
rethinking-java-design-patterns (T3).
The caveat did not move with the tier. Each regraded page now states what it is authoritative about — design intent — and that its performance and adoption claims are first-party and unmeasured. Growth edge 1 was rewritten accordingly: the corpus’s problem is not the grade, it is that nothing has been checked, and the fix is a specification or an independent comparison rather than another front page.
One flagged for the curator on spark: it is a commercial product page, the weakest instance of T1 here. If vendor product pages should sit below official language sites, that is the page to move.
[2026-08-05] split | five pages received from dev-tooling-wiki
Curator’s instruction (“move them”) after that spoke’s domain was narrowed the same day. Received: dart, kotlin, kotlin-and-android, jank and the creator entity jeaye-wilkerson. jetbrains and google stayed in dev-tooling — makers with business there beyond a language — and are now cross-wiki links from here.
They are not filler. jank is a Clojure dialect re-hosted on C++, which set beside clojure‘s own JVM/CLR/JS targeting gives the spoke one language on two unrelated runtimes — the strongest evidence hosted-language has for its claim that a language and its host are separable. Folded into that page and into synthesis, together with the multi-host variant dart and kotlin represent and the JIT-for-iteration / AOT-for-release split that turns out to be a runtime property rather than a language one.
Two tier corrections while handling them. jank had tier: T1 in frontmatter and “T2” in the body —
resolved to T1 per the ladder and today’s policy. kotlin-and-android moved T2 → T1 as a first-party
vendor doc; that extends the curator’s “official language sites” decision to a platform doc, which is my
reading and is flagged on the page for reversal. kotlin stays T2 — its source is Wikipedia, not
JetBrains.
What the pages kept from their old home is stated on each: Dart and Kotlin were written inside a compiler-performance thread that stays in dev-tooling, and their prose now points there rather than claiming it.
[2026-08-06] ingest | Zero (zerolang) — the program is a graph, and the author is an agent
Routed from the hub (Telegram, curator). Matched two spokes: the substance is a language and its design,
so it landed here; ../agentic-tooling-wiki is the runner-up and is now an adjacency in synthesis
rather than a second copy of the page.
New page: zero-lang (T1, first-party site + repo). Read the GitHub repo alongside the front page, which is where the honest parts are — Apache-2.0, ~5.2k★, and a warning naming breaking changes and security issues.
The reason it is not just another front page: every other source here argues about what source text
means. Zero stores the program as a compiler-owned semantic graph, projects .0 files for human review
only, and makes an edit a checked patch addressed by node hash. That sits underneath all four axes
programming-language proposes, so the umbrella page and synthesis both got a section rather than a
table row. clojure is the nearest relative and the comparison is the useful part — code-as-data for
the macro author versus a graph for the compiler.
Held back from claiming more: the examples are hello-world scale, and the token-efficiency and fewer-wrong-edits claims are first-party and unmeasured. Recorded as growth edge 1 recurring in a new form, not closed.
Dedup correction, same session. I first wrote a vercel Organization page here; the entity-index
query for “Vercel” returned nothing above threshold and I trusted it. It was wrong — ../cloud-wiki
has held a canonical vercel page since 2026-06-10. The duplicate broke four existing cross-wiki
links from static-site-wiki, which check-wikilinks caught as an ambiguous target. Page deleted;
Vercel is named in prose with a pointer to cloud-wiki, matching how jetbrains and google are
handled. The governance observation it carried — a company research org as a fifth arrangement next to
committee / foundation / RFC / corporate-funded core — moved into zero-lang as a footnote. Worth
noting for later: the entity index missed an existing page, so a null result from it is not proof of
absence.
[2026-08-06] ingest | TypeScript — typescriptlang.org
Routed from the hub (Telegram). New pages: typescript (T1, first-party site) and type-system (DefinedTerm).
The reason it needed a concept page rather than a table row: TypeScript answers none of the four axes in programming-language — no memory model, no concurrency model, no runtime, and it erases itself at compile time. Its whole contribution is the type layer, so the axis the founding eight all had and none of them argued about finally has a source that makes it the point. type-system collects the spread that was already in the corpus but unwritten: c classifies storage, kotlin rules out null, rust makes ownership a type error, spark proves absence of runtime errors.
hosted-language got a section too. TypeScript’s host is another language, not a VM, which is a case the page did not cover.
Held back: the homepage’s “loved by developers” numbers are the 2020 Stack Overflow and State of JS
surveys, quoted by Microsoft on a page read in 2026, with no current figure offered. Recorded as such
and promoted to growth edge 4 — nothing here measures whether gradual typing catches defects. Version
7.0 recorded with freshness: volatile.
Entity: reused the existing cross-wiki microsoft node in ../agentic-tooling-wiki rather than
creating one here — the vercel duplicate from 2026-08-05 is the reason that check is now routine.
[2026-08-06] ingest | Language batch — 16 sources in ~25 minutes
Routed from the hub (Telegram), one after another. Fourteen landed here; Csound and Pure Data went to
../music-tech-wiki because their substance is sound synthesis, with the language angle noted there as
adjacency.
New source pages. common-lisp (T3), scheme (T3), lisp (T2), haskell (T1), erlang (T1), java (T1), assembly-language (T2), awk (T2), bash (T2), javascript (T2), fsharp (T2), emacs-lisp (T2), jq (T2), lua (T2), nim (T2), ocaml (T1), picolisp (T1) — plus typescript (T1) earlier in the same session.
New concept pages. type-system and evaluation-strategy, each written because a source made an axis the point rather than an assumption: TypeScript and Haskell respectively.
New entities. paul-graham, john-mccarthy. Reused the cross-wiki microsoft node; named
Oracle in prose with a pointer to ../cloud-wiki rather than creating a node, following the vercel
lesson from 2026-08-05.
Pages substantially revised. programming-language (seven new table rows, four of them with blank columns — a result, not a reading failure), language-governance (three new arrangements), hosted-language (host as a language, host as an application, both ends of the BEAM pair), concurrency-model, memory-management-model, type-system, logic-programming, synthesis, index.
What changed at the corpus level, written up in synthesis: the spoke stopped being eight self-descriptions. Eleven third-party sources arrived at once and they report the things front pages omit — Shellshock, JavaScript’s coercion criticisms, Emacs Lisp’s dynamic-scoping regret, Lisp’s decline, Lua’s version breakage. Growth edge 1 is substantially closed and re-aimed at specifications and measured benchmarks; edge 4 narrowed to “one proposal followed end to end” now that TC39 is documented; edge 3 (Java) was opened by java‘s empty download page.
Recorded but not resolved: a data-model axis is forming across awk, jq, lua, picolisp and assembly-language with no page yet. Left as a note in synthesis rather than a thin page — the next source on it should decide the shape.
Honest limits of this batch. Every Wikipedia page was read through a fetch summary, not in full, so these pages carry the article’s emphasis and my compression of it. Version numbers (Bash 5.3, jq 1.8.2, Erlang/OTP 29, OCaml 5.5.0, TypeScript 7.0) are dated where recorded and marked volatile. Nothing here is a benchmark, and no claim in this batch was independently checked against a second source.
[2026-08-06] ingest | Python and Perl (batch continued)
Two more from the same Telegram run, both first-party home pages (T1).
python and nodejs are the corpus’s only two front pages that argue in runnable code instead of adjectives — no benchmark, no adoption figure, no superlative on either. Read against java‘s download page and typescript‘s 2020 surveys, that is a pattern worth naming: how hard a page sells tracks how much persuading the language still has to do. Python’s page also names no memory model, no concurrency model and no type system, which is not an absence of those things but a statement about what it competes on.
perl sells duration — “over 37 years of development”, CPAN’s 25,000 modules, 230+ local groups — and never mentions text processing, the thing awk‘s page credits it with generalizing. The omission is the finding. Raku gave language-governance a fourth answer to a breaking redesign: a separate name, both languages continuing, adoption not inherited.
Held back: neither page states a change process. Python’s PEPs and Perl’s governance detail are elsewhere, so both sit with java rather than with javascript‘s documented TC39 pipeline.
[2026-08-06] ingest | Zsh (zsh.org)
New page: zsh (T1, first-party). The page itself is nearly empty — one descriptive sentence, then FTP/HTTP mirrors in five countries and a mailing-list archive. Version 5.9, “current” since October 2022. No maintainer, no licence, no feature list; nothing about completion, globbing or themes.
What made it worth a page anyway is the one sentence: “designed for interactive use, although it is also a powerful scripting language.” bash‘s entry states the same duality with the two roles level. Zsh states a hierarchy. The corpus now has both poles of that tension stated by the languages themselves instead of inferred, and bash got a paragraph pointing at it.
Second observation, recorded but not built out: bash‘s page already noted macOS switching its default to zsh over the GPL-3 licence. Zsh’s own site never mentions winning that ground — no licence, no comparison. Filed alongside java as the corpus’s second source that is a download page rather than a description.
Held back: everything about Zsh’s actual feature set. It is not on the source, so it is not on the page. A follow-up source (the manual or the Wikipedia article) would be the way to close that.
[2026-08-06] ingest | Zsh documentation index (refresh of zsh)
The curator sent the follow-up source I asked for. It is also a distribution page: the manual in eight
formats, built with Yodl and texi2html. No version, no author, no chapter list. Refreshed zsh in
place rather than creating a second page — same subject, second facet, and the doc URL is cited inline
since frontmatter carries one url:.
The reading that made it worth the refresh is structural rather than stated. The manual ships six indices — concepts, variables, options, functions, editor functions, styles/tags — and three of those categories would be odd anywhere else. A dedicated index for editor functions means the line editor is part of the language; one for styles and tags means the completion system has its own configuration namespace; a heavy options index means behaviour is meant to be switched. That corroborates the home page’s interactive-first claim from the documentation’s shape, without inventing a feature list the source does not contain. Contrast written into the page: bash leaves line editing to readline, a library outside the shell.
Still absent after two sources: version, licence, maintainer, and any account of globbing or expansion. Recorded on the page as an explicit gap.
[2026-08-06] ingest | Z shell (Wikipedia) — third source on zsh, refresh in place
The third-party source, and it closes every gap the two first-party pages left open. Paul Falstad, Princeton, 1990; the name comes from the login of a TA there, Zhong Shao. “A cross between ksh and tcsh”, Bourne-compatible and deliberately not fully POSIX. MIT-modern-variant licence. Maintained by Peter Stephenson and others. The feature set the project’s own pages withhold — programmable completion across hundreds of commands, extended globbing without external utilities, history shared live between sessions, spelling correction, ZLE, loadable modules down to TCP sockets and FTP.
It also confirms two things the earlier pages left as inference: Oh My Zsh at 2,300+ contributors, 300+ plugins and 140+ themes, so the configuration surface really did grow a distribution layer; and Apple making Zsh the macOS default in Catalina, 2019, replacing GPLv2 Bash — the licence story bash‘s article implied and zsh.org never mentions.
The finding worth keeping. Current version is 5.9.2, 12 July 2026. zsh.org says 5.9 and calls it
current as of October 2022 — two releases and four years stale. The standing caveat in CLAUDE.md says
a first-party page is authoritative on design intent and unverified on everything else. This sharpens
it: a first-party page can also be wrong about the fact it is most authoritative on. Written into
zsh and worth carrying into the next quality pass, because every freshness: volatile version
number in this spoke came from a vendor page.
Page tier now recorded as T1 (+T2) since it rests on both kinds of source; three URLs, one page, no duplication.
[2026-08-06] quality | Version re-verification across the spoke
Curator asked for it after zsh. Eleven version claims checked against current sources; scorecard in
the hub quality-log.md.
Eight confirmed unchanged (nodejs, rust, php, elixir, python, bash), two refined (jq → 20 June 2026, a CVE patch; erlang → the 29 line is at 29.0.5, 4 Aug 2026), and one real gap: typescript 7.0 is correct and shipped 8 July 2026 as a Go rewrite of the compiler — a fact typescriptlang.org omits on the page selling “trustworthy output”. python is now the only version in the spoke confirmed by an independent second source. ocaml and perl stay single-sourced and now say so on the page.
The conclusion is in synthesis and it revises the expectation the zsh case set: a stale number is rare. What is common is a front page that stops at the announcement — the major release is advertised, the patch stream with the security fixes is on GitHub, and a compiler rewrite goes unmentioned. php is the only front page here that behaves like a release board.
Also recorded, because it argues against my own method: the GitHub releases fetch for TypeScript was itself a year out of date and contradicted the vendor. A third source settled it. One disagreement is not a finding.
[2026-08-06] quality | Correction — the TypeScript 7.0 fact was already in the hub
Found while checking the deployed site. I reported the Go compiler rewrite as a corpus gap; it is not.
../dev-tooling-wiki has held typescript-7-go-compiler since 2026-06-18 with the GA benchmarks.
What was missing was a cross-link, and the reason is that I deduped inside this spoke only. The spoke
boundary was drawn correctly on its own: compiler-as-build-infrastructure there, the language here.
Links added both ways and the claim on typescript rewritten to say so. Correction also appended to
the hub quality-log.md scorecard.
[2026-08-09] ingest | C++ — the standard, and the designer’s history of it (via research pass)
Coverage edge 6 closed with the two halves it asked for. cpp from isocpp.org (the committee’s own site, T1 for what the standard is), and cpp-hopl — Stroustrup, Thriving in a Crowded and Changing World: C++ 2006–2020, HOPL IV, Proc. ACM PL 4(HOPL):70, June 2020, T1, 168 pages, extracted locally with pypdf.
The gap. c, rust and go all had pages while the language with probably the largest deployed codebase in the roster had none.
What the sources gave that a feature list would not. The standard’s identity works like c‘s — ISO/IEC 14882, C++23 named for the year the technical work finished, published as :2024, sold rather than published. The interesting material is governance: up to 250 people at week-long meetings three times a year, consensus decisions, and Stroustrup’s own list of the three demands the committee holds simultaneously — simpler, more features, don’t break my code. The third always wins, and the structural reason is that nobody in a consensus process can impose a migration cost on everyone else. That is language-governance‘s no-owner model with a first-party account attached, including a candid line about “design by committee, bureaucratic paralysis, and excessive enthusiasm for a variety of language fashions.”
Adoption, with the caveat recorded. 3 million to 4.5 million developers, 2006–2020, against better-funded competitors. The number is the paper’s; the explanation (stability and familiarity) is the language designer’s argument in his own authorized history, with no counterfactual. Filed in synthesis as a hypothesis about the roster, not a finding.
Successor edge: C++‘s own answer to memory safety — profiles or epochs — which the corpus has only in rust-shaped form.
Entities: 0 created — Stroustrup deferred until a second source cites him; the spoke’s Person pages exist where a person’s role is the claim.
[2026-08-12] research | Pure functional programming in TypeScript (4 sources)
Curator asked for research on pure FP in TypeScript. Routed here from the hub: the subject is a
paradigm and a type system, not tooling around a codebase (the dev-tooling-wiki seam) and not
application structure (frontend-architecture-wiki).
Sources (all T1): effect (effect.website) · fp-ts (gcanti.github.io + the repo’s status notice) · lightweight-hkt (Yallop & White, FLOPS 2014, LNCS 8475 — read from the PDF, extracted locally after WebFetch returned it as binary) · records-and-tuples (tc39/proposal-record-tuple issue #394, the withdrawal notice).
New pages: 6. Four source summaries above, plus functional-programming (the concept page the
spoke had been missing while holding nine functional languages) and giulio-canti (Person).
Updated: typescript, type-system, synthesis, index.md.
What the sources gave. Three walls in front of pure FP in TypeScript, and they are not the same
kind of thing. Higher-kinded types are missing, so fp-ts imports an encoding written for
ocaml in 2014 — an app type plus uninhabited brands — whose authors say plainly that the
checker then cannot catch ill-kinded expressions. Effect tracking is missing, so effect rebuilds
it as Effect<Success, Error, Requirements>. Immutable values are missing and stay missing: TC39
withdrew Records and Tuples on 2025-04-14, so readonly remains an annotation that the compiler
deletes.
The finding. A paradigm can be retrofitted by library down to a depth the host language sets. The new axis in synthesis is where the guarantee lives — type system (haskell), data model (clojure), runtime isolation (elixir), or a self-deleting type layer (TypeScript). The third wall is really a language-governance finding: a standards committee with no functional-programming constituency capped what programs in JavaScript can mean.
Ending recorded, cause not. fp-ts is merging into effect and both first-party sources state it without a reason — logged as an open question rather than read as a verdict on the abstraction-first approach.
New growth edge (6): the whole retrofit is unmeasured — no overhead, bundle-size or defect data for effect against plain TypeScript. Same shape as the standing gradual-typing edge.
Entities: 1 created — giulio-canti, because the fp-ts→Effect move is itself the claim.