An IBM mathematician spent 3 years convinced he was the worst programmer at his company at work.
He built to escape that embarrassment became the first high-level programming language in history. Every line of code running on Earth today traces back to that one act of shame.
His name was John Backus.
He was born in 1924 in Philadelphia, the son of a wealthy stockbroker who expected him to follow the same path. He failed out of the University of Virginia. He dropped out of Haverford College. He enrolled in a medical program in the Army and decided he hated medicine. He spent years doing exactly nothing the conventional way.
Then one afternoon in 1945 he walked past a radio repair shop in New York and got talking to the owner and ended up building a radio from scratch in the shop's back room. Surprising thing is he had never done it before. He stayed for hours. When he left he knew what he wanted to study.
He taught himself mathematics and got into Columbia. From Columbia he walked into IBM in 1950 with a degree and no idea what he was doing.
He learned to program on machines that had no business being programmed. IBM computers in 1950 spoke in machine code. Raw binary. Every instruction written as a string of ones and zeros that told the hardware exactly which switches to flip. There were no shortcuts. No syntax. No vocabulary a human brain could hold in its head.
The programmers who were good at it held the entire machine inside their minds. They saw the binary and felt the logic. Backus could not do this. He wrote programs that were slow, tangled, and embarrassing next to what his colleagues were producing. He was not the worst programmer at IBM. But he believed he was, which amounted to the same thing.
He started building a tool to help himself. Not out of ambition. Out of humiliation.
The idea was simple to the point of seeming naive. He wanted to write mathematical expressions in something that looked like mathematics, not machine code, and have the computer translate them automatically into the binary the hardware needed. He called the project a "formula translation" system. His colleagues thought it was a nice idea that would never work.
The problem everyone could see was speed. Machine code written by a skilled human would always run faster than code generated by an automatic translator. The translator had to make guesses. Guesses meant inefficiency. Inefficiency meant the whole project was a toy.
Backus spent three years proving them wrong.
In 1957 IBM released FORTRAN to its customers. The first compiled programming language in history. The translator Backus built was so efficient that the code it generated ran at speeds within 20 percent of hand-written machine code. Not a toy. Not a curiosity. A working tool that let scientists and engineers write programs in expressions their own minds had generated, and watch the machine execute them.
The adoption was immediate and total. Scientists who had spent careers translating their equations into machine code by hand were suddenly writing programs in hours instead of weeks. Labs that had used IBM machines for narrow tasks started using them for everything. The market for computing changed overnight.
Then something happened that nobody predicted. Other people started building other languages using the same idea. COBOL. LISP. ALGOL. BASIC. Every language built its own translator using the architectural logic FORTRAN had demonstrated. The idea that a computer could read something resembling human thought, rather than the other way around, was now a proof of concept that anyone could extend.
Every programming language that has ever existed was built on the answer to the question Backus asked because he was ashamed of the code he was writing.
He won the Turing Award in 1977. The committee citation said his work had made it possible for more people to use computers for more things than any other single development in the history of computing.
He said in the acceptance speech that he had not set out to change computing. He had set out to stop writing bad code.
The gap between what you are bad at and what you are trying to fix is usually where the real invention lives.
@dev_maims It is but not at entry level, the new software engineer is a business code reviewer who needs experience to identify code issues and also understand the business requirements and context of that code.
@jahirsheikh8 I would implement monitoring to capture necessary CPU usage data to review then refine the investigation from there. You can guess backups, maintenance jobs, virus scans but you really need evidence.
When Andres Freund, Linux kernel contributor & Microsoft engineer was debugging slow SSH logins on his Debian machine in March 2024, he noticed something weird:
liblzma (part of XZ Utils) was using way too much CPU power, so he kept digging, and what he uncovered was a multi-year supply-chain attack!
An attacker using the name “Jia Tan” had spent two years slowly infiltrating the tiny XZ Utils project, a compression library used by virtually every major Linux distribution.
The backdoor wasn’t in the source code. It was hidden deep inside the build scripts. It would have given the attacker remote root access on millions of servers the moment a specially crafted SSH key was used.
Freund caught it days before it would have shipped in Debian, Fedora, Ubuntu and more.
One man, one anomaly, one routine debug session saved the internet from a potential catastrophe.
Respect!
@amritwt So imagine no accidental command ran and some h/w failure or disk corruption or anything to be honest, what was the planned recovery? if this was true the person running the delete is not really at fault entirely, its not production if it has no DR, HA or backups...
@thatjeffsmith How resource intensive is SQL*dev vs VSCode plugin, historically on low memory servers SQL*dev can be a sizeable memory footprint is it equivilent or more efficient or worse?
@eloffd 100kg bench is the goal of many at gym, good 1 rep weight, was my max but just lift light now, once you get an injury from heavy lifting or wrong technique its not great and takes ages to recover.
@oraclebase Its set a precedent on prem will be non strategic, also as Oracle make there engineered systems offering available on other clouds it will reduce the managed cloud oracle offerings appeal. If Free version can make it to on prem really why can full version makes you wonder.
@BellaWallerstei It’s a shame as there is more to working than the financial reward, though equally with AI and automation will this be the norm in say 10 to 20 years, how will the system work then.
Before AWS existed, one company ran the servers for Twitter, LinkedIn, and Facebook's entire app ecosystem.
They owned Node.js, invented containers 8 years before Docker, and Peter Thiel even backed them.
Then something happened...
@BellaWallerstei I do agree but also see flip side of a parent(s) and people that will never be able to afford private sector services. Is it fair I work hard and get punished with higher taxes or is it fair how ever hard I work I can't afford the private sector, we need a happy medium.
@samlambert Surely number 1 priority is recoverability any thing else is second I dont consider uptime to be the same, could argue security as 1 or 2 as well.
@oraclebase For years everyone was a DBA, now a shift to where everyone is a developer. TBH not a bad thing me as a Dba can knock up code super fast with AI and it is good quality and can ask for refinement even sent to different AI models until happy. I like it and it can be prod ready code