The Standup with ThePrimeagen - The Evolution of Programming

Episode Date: August 16, 2025

Ship Faster with Neon Postgres #ad Neon comes with Branching, Schema Diff, and Instant Point-In-Time Recovery to help you ship fast and recover faster. Get the free plan at https://twitch.tv/TheP...rimeagen - I Stream 5 days a Week https://twitter.com/terminaldotshop - Want to order coffee over SSH? ssh terminal.shop 📍 Chapters: 00:00:00 - Prime is a Great Host 00:04:06 - Neon #ad 00:05:04 - Giving a 2 hour talk 00:10:16 - C++ Launch Night 00:14:15 - Mount Rushmore of Programming Languages 00:18:40 - What languages were influential and died off? 00:24:00 - What is Plex 00:42:00 - The Evolution of Languages 00:45:40 - How Casey does Research + HOPL 5 00:56:95 - Casey's Next Deep Dive 01:00:00 - The Rise of Programming Historians

Transcript
Discussion (0)
Starting point is 00:00:00 12-hour React to Prime Zan. I start my day off with a six-hour Prime video. Oops. Guess I'm done for the day. Day in the life. Watch your prime video. Quick snacks. Quick snacks.
Starting point is 00:00:13 Dude, I was thinking you should do a day-in-the-life video, trash, where it's just like, hey, day-in-the-life at Netflix, arriving at 6 a.m. I'm going to grind until noon. You know, quickly eat lunch, five minutes. Grind until 4 p.m. Show food in my mouth. Quickly. Quick snack.
Starting point is 00:00:29 Grind until 9. P.m. Just make it sound like Netflix is just grinding me to the ground. I always, I like how all of those like day in the life videos, I've never seen one where somebody does anything I would consider useful. Yeah, that's why it's so funny. Like they're exclusively, I'm just like, why is anyone paying this person? I'm like, I would fire this person immediately upon seeing this video.
Starting point is 00:00:52 I just be like, thank you for the video and you're fired. I think that's exactly what happened. Oh, okay. All right. I think. You've never been a personality hire. You have to do the actual work. Some of us are hired as personality hires.
Starting point is 00:01:04 My job is to walk around the office and crack some jokes. You want to go on a coffee walk. Hey, what's going on over here? I'm not there to get work done. I'm there to raise the vibes. You're a morale. You're a morale higher. Sorry, Scrum Master.
Starting point is 00:01:18 All right, guys, I hate to do this to you, but I have to be right back. Oh, my God, dude. Are you joking? Every time. It's like, hey, guys, let's get the standard. what started. By the way, I gotta go get my tacos. Yeah, yeah, yeah, yeah, yeah. Anyway, sorry. All right, Casey, or Began, what's, you do? Who kicks us off for this one?
Starting point is 00:01:42 You do, prime. You're the host of the show. You say, welcome to the stand up. We've got a great show today. How many times? This is literally, the only way Primal did the intro is you say, I want to do the intro. No, no, no, then I have to do it. Okay. If you let him do it, he's like, All right, all right, all right. Hit me. Hit me, pride. All right, all this misinformation, everything. We need to start the stand of today.
Starting point is 00:02:04 As always, we have trash dev, the king of TypeScript, Casey, the king of amazing rants, and Began. Also, creatine cured my erectile dysfunction. All right, so now that we have that all out of the way, today we're going to be talking about the big oops, a 35-year mistake. This is a talk. Casey, you gave a talk at Better Software, right? I think it's called Better Software Conference. And it was a two and a half hour talk. It was.
Starting point is 00:02:33 Well, it was a two-hour talk. There was a half hour of Q&A. So it was two-hour talk. Okay. What was the Q&A like, yo, so O-P not that great? And you're like, yeah, bro. And that's like that. Well, the talk is very historic.
Starting point is 00:02:45 It has a lot of history in it. It's more of sort of a showing how things played out over, you know, sort of the years from the 1950s up until the 1990s. and so most of the talk is about that historical context. So that was more like the Q&A was partially about that and partially about, you know, some specifics of what happened there. The talk is not really about object-oriented programming in a, like, it's not trying to be like you should or shouldn't do this kind of a thing.
Starting point is 00:03:20 It's actually just really trying to be a historical talk to give you some idea of like there's this one particular thing I sort of tracked throughout history and showed like kind of how it evolved and it's really more about focusing on that and understanding how it happened because I think there's a lot of misconceptions about how these things happened
Starting point is 00:03:38 and I wanted to like illuminate that and so I never really got into the like you know, Oop, you know, I'm pretty critical of Oop as a programming model but the talk was not about that. So I didn't spend you know 30 minutes bashing on various Oop topics. That's for another day, right? This was
Starting point is 00:03:54 just about sort of the history, and I kind of wanted it be for everybody, including people who like object-oriented programming. I didn't want them to, like, not be able to watch this talk because it left a bad taste in their mouth or something, right? So that's how I put it together. Hey, Teague, did you pull the latest changes? Um, the schema diff says that you removed? Yeah, I refactor those away.
Starting point is 00:04:19 You refactored the constraints away. Don't worry. We use TDD. First, no we. Secondly, why did you remove the foreign keys? Pretty obvious. Tariffs. Do you even know what tariffs are?
Starting point is 00:04:34 It's a tax imposed by the government on goods and services imported from another deep area raising prices and to potentially reduce the available quantities for business and consumer. This was not how I pictured using instant restore. Fine, but don't come crying to me when the IRS comes a knocking. Ship faster with neon Postgres. Neon comes with branching, schema diff, and instant point in time recovery to help you ship fast and recover faster.
Starting point is 00:05:02 Get the free plan at neon.com. I have a question. So what's it like giving a two-hour talk and what does that prep look like? Because from watching the talk, amazing talk by the way, there was just so much context and history. And I don't think you're looking at presenters. notes or anything, you're just going off the cuff and you're just speaking fluently for like two hours.
Starting point is 00:05:33 Like, how many papers did you? Like, how long did it take you to do this? Because I was like so impressed with like, like, no pauses. You're just speaking like fluently. And I was just like insane. I don't know. Thank you for the kind words. I guess what I'll say is it is shocking to me that it went as well as it did.
Starting point is 00:05:53 So I only, I didn't have infinite time to prepare. this thing. Normally, if I'm going to do a talk, I have the whole thing and I'll at least run through it once. So before I'm going to get up and give the talk, right? I will rehearse the talk because I just want, like, I want to get in my head, like, where all the slides are so that I can like nail the transitions and stuff like that, right? And it's like, it's just a thing you do. And I've given so many public presentations and we do stuff like the stand-up, right? We have, like, all of us have a lot more practice public speaking maybe than just a dev who just goes gives a talk so there's all that practice this talk was kind of a nightmare to put together because it took so long to marshal
Starting point is 00:06:36 all the information figure out how it all goes together and plan it i literally never had a rehearsal so i had to get up and give the talk cold and because i don't have i actually don't have a slide presentation program i made the slides in affinity uh uh publisher and just had to them in a PNG directory, I also couldn't have any speaker notes. Like, I couldn't have anything. So I was just like, going into the talk, I'm like, I trust that I'm old enough and have done this enough times. This won't be disaster. But I'm like, I really wish I had had time to do a full rehearsal of this two-hour thing, but I didn't. So actually, I'm as surprised as you are that it went as well as it did. And I think mostly where that came from was the fact that because I had spent so darn
Starting point is 00:07:24 long, like getting all the material together that it was stuck in my head still. That's really how it ended up not being a disaster because like all that time that I did it, because I didn't have time to rehearse it, but I had spent, I don't even know, 100 hours, maybe more putting together all of that stuff. It was like studying for your, you know, final exam, right? And so I think that's what actually happened was just like I had spent so long studying that it was basically like when you go in and you ace the final exam even though you didn't think you were going to,
Starting point is 00:07:58 just because you spent so freaking long studying the material, it ended up being something like that. So I was psyched that it didn't go poorly. Looking at it, I think there's a bunch of places where I was like, yeah, if I'd had a rehearsal, this would have been better. You can see it. I mean, I'm sure you could see it. There are places where I didn't get the, like,
Starting point is 00:08:12 the timing could have been better on the transitions. And there's a bunch of stuff like that. And that's just because I didn't have time. But the advice is great. So everyone, if you have a two-hour talk, don't practice it. Don't practice. And Winging. Great, great advice.
Starting point is 00:08:23 Once again, I've just, everything in Casey, I always learned something new. A hundred hours of study. Yeah. No practice. Make your notes or make your presentation as P&Gs. Like, that's what I've heard right now. I kept the PNG thing is actually insane. Actually, yes.
Starting point is 00:08:40 Nothing can go wrong. Things can't go wrong. You're just like erring down your, like, director. Yeah. That's what it was. That's what I did. No, it was, it was not, like, it was not ideal. Like, I did not do what I would have liked to have done.
Starting point is 00:08:55 It was awful. I have all this stuff I got to do, like, during the week. Like, there's, I just, I spend as much time as I could. It was way more time than I should have spent preparing the talk, but it wasn't enough for a talk that's of this size and has this much historical information. So something had to give, and what had, what ended up giving was the rehearsal. Like, and so the only thing I had was the night before I basically in the hotel room, I just sat at my, computer and like talked through it like like I just mouth through it the slides really quickly I was like what am I say here once I here right and I and then I rearranged because like I was like I know if I don't
Starting point is 00:09:32 go at least once I'm going to have a slide in the wrong place so I went through it and I just like move some slides around and deleted some slides and stuff like that and that was my deck and just I mean thank God it worked out I guess what I said I was pretty nervous about it to completely honestly because I just like I would have like more prep I would have well no that's also helps it's like a Twitch stream. You know, the first hour you're warming up. Once you get into the second hour, you're feeling good. You know, so if your talk is not sounding good, just extend it by an hour. First hour, warm up, you know, get the crowd ready, get your jitters out, and then get into
Starting point is 00:10:04 the real talk. Yeah. So anyway, a short answer, the TLDR of all that is just like, I'm, I'm as surprised as you are that it went as well as it did. I'm very happy. Creatine. I think it was the creatine. Yeah, I think it's a great. protein. So I actually have a question because one thing I thought was, I mean, I love any type of history about programming language is always interesting. So I was learning a ton. And also, it's kind of mind-blowing for to think about you were there before C++. So you were probably there on C++ launch night. Was it like a line at micro center? Like, what was it like when they dropped C++ plus? Because the internet must have been going crazy. Well, I would have been like, you know,
Starting point is 00:10:39 four years old or something. So like, I remember holding my dad's hand in the line at microcenter when C++ came out. We almost didn't get a copy, but then, you know, Somebody couldn't pay, so they had one left, the returned. Yeah, I don't know. That has to be a skit. New programming language just dropped, bro. It's the sequel to C. Haven't you played C?
Starting point is 00:11:08 It's a reboot. They're rebooting the genre, the C programming genre. So, yeah, I don't know. I remember my dad, like, started programming in C++, or, like, was looking at it a little bit. I don't know 1984 or five or something like that I don't remember when
Starting point is 00:11:27 but he had like an early C compiler from when he was working at Digital Equipment Corporation so like I did kind of see it vaguely around a time when it started getting more popularity but not when it dropped because C with classes was like starting in 1979 and I don't know when the first releases
Starting point is 00:11:46 that went out widely would have been there's it kind of gradually gets expanded past Bell Labs and when you would have really started to see it at deck, I can't remember. Maybe my dad would. I should ask him. So what you're trying to say is that, you know, they always, they always say like a lot of, you know, younger people, kind of the mantra of their life is screw you, dad. So since your dad was playing around in C++, you're like, screw you dad, I'm only using C. And he kind of like reverted and fought against the system. No. I mean, you, as you would know, Prime, if you watched the two hours,
Starting point is 00:12:19 I was a C++ programmer originally, right? I mean, I did learn C first, as most people in that era would have, right? But then I learned C++, and I used to program using, like, ridiculous C++ stuff. And I show, in the talk, I show slides of, like, early C++ code that I wrote. And it's actually part of the talk is going through that stuff. So, no, I, I've done all of the crazy C++ things that were possible in the 90s. There's a bunch of new, even more crazy C++ things that you can do now because they've expanded the spec considerably and I continue to do so. But that's a different story, right?
Starting point is 00:13:02 Wait, so what's your daily driver language right now? I still compile as C++. I don't really use any of the features besides operator overloading, really. That's real hipster stuff right there. Yeah, I compile C++, but I don't use any of it. I don't need any of the features. I'm kind of just back to like the original I like early 80s C++
Starting point is 00:13:25 all their newer stuff I don't like the extended funk jams like the C++ plus thing where they're just going on forever and it's just I don't know it's too sloppy so I like yeah that's just what I use and I could switch to C I suppose but some people do like Ryan Fleury who gave a talk at BSC as well
Starting point is 00:13:44 this guy makes the rad debugger he's pretty rad. He's well he's I mean he's one of the programmers out there right now. And he just had the whole code base B.C. He was like, screw it. Compile times faster and I don't really need much from C++, so we're doing C. And so he did it that way, and that was a good decision for him. I could see myself doing that, but it just I don't have a lot of, there's not really a reason
Starting point is 00:14:08 for me to do it. And I like operator overloading for math code. So that's... Also, Casey, you just threw out like one of the best programmers out there. You got like a Mount Rushmore? Yeah. You got a top four live right now? Who are they?
Starting point is 00:14:18 I absolutely do. Who are the Out Rushmore programmers, Casey? I absolutely do. Like, let's put it this way. I, like, watch his talk at BSC, because I want to know how he did some of the architecture things. Like, I am, like, watching because I'm like, I'm going to learn something in this talk, right?
Starting point is 00:14:37 I am not, like, and very rarely am I going to go to a conference and watch a talk and think that I'm going to learn something about architecture because usually it's like, here's our ridiculous thing we did, most of which is stupid. That's what it feels like. time when I see one of those talks. These ones I'm like, I want to know because this dude crushes it and I want to
Starting point is 00:14:55 see what the deal is, right? And so he's on that list of people who like, I want to learn from. And so yeah, like I would put him on the Mount Rushmore. No, you got to give us at least three more then. That's how it works. You want to know the Mount Rushmore. You can't say, I have a Mount Rushmore. I don't even say it. I didn't have it in my head that there was a Mount Rushmore until
Starting point is 00:15:14 the first day of BSC was so good. like, you know, I don't know, the Mount Rushmore is that conference, right? It's like, I don't know. I don't have a Matt Rushmore, but you're going to sit. You're going to, like, I need like a couple hours of your time off, off, uh, standup for next week. Okay. You're coming back with the Mount Rushmore, okay? Okay. The people, the people actually, I really want to know. We need to know. But I don't think I know. So I'm just like, I, I happen to think of him as someone who's really, really good. And I always want to know, like, what he's up to and, like, what sort of stuff he made have, uh, uh,
Starting point is 00:15:48 like done because I'm like, it's probably something I want to know about, right? And so like, it's hard for me to find stuff like that in the architecture world. It's easy to find stuff like that everywhere else. Like you can go read, like if you read Sigraph, there's going to be like a ton of papers that are really cool stuff you've never thought of every year, right? So it's pretty easy to find stuff like that. But that's not, it depends what you think of as programming, right? That's like algorithms, things like that.
Starting point is 00:16:10 So if you're actually thinking about like, how do you structure programs, it's really hard to think of people who like, I think are doing really interesting work in that direction, but he's one of them. All right. Nice. All right. So we should probably return back to the topic, Began. You had, Began, didn't you have some? I have a topic question. Yeah, I know. I thought you had a bunch of questions associated. I have so many's topic questions. This is a stand-up. We need to be less distracted. Okay. Why did you invite me then? That's not how it works.
Starting point is 00:16:35 Began is a distraction. I am a distraction. What did you get done yesterday, Prime? And what are you going to have done tomorrow? That's what I want to know. Great question. Read through all of the Phoenix guides, played around with Phoenix so I can understand it. And what I'm going to do tomorrow, I'm going to start practicing my elixir skills. I'm going to launch. What are you making some live dashboard or something? Oh, you got a little Erlang.
Starting point is 00:16:56 You're revving up with a little Erlang action. You know, I think it could be love. Just saying, I don't know yet. I'm just, you know, I think it's usually it's lust at first sight, but then once you get past it, then you might become love. I don't know. Those light, honey reds, you just love those lightweight little threads, like weaving into your heart.
Starting point is 00:17:14 Oh, my gosh. It's so good. Okay. Well, I got to be on the crime. think there's actually something better than Erling or in Elyxer. I was, I was going with you, but after Casey's talk,
Starting point is 00:17:23 have you used simula yet? Because it's really nice. Simula 99. It's super, I mean, I don't care what year you use, okay? I mean,
Starting point is 00:17:31 I use 67. We're all different. We're all different. I don't, I don't know what year you use, but, but yeah, I mean,
Starting point is 00:17:37 it's, I can't believe how influential it is. And actually, I was wondering, is anyone working in this still? Is it, there's got to be one person out there who's shipping some simula. I want to meet them.
Starting point is 00:17:48 That's a good question, yeah. I mean, since the talk really only cared about simula's influence on other languages that we now use widely, I didn't look to see, like, did anyone, anyone's still riding the simulator train? That's a good question. Like, did it have a life afterwards? Like, Cobal does, where it's still around. I don't know. It's a good question.
Starting point is 00:18:10 We'll find out. What do you even know about Simula Prime? Because you haven't watched the talk yet. So now we've got to know what's your... I can't even think of the people's name, but I did read it in the Wii programmers, the history of programming by Uncle Bob. So I did read about the creation of simula, but I cannot remember. First of all, I like me, like, I don't have any facts, but I read about it in the book.
Starting point is 00:18:29 Here's the book. I can't remember that. I can't remember. So a lot of it, like, well, I mean, to me, any time, like, a language influences something and that it dies off, that's, like, pretty interesting, right? Because C++, obviously is heavily influenced all the way we think about object orientation. and it's still used widely by a bunch of people. So that makes sense.
Starting point is 00:18:50 You learn something in C++ land. You apply it to another language. Like, what are other languages along the path in your career, Casey, that died, that you were like, this was hot. This is going to be good.
Starting point is 00:18:59 And then it died off, but it ended up being something like influential. You know, I'm not sure. I think, like, for me, the only language I can think of that clearly was very influential, but doesn't really get used anymore. I mean, it gets used, but it's not used in sort of the same sense as a Python or a C++ or anything like that JavaScript.
Starting point is 00:19:23 Would have been Pascal. A lot of us, including me, programmed for some time in Pascal in that era. And it was, you know, nowadays it's just not a thing anyone would really think to use. I'm sure you can still go use it just fine. But there was a whole lineage of Pascal. Nicholas Worth was the guy who created that. And then there was like a very famous version called Turbo Pascal. which was for DOS, right?
Starting point is 00:19:47 And this was a really great dev environment, actually, at the time before, like, IDEs were really any good. It was, like, the first really good IDE. I mean, that might be a strong statement, but at least for PCs, it was the first good IDE, let's say. And so I think that's an example of a language that a lot of people used and probably a lot of people learned to program on. Like, that was my first structured programming language, really.
Starting point is 00:20:13 like because basic you know a lot of us learned to program on basic on some you know some built-in basic that we had on a computer a home computer and then the first time i actually got something that like had you know proper structured programming the way we would think of it with like local variables and things like that it was pascal and i think at that a lot of people that would not be true to be hard to find somebody whose first structured programming language today was pascal so funny you should say that someone came into chat today and said hey chat am i cooked because i'm at university in the language that they're teaching us as our first language is Pascal. No way! Okay. So someone's still doing it. Someone's still doing it. Then they said that it's really great for structured programming. For teaching structured programming. I don't know. I only did a touch of Pascal. I don't think
Starting point is 00:20:57 there's anything wrong with learning. Like the translation, moving from Pascal to see is pretty trivial. Like, you really aren't going to get thrown for a loop there. So I don't think it matters. Like, if you learned Pascal and then you want to go do some systems programming or whatever, you just can. Like, it's not going to
Starting point is 00:21:13 They did say the following, the follow-up phrase in case you maybe have an opinion about this, but they did say that Pascal is like C just without the footguns. Yeah, I mean, it's one of the problems with Pascal. In fact, this is, I don't know, I think this made it into the lecture. I can't always remember what stuff was, ends up making it into big oops and what doesn't, but I'm pretty sure this made it in. Strewstrip actually said specifically that he thought Pascal's type system was like too restrictive and it causes problems.
Starting point is 00:21:43 whereas simulos he actually liked. And so one of the big things for making C++ was to try to bring more type safety to C, but that didn't cause you a lot of problems like he thought Pascal did. So that was his opinion of it anyway. There's also multiple people in chat who are saying they're using Delphi or Delphi, however you pronounce it at work.
Starting point is 00:22:04 So it's like Pascal, Pascal's used. That's pretty, that's good people making money from it. Jeff Roberts still used to write stuff in Delphi when I was back at Rad in early 2000s he made like an MP3 player in Delphi so he still like yeah he still liked it
Starting point is 00:22:21 a lot of people really like those old Borland products because they were very well made and you don't even though they tend to fall away like very few people actually use Delphi now it's not like it's because someone made the way better
Starting point is 00:22:36 version of that thing it just kind of ended up dying out because Borland as a company kind of died out The architectures were still, like, really good sometimes, and, like, people have trouble finding modern replacements that were as good. Sort of, like, visual basic. Like, a lot of people really liked using visual basic. And, like, we never really got something that was as easy for newbies to use as that a lot of times.
Starting point is 00:22:56 Like, you know, like, there's just a lot of, like, we had a really good thing, and it kind of died out. But the new stuff really isn't a replacement or isn't quite as good. And so that's kind of just a sad thing that happens. And Delphi is kind of one of those things. I mean, trash. You're a fan of Borland products, correct? Well, it's got the Borland name. Well, you know Quatro, right?
Starting point is 00:23:16 Quatro, right? Quatro, Pro. Sprint? You use Sidekick, right, though? D-Base? No, no. Interbase? No. You don't use any Borland products at all.
Starting point is 00:23:24 No. If it's got the Borland name, it's good. You got to get, like, what are you, a JetBrains? Yeah, what about just the Borland C++ compiler? I didn't use Jeopardy. The compiler is great. Yeah, the compiler is great. Okay, I didn't know Borland.
Starting point is 00:23:37 I've just got the Wikipedia pulled up, and I really wanted to talk down to trash. I was like, well, I was like, you're not using Quarlin. Quotro? You're not using Quatro, bro? I was like, what is that? I like how... What about Owl? Do you use the Owl, Borland's Owl Class Library for windowing?
Starting point is 00:23:53 Yes. Yes. Yes. Okay. So in the talk, another thing, someone requested it too, and I need my memory refreshed on it. What is Plex? I don't understand this.
Starting point is 00:24:05 This is like... Really? Yeah, well, I'm dumb. You have to remember. Very stupid. And I might have been a little distracted during this portion. I had a six latest buyer run going, and I looked up and I went, what is Plex? Okay.
Starting point is 00:24:19 So I apologize if I didn't, if I didn't do a good enough job. No, you did a good job. I have the worst ADHD the doctor's ever seen. Okay, that's fair. So you have to remember, and this is one of the things that I tried to really give some context for in the talk, but it's hard, it's hard to wrap your head around, is I guess, the way I would say it. nowadays we just assume like everybody just assumes that we have this concept that we can take a set of data like you know int x int y car star foo or something right and put them together in a struct or a class or whatever you want to think of and then that will be like in memory it will just be stored that way, and it's very fast for us to access, right?
Starting point is 00:25:19 So one way to draw a differentiation here would be to think about, you know how JavaScript is kind of like, well, it's just this big hash table. It's like if I want to make an object, it's just a big bag, and I put things in it, and then if I want to get them out,
Starting point is 00:25:32 it's going to be like a lookup on like this name, whatever it is, right? And then like maybe the JIT, if it can figure it out, can make it into something that's like a fixed thing in memory, but not necessarily, right? Whereas in C or in Rust or probably in Go, I'm assuming as well, like there's, you know, languages that are kind of made more for compile time, I can say this is the
Starting point is 00:25:55 data layout. And then I can just have like a pointer or a handle or a reference or whatever it gets called in that language is like the location in memory where this thing is. And if I want the int X, I can just get it. If I want the int Y, just get it just with a simple numerical offset. So it's super efficient to talk about this like bundle of data. So what you have to remember, and it's really hard to wrap your head around, like I said, is if you rewind time to 1950, no one had thought of that. That's just not on the table, right? No one had thought that what you want when you're writing, like, in a higher level language,
Starting point is 00:26:30 which they hadn't really even conceived of at that time very much, right? When you're programming computer, they're like, oh, wait, we could just store, like, one address in the computer's memory. And we could know how to get to lots of different related pieces of data all bundled together just by using a fixed numerical offset that we know is the same no matter which one of these we're using. So you could kind of think of this as like the most, the earliest form of the idea of instantiation. Like I have a definition of a thing, a type, and I'm going to actually have now one of those. and I could make another one if I wanted at a different place in memory, right?
Starting point is 00:27:17 And so just to underscore, because again, it's really hard to wrap your head around this, because we just, it's just assumed now. Like, we don't even think about this at all anymore. It's just like, of course, you could do that if you wanted to or whatever, right? Just to underscore how much they didn't know this yet.
Starting point is 00:27:33 When, so Doug T. Ross is this guy who comes up with the concept of a Plex. He's on this team at MIT at this, at this laboratory for, it's called the Servo Mechanisms Laboratory at the time. Later gets renamed to a different name whose name escapes me, but it's originally called the Servo Mechanisms Library.
Starting point is 00:27:55 Laboratory. And what they do is they make like robotic tooling for making, like, you know, we would think of it today as 3D printing almost is what they're working on, way back in the 50s, making this stuff for the Air Force and whatever. So it's like ZOD stuff, right?
Starting point is 00:28:11 So anyway, the idea here is back then you had, like, in memory you had arrays and stuff. So, you know, they would think of it as like, oh, I have an array of integers. They had that concept. So I'm going to think of it as like, I've got a base pointer to an array, and I'm going to get the third element out of that array to get one of the integers. That's the thing everyone's thinking about. Doug Ross publishes a paper, lightly, publishes a paper. This is how much people weren't thinking about this, saying, hey, I got this idea.
Starting point is 00:28:47 What if we flipped the arguments to the hardware array indexer? So that instead of thinking of jumping a fixed size and, like, you know, we're going to go through elements of an array off of a base pointer, what if we flipped it and said, instead what we have is a base pointer and then a flexible offset. So the array is of these larger chunks, and then we just sub go arbitrary offset inside the subchunks. So we'll flip it. It said it will flip the fixed offset and the flexible offset part of that. He called it reverse indexing. And then he's like, if we do that, then we can have this thing called a Plex, which is a bunch of related data that's all smushed together, and we can have lots of those.
Starting point is 00:29:33 And that we could just go, oh, let's look at the X coordinate of this thing and the Y coordinate thing and the name of this thing and they'll all be together right and that's what he called the plex for um it's short for plexus which i guess i don't speak latin uh but i guess you know if you're a doctor or a lawyer and you do uh that i guess means like an interconnected like a node where things are connected like uh um that kind of i don't know it's like solar plexus might be a use of that term right like a thing where a bunch of things comes together a node where things comes together and he calls it that because not only did he conceptualize this idea of packing all the things together as the way a program might be operating, but he also figured out that you could add, you could augment that thing with stuff like relational links to other things.
Starting point is 00:30:21 So the idea of a pointer from oneplex to another to say like, this is the point that I am, you know, I'm a line and I have two end points and here's pointers to each of those points, right? And those are plexes themselves and so on. So he was imagining this big, web of these things, which is exactly how we compute today. Like it is literally how we program today. And he figured this out in 1956. Okay, so I think I understand this. Okay. So like for the other people in the chat who are a little slower like myself, so like back in the day, if I want to go to a friend's house, I wrote their address down. So I got an address, get to a friend's house. I got another friend. I write their address down again. I go to their house. However, I want to get to the McDonald's. I don't want to write down how to get to the McDonald's from the friend's house.
Starting point is 00:31:04 I know it's two blocks up. I know there's an Arby's two. blocks that way and there's a Wendy's two blocks that way. So I just store the one address and I know get to a friend's house and then I've got Arby's here. I've got my McDonald's over there. I got my blank. Wendy's over there and I'm storing less data. Two blocks up is a lot better than like a full a full address to get somewhere. Right, chat? This makes perfect sense, right? Well, this is a bit of a tortured metaphor, but I'll try to run with it. It's you don't even have to store anything because the point is that it's as if all of your friends' houses all had a Arby's two blocks up.
Starting point is 00:31:38 So you just know when you go to any friend's house, you go up two blocks. You don't have to store that information because it's a given. And that's the magic of a Plex or a struct, as we now call it, typically in like C-parlance, we would call it a struct. It's basically saying, look, if I just know the block layout and that's compiled directly into the program, then I no longer have to do all this work to gather the data. It's all right there. And furthermore, I can easily reference one or the other.
Starting point is 00:32:05 Like I can just, like you said, I can just say the address of a friend's house, and now you also know the address of the Arby's. Right. And again, in this weird world we're living in all friends houses have Arby's two blocks up for them, which I don't know if that's good. Like, I don't know if all your friends. I don't know if there's that many Arby's that should be in the world, but let's say that there is. Everyone likes roast beef a lot. And so that's what's happening. Then, yeah.
Starting point is 00:32:29 For those that don't know, I believe this was during the 40s, computers didn't even have the concept of an indirect address for quite some times. or an indirect reads being able to use a memory spot as a means to read into something else. And so this was already, like, we're not even that far from a world where they're just like, wait a second, we could read from one location into another location. We could just store something that could read somewhere else all the time. So like this is only on the heels of that. So it's actually... Like I said, he actually was sort of saying, look, what you could do is use this instruction that these machines have for array indexing and flip the parameter. and it will do this kind of Plex.
Starting point is 00:33:07 So he's literally having to like back fit this idea onto the hardware because the hardware wasn't really designed to do this, right? So that's how not like thinking in this direction it was at the time. Yeah. Well, it's also just it was so new still, right? Like this whole, you know, it's just like people even have this concept of a, like, I think it's so easy to take for granted how much we have kind of pre-built into our head on this. Yeah, and so what people were, you know,
Starting point is 00:33:35 So other competing ideas at the time, too. So LISP is contemporaneous with this. They're actually both kind of doing this work in like the mid-1950s, 956, 7, 8. LISP was taking like a different approach. They still want to do stuff like bags of data where we kind of know like, oh, the first one is this, the second one is this, the third one is this. But in LISP, since everything is treated as like these sort of like uniform elements that kind of get concatenated together, you had to do stuff like, okay, I know I need to hop three elements down in my list, right,
Starting point is 00:34:08 to get to this particular element of it, right? Which is way less efficient with the way that LISP is constructed. And so actually one of the things that Doug Ross does in his first paper he published, because he has the idea in 1956. He publishes a paper on it in 1960, which, by the way, is the same year that LISP published their paper. So it's like, right there are both the same time. McCarthy publishes the, like, the primary paper on LISP.
Starting point is 00:34:32 in 1960 as well. And he actually kind of, he disses Lisp a little bit, right? In the paper, he's like, yeah, you know, these guys working on this. Because remember, McCarthy's at MIT. Ross is at MIT. Everyone's at MIT. They all know what's up, right? He says like, yeah, Lisp, it's inefficient.
Starting point is 00:34:53 Because I want to get that third element. I got to go through each thing. And also, when you're storing it, it's inefficient. Because you have to store the linkages between these things. things to treat them as these uniform manipulable lists. It's like, I don't need to do that when I know my layout. Once I've decided on a layout for this thing, I can just fix it in place. And this turns out to be incredibly powerful concept.
Starting point is 00:35:13 So powerful, it's the building block of like every program I wrote right today. And a lot of people, that's true too. Obviously, some language is not so much. Like I said, JavaScript is more of a language that's more Lisp-like. It's saying like, well, an object is kind of just a handle and then there's just big hash table and I can just throw anything in that I want. That has a nice flexibility to it, but it has costs, right? It has efficiency costs to it.
Starting point is 00:35:35 And so what Doug Ross is really doing with this Plex is coming up with this idea of the more efficient version for when you don't need that flexibility. We have actually a pretty interesting question from the chat, which is, did they have creatine back then? They did, I'm sure, because I feel like Doug Ross must have been drinking it. Because I don't know how he came up with so much stuff. We're not even done yet with Plexes, including in the first paper. I need more creatine. So the very first paper on Plexes, he also nailed discriminated unions. So the idea that you could have a type field in there that would basically change how this thing was processed or what some of the data was used for.
Starting point is 00:36:17 And virtual functions, basically. The idea of a function pointer was in the original Plex paper. He's like, look, inside this Plex, we could also just put a jump, like an address in. the Plex so that when the thing comes to process it, it can read that address and jump to a subroutine that will process this Plex efficiently, specifically, and do things specific only to this Plex, right? So he crushes it all. He's just like, welcome to the future. Here's my 1960s paper that tells you all of the tools that everyone will use in the year 2025, pretty much down to, like, down to the layout in memory. and then like for some reason he doesn't just mic drop and walk off stage.
Starting point is 00:37:01 I woulda. I would have been like, all right, y'all, I'm done. You're welcome for the future. I'm Doug T. Ross. Thank you. Good night, Cleveland or whatever, right? Like that kind of thing. This guy literally foresaw all of modern computing.
Starting point is 00:37:14 Like, whether intentional or by accident, he foresaw everything. And that's because you pretty much described everything we use today. Correct. Like, he got all the building blocks. And the thing that really saw, oh, and by the way, he also nailed the free store. He had this thing called beads where it was like, oh, if we take these plexes and we sort them by like their size, we can have free lists that just are batches of these so that we won't fragment memory.
Starting point is 00:37:40 And then he comes up with the arena. He's like, we can also just batch free the entire group of the plexes, right? That's crazy. No, the dude is like next level. And here's the thing that sucks because people don't freaking read. they write histories of these things and completely miss this because they don't bother to read. They just go to Wikipedia and then they type that out in their book and you get a completely bogus history that leaves these people out. But he's the guy who actually figured this crap out and it's awesome.
Starting point is 00:38:11 So like I'm on team. I want to like get Doug T. Ross back into the Wikipedia pages, people, because this dude, he actually figured it out. He kind of went a little crazy later. A lot of them go crazy. As it tends to happen when you invent a lot of brand new things. But, you know, rock stars die young. That's right, baby. That's right, baby.
Starting point is 00:38:33 I mean, I don't know what happened later in life. I don't know what direction he took, but in the 60s he invented the discriminated union. I don't support that. That sounds like something to inventing 60s. Not for me. I'm sorry, I couldn't help myself. Also, I love, you can't, you have to say the T every time, okay? Doug T. Ross.
Starting point is 00:38:52 Doug T. Ross. Ross. If you have a middle letter like that, that means like more powerful. It's like Samuel L. Jackson. Exactly. It's not just Samuel Jackson. Like the middle letter is important. So if all these things have come true, I now need to find out what has not come true.
Starting point is 00:39:07 And I got to get on Polly Market, make a bet that it's going to come true. Like, what was he wrong about then? He did not have a 100% success rate. If he's the Nostradamus of tech, that means he's probably 99% wrong. He's from the future. He's from the future if he got everything right. That's a good question. I mean, maybe if you looked at some, like, afterwards, he started to think that plexes, and I kind of understand why, but like he started to think of plexes as like the nature of the universe. Do you do you know what I'm going with this? Like he was like, oh, the entire world is plexes.
Starting point is 00:39:43 Oh yeah. It's like only sees is just plexes. Everything's a plex. Yeah. So like it kind of like, it kind of went that way. So I, and I don't know that it is. I mean, I don't, I'm just not. for me to say. I don't have Doug T. Ross levels of future... I'm not smart enough to see the world. He's kind of on a different level. So I don't want to say that they're not, but it certainly hasn't quite turned out that way yet. So he also invented simulation theory? Kind of. He was definitely on team simulation theory, although I don't really invented there. There's probably other people who were pushing that pretty early, right? Well, what is he? Bullstrom? What's his name? He's out there mad at somewhere. It says on his Wikipedia article he made it.
Starting point is 00:40:22 And he's like, what? Doug D.R. No. Yeah. I'm looking forward to the distrax between Doug T. Ross. Remember, if you, if you, the first human to like actually officially create or, you know, discover simulation theory, you know, discover not create, like that's going to be the
Starting point is 00:40:38 AIs, one of their best friends. Obviously, you're going to become like, you're the first one to discover it. So it's a big deal. Because you're going to get plucked out when they say, hey, we're going to do a wipe, do a new experiment. They go, oh, good job. You figured it out. You get pulled up with just one.
Starting point is 00:40:51 Yeah, that's a good point. That's good point. Doug T. Ross is maybe, maybe he figured all that out. He's just angling to be scooped. Exactly. He wants to be scooped. I will say I did lose a friend to group theory very similarly to this problem where they got so deep in the group theory. Did you just say I lost a friend to group theory?
Starting point is 00:41:07 Yes, I lost them. This is what it was like. Listen, it was like, Haskell, Haskell. No, not just Haskell. Group theory. Hey, I got to go study math in Poland. And then when you hang out, it's like, dude, we're a discriminated union and this drink is a tag. And you're like, dude, what is going on?
Starting point is 00:41:21 And he stopped talking about programming anymore, and he only was talking about, like, don't you see? It's all groups, man. And, like, you're at Chipotle. And it's just like, don't you see this is that. And I'm like, I don't care. Think about the ontology of this burrito. Yes. Last I heard, he moved to Russia to do math.
Starting point is 00:41:38 And that's never good when you're going to Russia for math. All right. That is extra level mathing, though. Like, that is really where the math goes to math. Yeah, that's right. Okay. So, to be honest, right now, I'm kind of lost in the same. sauce right now. So like what's happening in our conversation? It's okay. It's okay. You invited me on for a very
Starting point is 00:41:57 serious Casey talk, but we're going to bring it back in. Okay. Another thing I thought was super interesting in the talk is about like how much like Conway's law essentially influences these languages, how one human, whatever they're working on is going to affect the whole design. So we're like C++ plus. That was obviously a very well thought out for, you know, large corporations making games. And it was like, no, Bjorn likes to type this. Bjorn likes that. And, And like, yeah. Curious, like, like, every language is like that, though, pretty much. No, it's so like that.
Starting point is 00:42:30 Like the idea, like, the only way you could ever argue that, like, some of these things are good for, like, large teams or whatever is just you have to make the argument that they just happened to be. Because there is no evidence in the history that anyone was even remotely trying to do that when they actually came up with the concepts. So the concepts came from completely different places that had nothing to do with teams. or anything like that. And then people like started claiming that they were good for that. And, you know, like I said, I didn't want the talk to be about that because that's a whole another talk. Like are they or aren't they, right?
Starting point is 00:43:03 But what's definitely clear is they weren't designed for that. That's like obvious, right? And so you kind of have to make the argument that, well, they turned out to be, right? That would have to be the argument that you're making. Not they were designed because they definitely weren't. And that's unequivocal. Like we have such meticulous data from the historical record that there's no argument whatsoever that they were designed for large teams. They were not.
Starting point is 00:43:28 So how do you feel like a go was? I was always advertised. When I originally switched to go, I was advertised. These guys made C. They worked at Google. They invented a language for large teams. And that's why it's so boring. So no one does anything creative and everyone knows the exact same thing.
Starting point is 00:43:44 It's a boringness is part of it for the large team. Well, that I don't know because Go is its own history, right? And I, which, you know, we're not looking at when we look at C++. Go had no influence on C++ because it didn't exist, obviously. It had no influence on Java because it didn't exist at the time. So all of the languages that, you know, were used in like the business context, the gaming context, all that stuff, no influence from Go. Goe may very well have been designed for large teams. I have no idea.
Starting point is 00:44:10 You'd have to do a history of Go to find out. And then, of course, you'd also find out how it was. I assume, I guess you're going to be honest. I assumed I was like, Casey's going to be like. Like, yeah, so me and Rob Pike, we were at a bar, and he told me I got an idea. And I told him, you're doing it wrong. No, no. I don't even know Rob Pike.
Starting point is 00:44:24 To be fair, Go didn't get discriminated unions either. You know, like, it's crazy. They just, none of them want that. That, I don't understand that. Is that really true? Go doesn't have it. I don't program and go. So I don't, they do not have a discriminated union at all.
Starting point is 00:44:40 It's because it's, it comes from Google, Casey. You're not going to get that passed out of Google. Like, there's no way. Okay. All right. So somebody saw the word discriminating. discriminate and they were like, legal, legal, legal was like, no. Just no. Why can't you call the, call it a some type or a tagged union?
Starting point is 00:44:54 Yeah, that's how Russ got around it. Some type. They got tricky. Use category theory or whatever, or type theory. I don't, who calls it a some type and who calls it tagged union? I can't remember. They all, the best part about all those things is there's different names for it. And regardless of which one you pick, someone will be mad because you're not using their term and it's incorrect or whatever. But anyway, point B. you could have picked something else. Some type, tagged union, there's a lot of names. So why didn't go get it? Why doesn't go have it?
Starting point is 00:45:22 Well, so speaking of history then, actually, because you did something. We're just going to change topics, okay. I'm going to change topics. Well, I'm going to change topics. I want to learn how to learn this topic. Casey doesn't know. We were asking for everything. So someone's got to do the research. So for something like this, I've gone on Wikipedia.
Starting point is 00:45:36 I read the entire Wikipedia on Go. And I've got to be honest, it's not the greatest story told really on there. When you're doing research, like, what are the primary sources you're looking at? for to figure out these actual tales? Or is it like old forums, emails, or you know? Well, I guess I, for languages that are made today, I'm going to go ahead and say it's
Starting point is 00:45:58 probably harder to do. And part of the reason for that is like in the old days, a lot of the people who are making these things were straight academic in an academic environment. Lots of minutes, lots of notes, lots of conferences, lots of retrospectives. one of the nicest things, which was so helpful in putting together like the context for certain stuff, is a lot of these people had two things that I could look at,
Starting point is 00:46:26 neither of which probably exists for Go, but maybe they do. One is there's an ACM, the Association for Computing Machines, has a special interest group, SIG. Remember I mentioned Sig Graph earlier? That's what Sigraph stands for. SIGG, special interest group of graphics, Sig Graph, right?
Starting point is 00:46:42 I didn't know that. Yeah, ACM is social community between SIG, special interest group, graphics. Also, we're all members of ACM, right? I mean, we pay our, we pay our, you don't, but you're not, what, you're not, what? Sorry. We're all paying members, all right, I know trashes. Sorry. They don't invite me.
Starting point is 00:46:59 They didn't invite me to their dinners. I don't know. I have no idea. So anyway, they have a thing. One of their special interest groups is for programming language. It's called SIG plan, SIG, P, L-A-N, right? Special Intergroup for programming land. languages. And that
Starting point is 00:47:16 SIG has had periodically this thing called Hoppel. The acronym, ACM is like an acronym society, right? They should just be called the society for creating acronyms or SCA or something like this. So anyway, they have this thing called Hopal, the history of programming languages, and every so
Starting point is 00:47:31 often they will get together and they'll have all the people who've made programming languages submit a paper that just says how it happened. And this is so useful. You can go back and just find like, oh, okay, here's, you know, this person and like all the people I needed had done this. Ross had done it. Um, Olin, uh, like, uh, uh, uh, uh, uh, uh, uh, uh, uh, uh, uh, uh, Strews had done it, right? Um, the, uh,
Starting point is 00:47:54 Strewsth had done it, right? Uh, well, actually, no, that's not true. Uh, Struist published his as the D&E. He published his as this book. I don't remember if he ever was out of Hoppel, but he didn't need to be because he published this. So I had it. Um, so that is really helpful because you can go to those Hoppel, uh, archives and see both, uh, uh, uh, uh, transcripts of their presentation and this giant paper that they submitted use of it. And Alan Kay did one, fraud small talk, right? So you just have all this great material. The other thing a lot of times that they've done is an oral history.
Starting point is 00:48:25 So someplace like the Computer Museum will sit down with the Computer History Museum or whatever, we'll sit down with one of these guys or a group of them sometimes if they worked as a team, and they'll just talk to them and ask them about how it was, where did you go to college, what sort of stuff did you do there, how did this happen, how did it come out? So one of the great starting points are those, because those are already like chronological. So you don't have to, they help you get a backbone for like where you can start sticking stuff on. And then from there what you have to do is just all of the stuff you can find, like all the papers you can find, you start slotting them into where they went like in that backbone. Right.
Starting point is 00:49:02 So you could go find like, oh, he did a publications around this time. What were they? Oh, he's talking about this. Oh, great. I can get that information. Right. And so you just kind of put it together that way, right? Okay, so I will say I didn't know about Hoppel until right now.
Starting point is 00:49:15 Yeah. The next hopple that happens, there is zero chance I won't be there. There's only been four Hopples so far. Dude, trash. First year, 1978. Guess who did the keynote? Dice Trump. Grace Hopper.
Starting point is 00:49:28 Can you imagine that? First Hopple? Grace Hopper keynote? I assume did she also submit the paper on Cobol or probably? I'm looking for that right now. I don't know. Maybe it wouldn't be her. I don't know.
Starting point is 00:49:41 it. If I remember correctly, like, she was the one who was really, like, gung-ho, and, like, we're going to get business logic into English, and that's what Cobol, like, that's how Cobol happened. She, she for saw LLMs. She knew it. She wanted the LLM more than anybody. They just didn't have it, right?
Starting point is 00:49:58 They just didn't have one. Yeah. I would love to be a part of a hoppel. I love this idea of doing some sort of, like, getting membership just to show up to a hopple. All four of us are going. There's zero chance we're missing hopper. We're showing up.
Starting point is 00:50:14 We're showing up before. I would love to. We're showing up. This will be Hopal 5 too. Hopal 5 is going to be huge. So prime, you've got to make a programming language that gets widespread adoption.
Starting point is 00:50:22 So let's just do that real fast. We'll write the hopple first. And then whatever the best story is, that'll be the features of the language. And then we just need widespread adoption, which that'll be easy. I'll make a language. It's like, go plus rust.
Starting point is 00:50:36 It's gust. There to have that's a new language from the primogen. They have Borgo. Yeah, you don't know about Borgo. We're all switching. Borgo's the new hottest. I didn't know. Actually, speaking of it, that's a great point.
Starting point is 00:50:50 I'm going to mention, like, J-Blow could do one soon, right? Ginger Bill, there's, we got a good little list already, okay? Jay-Blow, Ginger Bill. Dude, Hopple 5, it's going to be so hype. I'm already trying to book some recording acts, some music acts for this, too. Richard Stallman said he would come and play the acoustic guitar. So one of the problems now, just to bring it back to the original. question. So one of the problems with something like Go
Starting point is 00:51:14 would be that A, they probably haven't done the Go retrospective yet. Like, I'm looking way back in history, so you kind of have this nice thing at like at some point someone sits down and does that. You know, I don't know if like Pike or somebody has done a like history of Go. They might
Starting point is 00:51:29 have, but that might not exist yet, so that makes it harder. Similarly, they might not be, they're thinking of it in a production environment. They might not have been publishing academic papers on it because maybe that's not as common to do anymore. So will you be able to get those publications that are contemporaneous when they're designing the features? I don't know. So it's probably harder because you probably have to go back through and, like, crawl GitHub issues.
Starting point is 00:51:51 And they like, the work nowadays to, like, do it is probably a little different and probably harder, although probably you can get more information because there would be things like a public GitHub that you can look at the source really easily or things like that. And so, you know. Okay. I just see that in Hopple 4, Groovy was accepted. All right, if Groovie can be a hobo. I'm so tired. We can definitely get some language done more popular than Groovy.
Starting point is 00:52:17 Give me like three months. All right. It's probably better thought through than Groovy as well if you had three months. Do you know why we use Groovy at Netflix? You want to hear the story? Yeah, I want to hear groovy horror stories. The literal reason why is at some point there is a group of people. I think I know their names and I won't say their names just.
Starting point is 00:52:41 just because I respect them enough not to have their career tainted by this. But one of them said, dude, we hired a bunch of JavaScript engineers. They don't know how to write Java. Let's just give them a language that's like JavaScript. Kid you not. That's how we got groovy.
Starting point is 00:52:59 Ain't no way. That literal way. Yeah, that's the worst thing ever. I always mentioned it. It is literally the worst thing because Java is by large, easier than Groovy. Groovy gets insane. Oh, no, there's, I always tell people because at one time, it's like, it's actually a day I lost my sanity.
Starting point is 00:53:18 It's working like some Jenkins pipeline. And to get a slash to appear, you needed to escape it with seven slashes. Seven. And that's true. And I found this out. And I went, one, two, three, it keeps erasing them. And in seven, it was like, seven's good. And it was like, seven is the number you need.
Starting point is 00:53:35 And I literally like, I actually left work that day. I said, I'm going home. Well, that means perfect. because six would be too few and eight would be too many, so obviously it's going to be seven. True. Trueing. Right there. It's that little balance. It's that little balance. I mean, come on. That's pretty basic stuff.
Starting point is 00:53:50 Jenkins and groovy. Hell yeah. We also had the assumption that our groovy was multi-threaded for a long time. And one of the experiments that I did is I put dot sleep or dot delay on an observable. I completely froze our entire staging environment
Starting point is 00:54:06 in Netflix for like a day. So you're telling me that everyone, you guys thought It was multi-threaded and it wasn't and no one knew? No, but, okay, so the same people who said, what the hell, dude. People just need JavaScript. They're too stupid. Also, like, here's this async framework called WX, which was a, like, a handmade version of RX from Microsoft Land for Groovy and Java.
Starting point is 00:54:27 And they're just like, yeah, it's multi-threaded. So, like, you know how you're making all these calls? They won't happen sequentially. They'll just happen like, you know, as you need them. There's a scheduler. And it turns out there wasn't a scheduler as just one at a time. And so I was like, oh. really okay I'm gonna try this out dot delay and I was like oh that's weird it didn't
Starting point is 00:54:43 respond and so I like hit refresh like 10 times there's only like 10 instances of staging just all of them frozen ad infinite of just just gone forever that's that is a good way to finish a ticket though you're like we need a multi-triing it's there or oh they're gonna check yeah QA is gonna check yeah right I love it the psycho down added multi-threading Lull. Anyways, learn that one. All right. So from watching this talk, Casey, I figured out your real motive, right?
Starting point is 00:55:17 So the idea is that you can tell people that, you know, object orientation is bad for you. You've told people that. It's not sinking in. So this was like the psychological experiment of saying, I'm going to teach you how we got to every bad decision that exists right now. And you're going to see the light from like the ground up of history. Right? That was the idea. This is a trick for... Okay.
Starting point is 00:55:41 When you watch it prime, you'll see that's what it's slowly... And that's why you're idiots. But it takes like 40 minutes of history. No. I mean, because I don't... I only talk about one pretty small aspect of it, right? And so I feel like you probably could do something like what you're talking about, but it would require going down a lot more history threads to show why like other things. were bad ideas or whatever, right?
Starting point is 00:56:09 So, I don't know. I wanted to pick one specific thing because I felt like that, I mean, the talk's already two hours, and it goes by pretty quick, actually. Like, there's just a ton crammed in there, so there's not, like, a lot of filler. And so I didn't feel like it was really possible
Starting point is 00:56:23 to talk about anything bigger than that. And so I don't think it's as effective. I mean, what you're saying, I would love it if people came to the conclusion that they should go back to thinking of architecture as something that comes out of a problem instead of something that they like press onto a problem. But I don't know that this talk necessarily gets you there, right?
Starting point is 00:56:42 It's kind of really a little bit too narrow for that, I guess is what I'd say. But hey, if it convinces people to take a better approach to architecture, then that's good. And I'm happy. So right, since you did like a deep dive on this history one here, what's the next thing you'd want to like deep dive? What's like the next session of history? You'd be like, okay, now I want to do this. Would you even do another history? No, it's there was another history that's already done.
Starting point is 00:57:05 I just haven't done the recording for it yet, actually. So there's another one's coming. Can you leak it? Sure. Leak it. Pre-mature optimization is the root of all evil. Oh, really? Where are you giving the talk at?
Starting point is 00:57:17 I'm not. I'm just going to put it up as a video on my channel. Oh, that's going to be a great video. Yeah, yeah, yeah. It's like this one. There's a bunch of stuff that people just never bothered to look up. And we're going to go for like double the leg. Premature optimization, the classic, that trash.
Starting point is 00:57:35 You know that. Premature ejaculation is the root of all evil. It's a very, very normal thing. It's a common programming. I missed that part. Okay. Okay, got it. Yeah, it's going to be a good part.
Starting point is 00:57:45 Wait, so this will be structured, though, like kind of a history one. You're saying? It's 100% history, yeah. Oh, sick. Okay. Awesome. Awesome. Who are the top programming historians?
Starting point is 00:57:54 Because kind of, I've got to be honest right now, you know, you're kind of asserting yourself, and I could see in another couple of years, you might be the, you know. No, I am not, like, I am doing these histories. because we don't have any historians. Like, it's like the history is just currently garbage, which is, makes no sense because all of the primary sources are there. And so, like, yeah, I think the better question is why don't we have good programming histories?
Starting point is 00:58:21 And I don't know the answer to that. Because, like, if I was able to find all that stuff out working on a talk and most of it is stuff that people just have not put together, that is not a good sign. because A, I shouldn't have been able to do that. Should have taken way longer to get anything that wasn't already in the history books. And two, it means like, what did I miss? Right?
Starting point is 00:58:45 Like, there's probably, like, if you really were, you know, like if I traveled to MIT and dug through Doug T. Ross's paper, like, they have stuff like that, right? If you went and looked through all that stuff, like, I couldn't even read Bjornis Trostop's thesis because no one scanned it. You have to go to Cambridge to read it.
Starting point is 00:59:01 Right? I wanted to read it. Okay, we, okay, we are funding a trip. up to Cambridge so Casey can read. Dude, that'd be such a great. Oh my gosh, Began, how have we not done that as a YouTube channel video?
Starting point is 00:59:11 We flew. And I assume it's, it's like locked in an ancient room and it's on a scroll, right? And it's like, it's like, I mean, Dead Sea Scrolls and then C++. I'm just saying like, there's all this stuff and you're like, so probably there's stuff I didn't get that I didn't find. And the point is you should have had like, and I mean, the real reason is probably there's just no money in it.
Starting point is 00:59:35 Like how are you going to pay, like where are you going to get the money to pay someone to spend all their time digging through all this stuff? They also have to be a programmer. Right? There's no way they would understand. Like you read that Plex paper
Starting point is 00:59:46 if you're just a historian, you have no idea of what it meant. You'd have no idea how to connect it to what we do today. A programmer can, right? One of us can look at that and go, oh shit. Like this is something I actually know about
Starting point is 00:59:58 and we use all the time. How have I not heard that this guy did it? Historians can have no idea. They're like, Plex, what? okay you got a diagram on here okay fine so you need to have like a person who's very skilled at programming knows this stuff has done a programming career right and now they have to decide to switch to historian and learn how to be a good historian and spend all that time it's it's it's so that's why we don't have it right it's that's not likely so a couple things I find those
Starting point is 01:00:24 plex papers and just be like I don't know just start flipping to some other stuff okay so not trash is the answer like we just trash you're not it. You're not the one who's going to do this for us. I will call that out right now. Okay. I'm not that guy. We have to go to the colleges and all the kids that are scared. They're like, I'm not going to get a job. I hear the markets try to be saying, change majors.
Starting point is 01:00:45 You're a computer science degree. Be a computer historian. That's going to be the new career. We've got to build up the program. And then obviously just put them on YouTube. I watch history of speed running games that I've never heard of. I will watch a two-hour video on Wii
Starting point is 01:01:01 golf. That is a million hits. And people are like, I've never played this game. Wow. The ending was so compelling. Because, you know, good storytelling. If people are watching re-golf speed runs, they would watch a Delphi history. He's got to get a little bit of drama out of there. He's got to get some of the story.
Starting point is 01:01:18 It can't be like. All right. I love that you laughed very smugly afterwards, beginning. You're like, got to get like, because I'm making everything worse. They're going to be like, I'm going to help these videos. And it's going to be like, people are going to be like, yeah, Java. Oh, my God. I love that language.
Starting point is 01:01:34 When he broke up with his girlfriend and decided to add classes, oh my God. Like, awesome. Awesome. I think too highly of people, I assure you, I think very, very not highly of people, including myself. Wow, that was lovely. All right. Is there anything else we're going to cover on this history, the history of oops, the 35-year mistake? I don't think so.
Starting point is 01:02:02 Did we cover it? We covered it. We covered like the backbone of it because this is, you know, now everyone should go watch Casey's actual video. You have to watch your talk. Yeah, yeah, yeah. There's a lot of details.
Starting point is 01:02:11 I will say that like watching your talk made me like genuinely interested in like the history of like program languages. I'm glad to hear that because that was the goal. Like I wanted people to think this was. And I didn't know when I got up there. I literally had no idea. I was like, this could just be a complete bomb because I'm like,
Starting point is 01:02:29 I found all this stuff super fascinating. And I was like, everyone else must just be like who gives the shit like right like I was really kind of worried because I'm like it is pretty dry at the end of the day so I tried to put it into a good like narrative structure but at some level that only gets you so far and like I had to rely on the fact that people would actually be curious about this
Starting point is 01:02:50 so I was super psyched that it turns out people are because I just did not know and that was the 50-50 chance right it's like flip a coin will they be won't they be in so there you go well I'll say there's somewhat out there who's definitely worked on a tech talk that was like a banger, 20 minutes chilling how my company does their architecture. Yeah, yeah. And it's got 100, like, 100 views on YouTube. And they're like, yeah, yeah, yeah.
Starting point is 01:03:09 Two and a half hour history talk. Yeah, yeah. I put so many memes into my slides. Yeah. Yeah, I had one meme. I had one. So I had a meme. Wait, which means?
Starting point is 01:03:20 Well, it didn't work out very well, but I put one in. Yeah. What was the meme, Casey? What was it? What was it? I put up a bottle of wine. Oh. had the thing say like it's not oop it's sparkling code oh i love that concept yes so i i put that but
Starting point is 01:03:38 i i didn't know and cared it was it was it didn't matter i didn't catch that it was like it was a memy thing i thought it was just no he's inventing a new mean like background because wine because you're smart and i was trying well i what i meant is i was trying to create a me i've used the meme font kind of thing you know i don't know it didn't work but we already know remember the sacha nadella smoke in a bong thing we already know i suck at this like i can't do it that was a huge That was crazy. And you were so close to getting a good one right there because, A, it's champagne, not wine. But B, there's like so many variations of this, which is like, oh, you could do this so often.
Starting point is 01:04:11 It's a great meme format being like, oh, that's not whatever. That's just sparkling. Can you do it, prime? Can you guys do it? Like, do it. Make it happen. I can't do it. I give up.
Starting point is 01:04:22 I can't do it. Forcing a meme always works. Yes, exactly. So the idea, it's like it's not, you know, Python. That's not object orientation. It's sparkling. Stop saying object orientation. oriented.
Starting point is 01:04:32 Okay, there's no orientation. That's not a some type. That's sparkling unions. We can apply this though, I feel like to anything. You'd be like, that's not GitOps. That's sparkling DevOps. You know, it's really applicable in a bunch of areas. You know what I mean?
Starting point is 01:04:47 Last thing is any other talks you'd recommend for other people to watch. I mean, I know you're going to say all of them. Give us one. You're like one other one that you're like, bro, this blew me away. Like I said, beginning, Ryan Fleury's talk on his debugger architecture. architecture, definitely. And very specifically, I would point out there's a part of that. So there's an interesting kind of just problem that's like a generic problem that you will face if you ever write any, if you're ever trying to write any actual UI code, like a UI library, right?
Starting point is 01:05:19 Well, like, let's say you wanted something that was good. So you're thinking like, I want, you know, to actually be good. Okay. There's this problem you have of like collapsible, like, you know, there's a, like, there's a, there's a, there's a, standard UI paradigm of like I have a list of things, but each thing could be like expanded and then there's like a sub part and that part can be expanded like so a tree view basically we would call it typically. Yeah. And there's this interesting problem of like how do you structure a library such that you can have a tree view of like a hundred billion items if you wanted? Right.
Starting point is 01:05:51 And have it be instant still 60 frames second or 240 frames second or whatever you're Monterefa. So instant many billions in a tree view. How do you do it? right? And this is a problem that like most programmers would struggle with. It's very hard to to know how to do that correctly. You obviously can't create an object for each one of those or anything like that. Like that's not going to fly. So how do you do it? Idiot? Don't show all billion. Don't show a billion, man. But how do you even know, like, how do you show the scroll bar, right? How do you show the scroll bar at the correct, like, how do you know how big the whole thing will be
Starting point is 01:06:23 because you have like parts that are expanded to parts that are not? There's all this interesting to it. And he breaks it down like just perfectly. He's like, look, here's how you do it. You conceptualize it this way. You do this, this and this, and then it's easy, right? And it's like, and this is why I said, like, he's just a fantastic architect. And so, like, when he studies a problem, what you get out the other end is the problem is solved. And most architects, that's not what happens.
Starting point is 01:06:43 Most architects, you give them a problem. They create an architecture which doesn't solve the problem. And then there's just this gigantic, ugly architecture in your way while you're trying to do the thing that it supposedly solves. Like, that's a good way. That's how I would describe React, for example, right? So effectively, like, what I really love about, like, his talk is he's talking about architecture that actually solves the problem instead of creating more problems for the people who use it. And so I would highly recommend checking that talk out. There's tons of great talks at BSC.
Starting point is 01:07:15 So, you know, there's, if you're interested in other stuff, I'd also say, Dennis Gustafson's talk on paralyzing the physics solver. Anyone who likes multi-threaded just wants a, just a glimpse into how multi-threader. like thinking about multi-threaded. His talk shows just a really good intro of like, here's how my stuff was doing, and I visualized it, and I had to do these steps to like get rid of all the empty space that like all my threads were waiting on.
Starting point is 01:07:42 And I feel like if you're unfamiliar with multi-threaded programming, you don't have a lot of experience with how you would like look at something and optimize something so that it's actually running well in multi-threaded, his talk would be a great intro because he displays it all. So you don't have to, have to have a ton of experience to know what he's talking about. He displays it all visually. So you'll get a little intuition. You probably, it's not like intro in the sense that he's
Starting point is 01:08:08 going to tell you like all of the primitives and all that stuff. So it's still, you know, it's not like an intro talk in that sense. But I do think it's, it would be a great intro to people to understand this is what's going on. And then they can go do some of the learning on their own. So what you're trying to tell me is that all the talks were pretty amazing at Better Software Conference. I mean, they're not all out yet, and I didn't see all of them, so I can't make a blanket statement. But what I will say is, like, the hit rate for talks you should watch at BSC is, like, astronomical compared to any other conference that I've ever seen. Yeah, wait until you see our Arch Linux conference, 2026, you're not even going to be ready for a Casey. Well, neither is Arch Linux, because it probably won't be booting at the time.
Starting point is 01:08:49 So you'll have to spend, like, the first three hours of the conference getting Arch back and running. because like somebody forgot like how they had configured on that and the laptop wasn't right and whatever. Hey, I'm streaming on Arch Linux right now and I only had to switch to a different camera because random lines appeared on my other camera and I spent 30 minutes trying to debug it today. So but it still works.
Starting point is 01:09:10 So it can work. Maybe I stream from Windows at Arch LinuxCon but it doesn't matter. Casey. That's actually hilarious. I will say Linux pros out there the March Freakin continues, though, because now my main music workstation downstairs, it's Linux now.
Starting point is 01:09:31 Slowly but surely, I am taking machines and we are moving to Linux. I don't know that I'm ever going to go arch. Like, I don't know that I'm going to be a guy who's like, I run arch, by the way. Hey, baby. I already know what you're going to do. Casey, I already know what he's going to do. Everyone, I'm not going to do arch, and he's going to come back one stand up like, hey, guess what I did last time?
Starting point is 01:09:48 I'm on Gen 2 way faster than your little arch system. I don't know. I don't know. I'm not Linux enough to make those kind of assertions. Okay, but think about being invited to the, to the ArchConf. You know, if you go to Arch, I mean, you could be on, you could be on ArchConf. What would I do to stand up? Is it like an AA meeting that you stand up and go like, I'm an arch user? And everyone's like, thank you for sharing that. No.
Starting point is 01:10:10 We were, we have been looking at, these are all previews. We have been looking at hiring a gospel choir for some evangelizing. I'm not choking. This is, on I right, that is going to happen. trying to find the boarder. Did you just say you're not joking? I thought you were joking. No, no, that's real.
Starting point is 01:10:25 Oh, my God. So there might be some evangelizing. Okay. Because I got to be honest, you go to a conference sometimes. You hear about something, you're like, okay, they're kind of excited. I want to hear someone who really cares. Someone's passionate. The person in that choir got hired, they'd be like, where am I?
Starting point is 01:10:40 I just wanted to say Nix and a Gregorian chant over and over again. Yes. Yes. That reminds me of that infograms, that infograms corporate jingle that they have. Do you remember before they? became Atari again. Remember infograms, anyone? No. Seriously? Nobody knows this. The Borland Corporation? Yeah, is it Borland? Is that a Borland product? Are we allowed to play this on the stand-up? I don't actually know. I don't know. Okay, hold on one second because I feel like this is important. Okay, we can always delete it afterwards. If it gets in trouble here, we can we can leak more things for the Arch, uh, the Arch, uh, Arch, Linux conference.
Starting point is 01:11:16 The other thing that I, people start practicing, because we are going to have some speed running, competitions there. So, yeah, basic categories, which is going to be arch install, no arch wiki, any percent. So you got to get, you got to get it booted, but no arch wiki, okay? I'm going to put you up there. All right. Well, hey,
Starting point is 01:11:34 this was actually a very illuminating stand up, Casey. Thank you very much for that. And now I'm more eager than ever to have an 8 to 10 hour react video on my channel. Prime, the people demand it. They demand it, and you must give them what they want. Well, I first
Starting point is 01:11:50 at the Ask Better Software Conference if I can do that. You know, conferences tend to be a bit more shy about yes or no to those kind of things. They will give you the yes. I guarantee you they will give you the yes. He's the creator of the talk. He's allowed the demand. And remember, as long as you, like you're saying, if it's eight hours, you just got to be transformative. So it can't be five hours.
Starting point is 01:12:10 Two hours extra commentary. We need a good eight. That's transformative. Also, guys, the longer we talk and we can keep distracting, trash is to pee so bad. We can extend this for another hour. Guys, we can get him to piss his pants. Just pee back into that bottle that you have. If you're done drinking, just pee back into the bottle.
Starting point is 01:12:29 Dude, I've finished his bottle like 10 minutes until the podcast. Pea that out. Just pee it back in there. It's already colored yellow. It's a yellow bottle to begin with. I thought that was a vape. All right. We have to end this.
Starting point is 01:12:41 This is getting ridiculous now. Yeah, we also need Teage to end it. Where's Teage? That's a good point. Teage. Are you out there? Can you end it? Wait, Teach can't end it?
Starting point is 01:12:49 end it? Oh, snap. We're stuck. Oh, man. We might be stuck recording this podcast forever. This is a disaster.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.