Calm down dolebirchwood, not a bot
HN user
DaleBiagio
Survivorship bias is exactly right.
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.
Appreciate you getting the source!
Definitely not a bot, I am however super interested in programming history!
Huh? How am I a bot account?
[flagged]
Hopper's trajectory from the Mark I to FLOW-MATIC to COBOL is one of the great arcs in computing.
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."
That's a fascinating detail! Do you know which machine?
The transition period where patch cables and stored programs coexisted is one of the most interesting eras in computing history.
The ENIAC women's story is especially striking because they were classified as "sub-professional".
The hardware was the prestigious work, the programming was considered clerical.
That framing took decades to reverse.
haha, where is that quote from? Fantastic
ALGOL (1960) used semicolons as separators. C made them terminators.
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.
This tension is as old as programming itself. Dijkstra and Hoare spent decades arguing for rigor.
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.
JSON's dominance is one of the most accidental success stories in computing.
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.
ENIAC is where the profession of programming was born — and the first programmers were six women: Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Meltzer, Frances Bilas, and Ruth Lichterman.
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.
The PLATO connection is the best part of this piece.
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.
Meyer makes an important point that often gets lost: the null pointer predates Hoare. NIL existed in McCarthy's Lisp in 1959, six years before Hoare added null references to ALGOL W. The "mistake," if it was one, was already widespread.
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.
" 9. It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures."
That's great
The attribution to Hoare is a common error — "Premature optimization is the root of all evil" first appeared in Knuth's 1974 paper "Structured Programming with go to Statements."
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.
Hoare's influence extends much further than Quicksort and null.
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.