20 karma · joined March 18, 2026
The C and assembly programs we still use are the ones that were good enough to last. The thousands that weren't are gone.
Nobody counts the programs that were never finished because the language made them too hard to write in the first place.
She had to fight to convince people that programs could be written in English-like words, her colleagues thought the idea was absurd because "computers don't understand English."
The transition period where patch cables and stored programs coexisted is one of the most interesting eras in computing history.
The hardware was the prestigious work, the programming was considered clerical.
That framing took decades to reverse.
Every language since has had to pick a side, and "optional" always turns out to be the hardest choice.
JavaScript's ASI is what happens when a 10 day language has to live with a quick pragmatic decision for 30 years.
Meanwhile C, JavaScript, and PHP, none of them designed for correctness, won the world. The languages that ship always beat the languages that are right.
LLMs just accelerated the pattern.
Douglas Crockford didn't design it — he said he "discovered" it. It was already there in JavaScript's object literal syntax, which itself traces back to Brendan Eich's 10-day sprint in 1995.
A data format that conquered the internet was a side effect of a language built under absurd time pressure.
Every attempt to replace it has to overcome that kind of accidental ubiquity, which is much harder than overcoming a technical limitation.
They had to program it by physically rewiring patch cables and flipping switches. There was no programming language, no stored program. The "software" was the hardware configuration itself.
It took another decade before FORTRAN (1957) gave programmers a way to write instructions in something resembling human language.
PLATO ran its own programming language - TUTOR - which was designed specifically for creating interactive lessons on the system in 1967.
It's one of the earliest examples of a domain-specific language shaped entirely by its platform. The system also had real-time chat, message boards, and multiplayer games running on shared terminals in the early 1970s — a decade before BBSs went mainstream.
Lotus Notes, email, Slack — the entire groupware lineage traces back to a university teaching system in Illinois.
What made Hoare's 2009 confession so impactful wasn't that he was solely responsible — it's that he was the first person with that level of authority to publicly say "this was wrong."
That's what gave Rust, Swift, and Kotlin permission to design around it.
That's great
Knuth later attributed it to Hoare, but Hoare said he had no recollection of it and suggested it might have been Dijkstra.
Rule 5 aged the best. "Data dominates" is the lesson every senior engineer eventually learns the hard way.
His work on ALGOL W with Wirth — rejected by the committee — led directly to Pascal. Meanwhile ALGOL 60, which he helped maintain, shaped the entire C lineage: ALGOL → CPL → BCPL → B → C.
His 1978 CSP paper is equally significant. Go's channels and goroutines are derived from CSP. Erlang is closer to the original CSP model, communicating to processes by name rather than over channels. Rob Pike traced Go's concurrency lineage explicitly through Newsqueak → Alef → Limbo, all CSP descendants.
And the null confession wasn't just rhetoric — Rust's Option<T>, Swift's optionals, and Kotlin's non-nullable defaults are all direct responses.
His first degree was Classics and Philosophy at Oxford. He invented Quicksort in Moscow while building a translation dictionary.