He Realized his Mistake
- Views
- 359K
- 358,830
- Outlier
- ×1.0
- Median 364K
- Length
- 12:15
- Published
- Sep 29
- Tuesday
- Comments
- 381
- 4.5K likes
Script
How it's written
- Words
- 2,411
- Words a minute
- 197
- Reading time
- 11 min
- Segments
- 9
The hook
0:00–0:25Of all the legendary computer scientists, Tony Hoare stands distinct among them all. Let's just put it this way, 70% of all enterprise Java errors that have been logged can be attributed to a single decision he made in 1965. In fact, one of the largest Google outages in recent memory was caused by a null pointer exception. We're talking about a basic if statement was skipped and 7 hours of downtime was experienced with 3
Structure
Of all the legendary computer scientists, Tony Hoare stands distinct among them all. Let's just put it this way, 70% of all enterprise Java errors that have been logged can be attributed to a single decision he made in 1965. In fact, one of the largest Google outages in recent memory was caused by a null pointer exception. We're talking about a basic if statement was skipped and 7 hours of downtime was experienced with 3 hours globally affecting many, many services including Spotify. Costing many millions in damages and all of this could be traced back to that one 1965 decision. But, it's not all epically bad decisions from Sir Tony Hoare. He's also created some of the fastest and most memory efficient sorting and statistical algorithms. And his professional and academic work have laid the foundations for languages like Pascal and Go. I know some of you think Go's a blunder, but he made the good parts. And throughout his career, he has been honored {slash} awarded more than 21 times including the Turing Award, some consider the highest award in all of computer science. And he was knighted for his contribution to education and computer science. But today, he receives the most prestigious honor of them all, programmer of the month at the startup. Being knighted, programmer of the month. But before we remember Tony's greatest disasters and achievements, a quick thank you from the sponsors. The next 100 billion commits are coming faster than planned for. Is your CI up for the challenge? Today's CI requires new infrastructure built for one thing, reliability and performance.
Watch from 0:00Blazingly fast. Namespace optimizes for fast coding, test, and build environments. It's their singular focus. That focus runs down to the metal from server racks they design and deploy worldwide to products built on foundations like dev boxes and GitHub action runners available on Windows, Mac, and Linux. They actually have Mac. Crazy. They are used by Ramp, Vanta, Warp, Framer, Zed, Val, Sierra, Whisper Flow, DuckDB, and even Ghosty uses them. You can join them and try it out today at namespace.so. Sir Charles Anthony Richard Hoare was born January 11th, 1934 in what is now known as Sri Lanka. He was educated in England at the finest of schools. We are talking, of course, about the Dragon School in Oxford and the King's School in Canterbury. They They They serve tea and fine fine table cookies. I don't I don't even know what they do with those type of places. It sounds very fancy, okay? I went to Montana State University, okay? I'm not allowed to have these type of experiences. Later on, he entered Merton College in Oxford in 1952, and after graduating, he spent 18 months studying Russian. Of course, he had to do this as part of his compulsory duty to the Royal Navy. Now, this is where it actually gets pretty interesting because during his time in Russia at Moscow State University, also looks like he went to MSU like I did. Go Bobcats! Before I show you quick sort, I did want to just say that Tony Hoare raw dogs this on a pen and piece of paper in the middle of Russia. Okay, there was no computer.
Watch from 1:30There wasn't even a programming language with recursion at the time of him inventing this. It's like he has chat GPT in his head. He can just close his eyes and imagine problems and get answers out of it. Quick sort's actually rather easy to understand. You pick an element, any random element. I just picked the middle element, and then you put everything that is smaller on one side, and everything that is larger on the other side. After that, 14 is now sorted. Everything on the left-hand side is smaller. Everything on the uh right-hand side is larger. So, if we do it again, we just consider the smaller side. Again, we just pick the middle element. We sort, and there you go. Seven and three are now sorted. We do it again, pick the middle element, put everything smaller on the right, everything larger on the left. 11 is now sorted, and since there's only one on the left, 13 is now sorted. Do the same thing again. They're both sorted. Jump over to the other side. go in the middle, everything smaller goes on one side, everything larger on the other side, bada bing bada boom, that is quick sort. Okay, so you're probably thinking what's the big deal? It's it's just sorting. It's not even that awesome. Well, actually first off, it was very, very awesome. I want to put a little couple things in perspective. First off, runtime. It has n log n for runtime, meaning that its growth as the array gets bigger will become proportional to n log n. So, that's actually pretty dang good. Second, it does not require a lot of memory. Now, this is very, very important because back in the day, back in the old days in 1961 kilobyte of RAM, magnetic core RAM, was $5,000 in the old US dollars, which means in today's
Watch from 3:01dollars, that's like $50,000 per kilobyte. A kilobyte for $50,000. So, as you can see, this is extremely important. Now, he never actually got the chance to implement this. This was just a pure thought exercise for a long, long time until one day when he joined the Elliott brothers in 1960 and his very first task was to implement Shell sort. Now, of course, him being the confident fellow he is, he went to his boss, which he has named Pat, and he went, "Hey, yo, boss, uh Shell sort sucks. I can make it much, much better." And his boss was like, "There ain't no way you're going to make it any better." And they actually ended up betting sixpence. I don't know what sixpence is. That sounds like something out of a nursery rhyme. Okay, I don't know what's going on over in the UK or whatever they're doing over there, but nonetheless, they bet a few dollars on the line or many dollars or I don't know how many dollars that is. What is it in freedom units? I don't know. Anyway, so they bet and then Hoare ends up getting on the whiteboard and starts drawing out some boxes and arrows and explains his algorithm. His boss, Pat, implements the algorithm, admits he is wrong, and later Tony Hoare does say that he was given sixpence for winning the argument. During his time at Elliott brothers, he also convinced them to implement Algo 60 as opposed to their own bespoke proprietary language. This proved to be a large commercial success, and Tony was showered with accolades. Obviously, implementing Algol 60, he got really excited about it, and a few years later, he started working on a language with Niklaus Wirth called Algol W, a successor to Algol 60. Now, it's his work on Algol W that became so
Watch from 4:32quintessential to all of our lives. The emotional damage you have experienced can be traced back to these decisions right here. Let me read you the abstract from his QCon talk in 2009. I call it my billion dollar mistake. It was the invention of the null reference in 1965. And at the time, I was designing the first comprehensive type system for references in an object-oriented language, Algol W. My goal was to ensure that all use of references should be absolutely safe. Hilarious, okay. I mean, we're talking about null references here, people. I just My My heart is warmed to be like, we're going to make it absolutely safe. Null references. With checking performed automatically by the compiler, but I couldn't resist the temptation to put in a null reference. I mean, this guy is having like a Lord of the Rings-level style temptation. He just could The ring was too powerful. Null references is in fact the power of Sauron. Simply because it was so easy to implement. This had led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last 40 years. The real question is, how costly was the null pointer decision? Well, first off, as a student at MSU, go Bobcats, I will tell you that I spent many a day trying to debug damn null references, okay? So, emotionally, it was like a billion dollars just for me.
Watch from 6:02But, I think that you can recall a time just a couple years ago where the world's largest outage could be traced back to a null reference. One of the most famous ones was from June 12th, 2025 from Google Cloud. Effectively, all it was was they just didn't check for a null pointer, and of course, null pointer happened. API and auth went down, and then globally everything just did not work. And of course this went on for about 7 and 1/2 hours until the fix was fully rolled out. There's just something that tickles me that I find so funny about this entire situation in which Tony Hoare over here, he just wanted to be able to create a type safe language that was absolutely safe with all references and ends up creating the greatest debacle that we're still recovering from to this day. The reality probably is that if he did not invent it, somebody else would have just like the AI race. Really, it's just like the exact same thing. But at the end of the day, it is attributed to him and his Algol W work. Now, one of his largest contributions to the field of computer science would be communicating sequential processes. Now, I'm just going to demonstrate a quick example of what this means in practice by showing you a little bit of code and go. Now, I know a lot of you are rust boys out there and you're probably a little upset that I'm using go. Just Just walk with me cuz it's the simplest. All right, so we have two processes here. We have this outer which creates a channel, waits on the channel, and then prints out the message it gets from a channel. We have a second process that's going to do some work and then ultimately hand that work out in which I'm calling hello world. So
Watch from 7:22that means we create the channel in process one. Process two is going to just start executing. Process one now is just going to be waiting. It's going to be waiting synchronously until process two communicates. This is a very important part of communicating sequential processes. Then finally, when the work is done in process two and we can now communicate, now process one receives the message and is able to move forward. So one of the core ideas of CSP is that communication is a synchronous handshake. And as you could see right there, process one had to wait until process two communicated. So both process two and one have to wait for each other because the communication is synchronous. Now obviously, you can get around this by creating buffers that way process two can theoretically send more messages. But the simple idea is that all processes have to communicate in a synchronous handshake. That processes are units of behavior and do not share variables. Now, I know in that Go example, I did do a little bit of sharing, but we can, you know, just ignore it for now. Again, I'm just explaining this in the most simple and obvious practical terms, not really in the calculus side of things. You can go look up the calculus and how events are supposed to be instantaneous and how receivers are supposed to have an alphabet in which they are the type of events that they receive. If you've ever done any Elixir, this probably sounds pretty dang familiar to the actor pattern because, well, I mean, it is.
Watch from 8:53So, at the end of the day, Tony Hoare's contributions to computer science have been actually quite a bit more than I even threw out there. I didn't even talk about quick select and some of his statistical algorithms that he helped accomplish, his practical work on the ALGOL compiler. Much like his predecessor, Edgar Dijkstra, who also was a recipient of the programmer of the month award, he has a few banger quotes that I'd like to read for you. When he thought and talked about ALGOL 60, he said the following, "Here's a language so far ahead of its time that it was not only an improvement on its predecessor, but also nearly on all of its successors." The man had a way with words. "There are two ways of constructing software design. One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." Oh my gosh. The man could see around corners if he I I he was he technically did die this year in March, but I'm sure he saw some of what the AI was doing. And if I I wonder what he thought about this right here. And just the massive amounts of code we have produced. Later in Tony Hoare's career, he received the second most honorable distinction, being knighted by Queen Elizabeth II, which is why we actually call him Sir Tony Hoare, of course, if you didn't know.
Watch from 10:15programmer of the month being the most important designation one can possibly get. Now, I did not get to all of Tony Hoare's amazing accomplishments and the things that he have done. I didn't even talk about quick select. I didn't even talk about all the cool work he really did on Algol W or about his unifying theory of programming or the philosophers dining, which by the way, the dining philosophers problem, pretty gross that they they they're sharing silverware, okay? I don't even want to talk about it because it's unsanitary. the end of the day, Tony Hoare's influence will be felt for a very, very, very long time and it's quite obvious he deserves programmer of the month. So, here's to you, Sir Tony Hoare, programmer of the month. The name is the Primeagen.
Watch from 11:32Full transcript
- 0:00
Of all the legendary computer scientists, Tony Hoare stands distinct among them all. Let's just put it this way, 70% of all enterprise Java errors that have been logged can be attributed to a single decision he made in 1965. In fact, one of the largest Google outages in recent memory was caused by a null pointer exception. We're talking about a
- 0:20
basic if statement was skipped and 7 hours of downtime was experienced with 3 hours globally affecting many, many services including Spotify. Costing many millions in damages and all of this could be traced back to that one 1965 decision. But, it's not all epically bad decisions from Sir Tony Hoare. He's also created some of the fastest and most
- 0:42
memory efficient sorting and statistical algorithms. And his professional and academic work have laid the foundations for languages like Pascal and Go. I know some of you think Go's a blunder, but he made the good parts. And throughout his career, he has been honored {slash} awarded more than 21 times including the Turing Award, some consider the highest award in all of computer science. And he
- 1:03
was knighted for his contribution to education and computer science. But today, he receives the most prestigious honor of them all, programmer of the month at the startup. Being knighted, programmer of the month. But before we remember Tony's greatest disasters and achievements, a quick thank you from the sponsors. The next 100 billion commits are coming faster than planned for. Is your CI up for the challenge? Today's CI
- 1:25
requires new infrastructure built for one thing, reliability and performance. Blazingly fast. Namespace optimizes for fast coding, test, and build environments. It's their singular focus. That focus runs down to the metal from server racks they design and deploy worldwide to products built on foundations like dev boxes and GitHub action runners available on Windows,
- 1:46
Mac, and Linux. They actually have Mac. Crazy. They are used by Ramp, Vanta, Warp, Framer, Zed, Val, Sierra, Whisper Flow, DuckDB, and even Ghosty uses them. You can join them and try it out today at namespace.so. Sir Charles Anthony Richard Hoare was born January 11th, 1934 in what is now
- 2:10
known as Sri Lanka. He was educated in England at the finest of schools. We are talking, of course, about the Dragon School in Oxford and the King's School in Canterbury. They They They serve tea and fine fine table cookies. I don't I don't even know what they do with those type of places. It sounds very fancy, okay? I went to Montana State University, okay? I'm not
- 2:31
allowed to have these type of experiences. Later on, he entered Merton College in Oxford in 1952, and after graduating, he spent 18 months studying Russian. Of course, he had to do this as part of his compulsory duty to the Royal Navy. Now, this is where it actually gets pretty interesting because during his time in Russia at Moscow State University, also looks like he went to MSU like I did. Go Bobcats! Before I
- 2:52
show you quick sort, I did want to just say that Tony Hoare raw dogs this on a pen and piece of paper in the middle of Russia. Okay, there was no computer. There wasn't even a programming language with recursion at the time of him inventing this. It's like he has chat GPT in his head. He can just close his eyes and imagine problems and get answers out of it. Quick sort's actually
- 3:13
rather easy to understand. You pick an element, any random element. I just picked the middle element, and then you put everything that is smaller on one side, and everything that is larger on the other side. After that, 14 is now sorted. Everything on the left-hand side is smaller. Everything on the uh right-hand side is larger. So, if we do it again, we just consider the smaller
- 3:34
side. Again, we just pick the middle element. We sort, and there you go. Seven and three are now sorted. We do it again, pick the middle element, put everything smaller on the right, everything larger on the left. 11 is now sorted, and since there's only one on the left, 13 is now sorted. Do the same thing again. They're both sorted. Jump over to the other side. go in the middle, everything smaller goes on one
- 3:54
side, everything larger on the other side, bada bing bada boom, that is quick sort. Okay, so you're probably thinking what's the big deal? It's it's just sorting. It's not even that awesome. Well, actually first off, it was very, very awesome. I want to put a little couple things in perspective. First off, runtime. It has n log n for runtime, meaning that its growth as the array gets bigger will become proportional to
- 4:15
n log n. So, that's actually pretty dang good. Second, it does not require a lot of memory. Now, this is very, very important because back in the day, back in the old days in 1961 kilobyte of RAM, magnetic core RAM, was $5,000 in the old US dollars, which means in today's dollars, that's like $50,000 per kilobyte. A kilobyte for $50,000. So, as
- 4:37
you can see, this is extremely important. Now, he never actually got the chance to implement this. This was just a pure thought exercise for a long, long time until one day when he joined the Elliott brothers in 1960 and his very first task was to implement Shell sort. Now, of course, him being the confident fellow he is, he went to his boss, which he has named Pat, and he went, "Hey, yo, boss, uh Shell sort
- 4:58
sucks. I can make it much, much better." And his boss was like, "There ain't no way you're going to make it any better." And they actually ended up betting sixpence. I don't know what sixpence is. That sounds like something out of a nursery rhyme. Okay, I don't know what's going on over in the UK or whatever they're doing over there, but nonetheless, they bet a few dollars on the line or many dollars or I don't know how many dollars that is. What is it in freedom units? I don't know. Anyway, so
- 5:19
they bet and then Hoare ends up getting on the whiteboard and starts drawing out some boxes and arrows and explains his algorithm. His boss, Pat, implements the algorithm, admits he is wrong, and later Tony Hoare does say that he was given sixpence for winning the argument. During his time at Elliott brothers, he also convinced them to implement Algo 60 as opposed to their own bespoke
- 5:41
proprietary language. This proved to be a large commercial success, and Tony was showered with accolades. Obviously, implementing Algol 60, he got really excited about it, and a few years later, he started working on a language with Niklaus Wirth called Algol W, a successor to Algol 60. Now, it's his work on Algol W that became so
- 6:02
quintessential to all of our lives. The emotional damage you have experienced can be traced back to these decisions right here. Let me read you the abstract from his QCon talk in 2009. I call it my billion dollar mistake. It was the invention of the null reference in 1965. And at the time, I was designing the first comprehensive type system for
- 6:23
references in an object-oriented language, Algol W. My goal was to ensure that all use of references should be absolutely safe. Hilarious, okay. I mean, we're talking about null references here, people. I just My My heart is warmed to be like, we're going to make it absolutely safe. Null references. With checking performed automatically by the compiler, but I
- 6:43
couldn't resist the temptation to put in a null reference. I mean, this guy is having like a Lord of the Rings-level style temptation. He just could The ring was too powerful. Null references is in fact the power of Sauron. Simply because it was so easy to implement. This had led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion
- 7:04
dollars of pain and damage in the last 40 years. The real question is, how costly was the null pointer decision? Well, first off, as a student at MSU, go Bobcats, I will tell you that I spent many a day trying to debug damn null references, okay? So, emotionally, it was like a billion dollars just for me. But, I think that you can recall a time just a couple years ago where the
- 7:25
world's largest outage could be traced back to a null reference. One of the most famous ones was from June 12th, 2025 from Google Cloud. Effectively, all it was was they just didn't check for a null pointer, and of course, null pointer happened. API and auth went down, and then globally everything just did not work. And of course this went on
- 7:45
for about 7 and 1/2 hours until the fix was fully rolled out. There's just something that tickles me that I find so funny about this entire situation in which Tony Hoare over here, he just wanted to be able to create a type safe language that was absolutely safe with all references and ends up creating the greatest debacle that we're still
- 8:06
recovering from to this day. The reality probably is that if he did not invent it, somebody else would have just like the AI race. Really, it's just like the exact same thing. But at the end of the day, it is attributed to him and his Algol W work. Now, one of his largest contributions to the field of computer science would be communicating sequential processes. Now, I'm just going to demonstrate a quick example of
- 8:28
what this means in practice by showing you a little bit of code and go. Now, I know a lot of you are rust boys out there and you're probably a little upset that I'm using go. Just Just walk with me cuz it's the simplest. All right, so we have two processes here. We have this outer which creates a channel, waits on the channel, and then prints out the message it gets from a channel. We have a second process that's going to do some
- 8:49
work and then ultimately hand that work out in which I'm calling hello world. So that means we create the channel in process one. Process two is going to just start executing. Process one now is just going to be waiting. It's going to be waiting synchronously until process two communicates. This is a very important part of communicating sequential processes. Then finally, when the work is done in process two and we
- 9:10
can now communicate, now process one receives the message and is able to move forward. So one of the core ideas of CSP is that communication is a synchronous handshake. And as you could see right there, process one had to wait until process two communicated. So both process two and one have to wait for each other because the communication is
- 9:32
synchronous. Now obviously, you can get around this by creating buffers that way process two can theoretically send more messages. But the simple idea is that all processes have to communicate in a synchronous handshake. That processes are units of behavior and do not share variables. Now, I know in that Go example, I did do a little bit of sharing, but we can, you know, just ignore it for now. Again, I'm just
- 9:53
explaining this in the most simple and obvious practical terms, not really in the calculus side of things. You can go look up the calculus and how events are supposed to be instantaneous and how receivers are supposed to have an alphabet in which they are the type of events that they receive. If you've ever done any Elixir, this probably sounds pretty dang familiar to the actor pattern because, well, I mean, it is.
- 10:15
So, at the end of the day, Tony Hoare's contributions to computer science have been actually quite a bit more than I even threw out there. I didn't even talk about quick select and some of his statistical algorithms that he helped accomplish, his practical work on the ALGOL compiler. Much like his predecessor, Edgar Dijkstra, who also was a recipient of the programmer of the month award, he has a few banger quotes
- 10:37
that I'd like to read for you. When he thought and talked about ALGOL 60, he said the following, "Here's a language so far ahead of its time that it was not only an improvement on its predecessor, but also nearly on all of its successors." The man had a way with words. "There are two ways of constructing software design. One way is to make it so simple that there are obviously no deficiencies, and the other
- 10:58
way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult." Oh my gosh. The man could see around corners if he I I he was he technically did die this year in March, but I'm sure he saw some of what the AI was doing. And if I I wonder what he thought about this right here. And just the massive
- 11:18
amounts of code we have produced. Later in Tony Hoare's career, he received the second most honorable distinction, being knighted by Queen Elizabeth II, which is why we actually call him Sir Tony Hoare, of course, if you didn't know. programmer of the month being the most important designation one can possibly get. Now, I did not get to all of Tony
- 11:38
Hoare's amazing accomplishments and the things that he have done. I didn't even talk about quick select. I didn't even talk about all the cool work he really did on Algol W or about his unifying theory of programming or the philosophers dining, which by the way, the dining philosophers problem, pretty gross that they they they're sharing silverware, okay? I don't even want to talk about it because it's unsanitary.
- 11:59
the end of the day, Tony Hoare's influence will be felt for a very, very, very long time and it's quite obvious he deserves programmer of the month. So, here's to you, Sir Tony Hoare, programmer of the month. The name is the Primeagen.
Description
Namespace is actually the fastest way to run your GitHub Actions. And a drop-in replacement.
https://trm.sh/namespace-github-actions
Like this video check out the playlist here: • Programmer of the Month
Chapters:
00:00 - Intro
01:18 - Namespace
02:04 - Early life & Education
02:52 - Quick Sort
04:48 - Elliot Brothers
05:58 - ALGOL W (billion dollar mistake)
07:06 - the true cost of nul pointer
08:20 - Communicating Sequential Processes (CSP)
10:14 - Quotes
11:21 - Sir Tony Hoare
12:00 - Outro
Sources:
https://en.wikipedia.org/wiki/Quicksort
https://en.wikipedia.org/wiki/Hoare_l...
https://en.wikipedia.org/wiki/Communi...
https://en.wikipedia.org/wiki/Null_po...
https://en.wikipedia.org/wiki/Unifyin...
/ theprimeagen - I Stream on Twitch
Great News? Want me to research and create video????: / theprimeagen
#theprimeagen #programming #computerscience #ai #chatgippty #terminaldotshop




