← Back
Scott Hanselman July 18, 2025 37m

The Art of Assembly: Exploring Low-Level Mastery with Randall Hyde

Read full transcript 29 segments
  1. There's something new from our sponsor, There's something new from our sponsor, Text Control. For decades, TXT Controls Text Control. For decades, TXT Controls Text Control. For decades, TXT Controls rendering was tied to Windows rendering was tied to Windows rendering was tied to Windows functionality, but now it's a new era. functionality, but now it's a new era. functionality, but now it's a new era. TXT text control is platform TXT text control is platform TXT text control is platform independent. You can run your .NET independent. You can run your .NET independent. You can run your .NET applications on Windows or Linux. Deploy applications on Windows or Linux. Deploy applications on Windows or Linux. Deploy with Docker containers, Kubernetes, or with Docker containers, Kubernetes, or with Docker containers, Kubernetes, or host directly in Azure App Services. host directly in Azure App Services. host directly in Azure App Services. Seamlessly integrate document editing, Seamlessly integrate document editing, Seamlessly integrate document editing, signing, collaboration, and PDF signing, collaboration, and PDF signing, collaboration, and PDF processing into your ASP.NET Core and processing into your ASP.NET Core and processing into your ASP.NET Core and Angular applications. Are you ready to Angular applications. Are you ready to Angular applications. Are you ready to see it in action? Check out the live see it in action? Check out the live see it in action? Check out the live demo at demos.extcontrol.com. Hi, I'm Scott Hansel and this is another Hi, I'm Scott Hansel and this is another episode of Hansel Minutes. Today I have episode of Hansel Minutes. Today I have episode of Hansel Minutes. Today I have the distinct pleasure of chatting with the distinct pleasure of chatting with the distinct pleasure of chatting with Randall Hyde, well known for the art of Randall Hyde, well known for the art of Randall Hyde, well known for the art of assembly language. He created the Lisa assembly language. He created the Lisa assembly language. He created the Lisa assembler in the late 70s. How are you, assembler in the late 70s. How are you, assembler in the late 70s. How are you, sir?

  2. sir? sir? >> I'm doing great today. >> I'm doing great today. >> I'm doing great today. >> Now you you have a master's degree, but >> Now you you have a master's degree, but >> Now you you have a master's degree, but are you doctor are you Dr. Hyde as well? are you doctor are you Dr. Hyde as well? are you doctor are you Dr. Hyde as well? >> No, I uh I I was getting my PhD from the >> No, I uh I I was getting my PhD from the >> No, I uh I I was getting my PhD from the early 1990s to about 1996. early 1990s to about 1996. early 1990s to about 1996. I was attending UCR and I was a lecturer I was attending UCR and I was a lecturer I was attending UCR and I was a lecturer there at the time and um they hadn't there at the time and um they hadn't there at the time and um they hadn't started the PhD program there and I was started the PhD program there and I was started the PhD program there and I was just hanging around at UCR teaching just hanging around at UCR teaching just hanging around at UCR teaching waiting for the program to start up and waiting for the program to start up and waiting for the program to start up and I was working with my adviser there I was working with my adviser there I was working with my adviser there actually wrote my thesis went to a bunch actually wrote my thesis went to a bunch actually wrote my thesis went to a bunch of conferences presented a bunch of of conferences presented a bunch of of conferences presented a bunch of papers stuff like that and at the end papers stuff like that and at the end papers stuff like that and at the end they said well it's been six years we're they said well it's been six years we're they said well it's been six years we're going to make you take all the courses going to make you take all the courses going to make you take all the courses over that you took for your master's over that you took for your master's over that you took for your master's degree and make you take over the uh the degree and make you take over the uh the degree and make you take over the uh the exams for that stuff and I said, "Oh, exams for that stuff and I said, "Oh, exams for that stuff and I said, "Oh, no. I'm not I'm not willing to I was no. I'm not I'm not willing to I was no. I'm not I'm not willing to I was like 45 at the time. I'm not willing to like 45 at the time. I'm not willing to like 45 at the time. I'm not willing to spend any more of my life doing this and spend any more of my life doing this and spend any more of my life doing this and a PhD isn't going to do me any good." a PhD isn't going to do me any good." a PhD isn't going to do me any good." Uh, you know, unless I'm going to teach. Uh, you know, unless I'm going to teach. Uh, you know, unless I'm going to teach. So, yeah, to hell with that. Went bought So, yeah, to hell with that. Went bought So, yeah, to hell with that. Went bought a house and and went back into the a house and and went back into the a house and and went back into the workforce.

  3. workforce. workforce. >> Now, a lot of people are ABD, all but >> Now, a lot of people are ABD, all but >> Now, a lot of people are ABD, all but dissertation. It sounds like you were dissertation. It sounds like you were dissertation. It sounds like you were dissertation, but you didn't want to do dissertation, but you didn't want to do dissertation, but you didn't want to do the courses, right? What was your the courses, right? What was your the courses, right? What was your dissertation going to be? dissertation going to be? dissertation going to be? uh I was working on distributed shared uh I was working on distributed shared uh I was working on distributed shared memory at the time. So it was operating memory at the time. So it was operating memory at the time. So it was operating systems uh proc uh theory. systems uh proc uh theory. systems uh proc uh theory. >> Mhm. All this work in the 70s in the >> Mhm. All this work in the 70s in the >> Mhm. All this work in the 70s in the late '7s was in assembler but you have late '7s was in assembler but you have late '7s was in assembler but you have stuck with it. Uh you know certainly stuck with it. Uh you know certainly stuck with it. Uh you know certainly you're you have expertise in other you're you have expertise in other you're you have expertise in other things but your your your book the art things but your your your book the art things but your your your book the art of ARM assembly you have the art of of ARM assembly you have the art of of ARM assembly you have the art of 64-bit assembly. Does your this is a 64-bit assembly. Does your this is a 64-bit assembly. Does your this is a weird question. I was thinking about weird question. I was thinking about weird question. I was thinking about this all day. Does your brain work more this all day. Does your brain work more this all day. Does your brain work more in assembly and low-level than it does in assembly and low-level than it does in assembly and low-level than it does in higher level languages? in higher level languages? in higher level languages? >> Oh, I would say 10 years ago it did. >> Oh, I would say 10 years ago it did. >> Oh, I would say 10 years ago it did. That uh to be honest with you, I don't That uh to be honest with you, I don't That uh to be honest with you, I don't write uh assembly language day in and write uh assembly language day in and write uh assembly language day in and day out anymore. day out anymore. day out anymore. >> So, I'm fading away from that slowly but >> So, I'm fading away from that slowly but >> So, I'm fading away from that slowly but surely. surely. surely. Is it like a language like if you speak Is it like a language like if you speak Is it like a language like if you speak English or Spanish or Greek and it's English or Spanish or Greek and it's English or Spanish or Greek and it's like it's in your childhood or have you like it's in your childhood or have you like it's in your childhood or have you like when you sit it when you sit down like when you sit it when you sit down like when you sit it when you sit down and you read Assembler if you bump into and you read Assembler if you bump into and you read Assembler if you bump into Assembler on online you're like ah I Assembler on online you're like ah I Assembler on online you're like ah I remember does it get the neurons flowing remember does it get the neurons flowing remember does it get the neurons flowing again?

  4. again? again? >> Well for example let's take 6502 >> Well for example let's take 6502 >> Well for example let's take 6502 assembly language on on the Lisa assembly language on on the Lisa assembly language on on the Lisa assembler assembler assembler >> this day I would have a hard time >> this day I would have a hard time >> this day I would have a hard time writing a complete 6502 program. I writing a complete 6502 program. I writing a complete 6502 program. I wouldn't know how to generate it, wouldn't know how to generate it, wouldn't know how to generate it, >> but I could read the code just fine. >> but I could read the code just fine. >> but I could read the code just fine. >> Okay, so the machinations of like what >> Okay, so the machinations of like what >> Okay, so the machinations of like what the command line is and what the the command line is and what the the command line is and what the switches are and the details of how to switches are and the details of how to switches are and the details of how to do the assembly and the production of do the assembly and the production of do the assembly and the production of the binary, that's different than being the binary, that's different than being the binary, that's different than being able to read it and understand what's able to read it and understand what's able to read it and understand what's going on. going on. going on. >> Right. Right. >> Right. Right. >> Right. Right. >> Yeah. And when you wrote your your book, >> Yeah. And when you wrote your your book, >> Yeah. And when you wrote your your book, the one that kind of started it all in the one that kind of started it all in the one that kind of started it all in December of 1982 using 6502 Assembler, December of 1982 using 6502 Assembler, December of 1982 using 6502 Assembler, on the first page, you say how anyone on the first page, you say how anyone on the first page, you say how anyone can program the Apple 2. Was it was that can program the Apple 2. Was it was that can program the Apple 2. Was it was that was that an accessible language? Did was that an accessible language? Did was that an accessible language? Did people think about assembly as being the people think about assembly as being the people think about assembly as being the a great place to start? a great place to start? a great place to start? >> Well, basically back then you had three >> Well, basically back then you had three >> Well, basically back then you had three choices. You could write in bas on the choices. You could write in bas on the choices. You could write in bas on the Apple 2. You could write in basic, you Apple 2. You could write in basic, you Apple 2. You could write in basic, you could write in fourth, or you could could write in fourth, or you could could write in fourth, or you could write in assembly language. And if write in assembly language. And if write in assembly language. And if you're going to do a real application you're going to do a real application you're going to do a real application for the world, it had to be an assembly for the world, it had to be an assembly for the world, it had to be an assembly at that point because the 1 megahertz at that point because the 1 megahertz at that point because the 1 megahertz 6502 was just so slow.

  5. 6502 was just so slow. 6502 was just so slow. >> Yeah. And then now there's highlevel >> Yeah. And then now there's highlevel >> Yeah. And then now there's highlevel assembly and the developing of like the assembly and the developing of like the assembly and the developing of like the concept of highle assembly. Um why concept of highle assembly. Um why concept of highle assembly. Um why didn't you jump into C or jump into an didn't you jump into C or jump into an didn't you jump into C or jump into an even higher level language? Why stick even higher level language? Why stick even higher level language? Why stick around in assembly? around in assembly? around in assembly? >> Uh just because it was cool and fun. Uh >> Uh just because it was cool and fun. Uh >> Uh just because it was cool and fun. Uh I mean today for example I do a lot of I mean today for example I do a lot of I mean today for example I do a lot of work in Swift. In fact I'm working on a work in Swift. In fact I'm working on a work in Swift. In fact I'm working on a new book an introduction to programming new book an introduction to programming new book an introduction to programming using Swift. So uh so it's not like I using Swift. So uh so it's not like I using Swift. So uh so it's not like I don't do high level languages. It's just don't do high level languages. It's just don't do high level languages. It's just assembly was the total nerd in me you assembly was the total nerd in me you assembly was the total nerd in me you know. know. know. >> Mhm. And you you but you think about >> Mhm. And you you but you think about >> Mhm. And you you but you think about hardware as well right? You have worked hardware as well right? You have worked hardware as well right? You have worked at companies that physically have at companies that physically have at companies that physically have hardware. I can see behind you. You have hardware. I can see behind you. You have hardware. I can see behind you. You have hardware on on the shelf behind you. uh hardware on on the shelf behind you. uh hardware on on the shelf behind you. uh when they say full stack engineer when when they say full stack engineer when when they say full stack engineer when the young people say full stack engineer the young people say full stack engineer the young people say full stack engineer they pretty much talk about JavaScript they pretty much talk about JavaScript they pretty much talk about JavaScript for you full stack is all the way down for you full stack is all the way down for you full stack is all the way down to the the the wire all the way down to to the the the wire all the way down to to the the the wire all the way down to the the the >> pretty much true uh in the field I work >> pretty much true uh in the field I work >> pretty much true uh in the field I work in which is in nuclear engineering in which is in nuclear engineering in which is in nuclear engineering uh you got to be able to talk to the uh you got to be able to talk to the uh you got to be able to talk to the hardware in fact in many cases design hardware in fact in many cases design hardware in fact in many cases design the hardware to make stuff work the hardware to make stuff work the hardware to make stuff work >> is that hard to to navigate the >> is that hard to to navigate the >> is that hard to to navigate the transition I mean you worked on video transition I mean you worked on video transition I mean you worked on video games on the Atari games on the Atari games on the Atari and then nuclear reactor control and then nuclear reactor control and then nuclear reactor control systems. Do you think about those as systems. Do you think about those as systems. Do you think about those as being different things or is it just being different things or is it just being different things or is it just >> Let me tell you that the the biggest >> Let me tell you that the the biggest >> Let me tell you that the the biggest transition there I worked for Blizzard transition there I worked for Blizzard transition there I worked for Blizzard Entertainment for about a year at one Entertainment for about a year at one Entertainment for about a year at one point. Um and I immediately went from point. Um and I immediately went from point. Um and I immediately went from there to General Atomics working on there to General Atomics working on there to General Atomics working on nuclear reactor. So that that was the

  6. nuclear reactor. So that that was the nuclear reactor. So that that was the transition for me. transition for me. transition for me. >> Was that challenging? >> Was that challenging? >> Was that challenging? >> Well, not so much. I I'll be perfectly >> Well, not so much. I I'll be perfectly >> Well, not so much. I I'll be perfectly honest with you. I hated working at honest with you. I hated working at honest with you. I hated working at Blizzard or Entertainment. Game game Blizzard or Entertainment. Game game Blizzard or Entertainment. Game game programming just isn't my thing, let me programming just isn't my thing, let me programming just isn't my thing, let me tell you. It's it's just uh too much tell you. It's it's just uh too much tell you. It's it's just uh too much hacking to be honest with you. And I hacking to be honest with you. And I hacking to be honest with you. And I mean that hacking in a bad sense, not mean that hacking in a bad sense, not mean that hacking in a bad sense, not not in the more modern sense of the not in the more modern sense of the not in the more modern sense of the word. hacking in the like what you have word. hacking in the like what you have word. hacking in the like what you have to do to get it to do what you want it to do to get it to do what you want it to do to get it to do what you want it to do to do to do >> or or you know back when I was an >> or or you know back when I was an >> or or you know back when I was an undergraduate in the early middle 1970s undergraduate in the early middle 1970s undergraduate in the early middle 1970s hacking meant basically pe a hacker was hacking meant basically pe a hacker was hacking meant basically pe a hacker was someone who didn't who wasn't really someone who didn't who wasn't really someone who didn't who wasn't really trained and was just hacking away at the trained and was just hacking away at the trained and was just hacking away at the stuff till they got it working stuff till they got it working stuff till they got it working >> uh so when I say hacking that's what I'm >> uh so when I say hacking that's what I'm >> uh so when I say hacking that's what I'm talking about of course since then those talking about of course since then those talking about of course since then those hackers grew up and got educated but hackers grew up and got educated but hackers grew up and got educated but they dragged the name along with them they dragged the name along with them they dragged the name along with them and and made it a badge of honor. So, and and made it a badge of honor. So, and and made it a badge of honor. So, >> okay. Well, that brings up an >> okay. Well, that brings up an >> okay. Well, that brings up an interesting question, though. Uh, and interesting question, though. Uh, and interesting question, though. Uh, and I'll I'll push push on you a little bit.

  7. I'll I'll push push on you a little bit. I'll I'll push push on you a little bit. You know, your book Using 6502 You know, your book Using 6502 You know, your book Using 6502 Assemblers says how anyone can program Assemblers says how anyone can program Assemblers says how anyone can program the Apple 2. You have a whole series of the Apple 2. You have a whole series of the Apple 2. You have a whole series of books. Your career uh as much as books. Your career uh as much as books. Your career uh as much as building stuff has been teaching people building stuff has been teaching people building stuff has been teaching people how to write great code. But do they how to write great code. But do they how to write great code. But do they need to go to college? Do you think need to go to college? Do you think need to go to college? Do you think college is a fundamental important part college is a fundamental important part college is a fundamental important part of learning how to code or is it just of learning how to code or is it just of learning how to code or is it just about a certain amount of rigor in the about a certain amount of rigor in the about a certain amount of rigor in the learning? learning? learning? >> I think the only thing that college >> I think the only thing that college >> I think the only thing that college really does for the average person is really does for the average person is really does for the average person is that it forces them to study things that that it forces them to study things that that it forces them to study things that they wouldn't study on their own because they wouldn't study on their own because they wouldn't study on their own because they're just so boring or hard. >> That is actually good. >> That is actually good. >> That's really all school is good for. So >> That's really all school is good for. So >> That's really all school is good for. So it's good for the rigor. It's good for it's good for the rigor. It's good for it's good for the rigor. It's good for the Yeah. Well, you got to have to sit the Yeah. Well, you got to have to sit the Yeah. Well, you got to have to sit down because it's every Tuesday at 11:00 down because it's every Tuesday at 11:00 down because it's every Tuesday at 11:00 there's a class, so you have to show up. there's a class, so you have to show up. there's a class, so you have to show up. >> Yeah. And and you got to do this project >> Yeah. And and you got to do this project >> Yeah. And and you got to do this project even if you have zero interest in it. even if you have zero interest in it. even if you have zero interest in it. But all the other stuff associated with But all the other stuff associated with But all the other stuff associated with the school, none of that helped me. In the school, none of that helped me. In the school, none of that helped me. In fact, looking back, about the only thing fact, looking back, about the only thing fact, looking back, about the only thing I could say from school that wasn't I could say from school that wasn't I could say from school that wasn't related to computer programming at the related to computer programming at the related to computer programming at the time I took were my English classes. And time I took were my English classes. And time I took were my English classes. And I was terrible at English. Uh, look at I was terrible at English. Uh, look at I was terrible at English. Uh, look at me. I became a writer.

  8. me. I became a writer. me. I became a writer. So, do you where do you where do you put So, do you where do you where do you put So, do you where do you where do you put the soft skills versus the hard skills? the soft skills versus the hard skills? the soft skills versus the hard skills? I mean, there's value in learning I mean, there's value in learning I mean, there's value in learning history and there's value in learning history and there's value in learning history and there's value in learning English. There's got to be something English. There's got to be something English. There's got to be something there other than just learning ones and there other than just learning ones and there other than just learning ones and zeros. zeros. zeros. >> Um, but you know, I just remembered I >> Um, but you know, I just remembered I >> Um, but you know, I just remembered I just remember this movie Peggy Sue got just remember this movie Peggy Sue got just remember this movie Peggy Sue got married and there was this great line married and there was this great line married and there was this great line when she went back in time and was when she went back in time and was when she went back in time and was sitting in a math class and she said, "I sitting in a math class and she said, "I sitting in a math class and she said, "I know for a fact I'll never have to use know for a fact I'll never have to use know for a fact I'll never have to use algebra in my life." And you know, I can algebra in my life." And you know, I can algebra in my life." And you know, I can say the same thing about differential say the same thing about differential say the same thing about differential equations. equations. equations. >> Isn't that funny though? I tell you, I >> Isn't that funny though? I tell you, I >> Isn't that funny though? I tell you, I did English. I I mean, I did I did all did English. I I mean, I did I did all did English. I I mean, I did I did all those things. I did. Uh, everyone told those things. I did. Uh, everyone told those things. I did. Uh, everyone told me I was going to use calculus. Uh, I me I was going to use calculus. Uh, I me I was going to use calculus. Uh, I know that there are people who do it in know that there are people who do it in know that there are people who do it in computer graphics, but I've, you know, computer graphics, but I've, you know, computer graphics, but I've, you know, I'll use geometry if I build a deck, you I'll use geometry if I build a deck, you I'll use geometry if I build a deck, you know, but I don't think I've ever had to know, but I don't think I've ever had to know, but I don't think I've ever had to use much calculus, but I did suffer use much calculus, but I did suffer use much calculus, but I did suffer through that class. through that class. through that class. >> Yeah. Well, having ha having worked in >> Yeah. Well, having ha having worked in >> Yeah. Well, having ha having worked in the nuclear industry for a while, I can the nuclear industry for a while, I can the nuclear industry for a while, I can tell you that some of that math is tell you that some of that math is tell you that some of that math is important. But in my particular case, I important. But in my particular case, I important. But in my particular case, I would never trust my ability to do math. would never trust my ability to do math. would never trust my ability to do math. If there's a math issue, I go to a If there's a math issue, I go to a If there's a math issue, I go to a nuclear engineer or nuclear physicist nuclear engineer or nuclear physicist nuclear engineer or nuclear physicist and ask them, "How do you do this?"

  9. and ask them, "How do you do this?" and ask them, "How do you do this?" >> So, in the working on nuclear reactor >> So, in the working on nuclear reactor >> So, in the working on nuclear reactor control systems, there must be nuclear control systems, there must be nuclear control systems, there must be nuclear engineers that sit with you and you're engineers that sit with you and you're engineers that sit with you and you're translating their expertise into what translating their expertise into what translating their expertise into what the nuclear control system understands. the nuclear control system understands. the nuclear control system understands. Do do you have expertise in in nuclear Do do you have expertise in in nuclear Do do you have expertise in in nuclear engineering now? engineering now? engineering now? >> Not so much in the nuclear side of it, >> Not so much in the nuclear side of it, >> Not so much in the nuclear side of it, but in the electronics side of it. but in the electronics side of it. but in the electronics side of it. >> Uh most of the stuff I do touches very >> Uh most of the stuff I do touches very >> Uh most of the stuff I do touches very little on actual nuclear physics. little on actual nuclear physics. little on actual nuclear physics. >> Um you know, but there are some things >> Um you know, but there are some things >> Um you know, but there are some things that that like I say a nuclear engineer that that like I say a nuclear engineer that that like I say a nuclear engineer will have to explain to me. uh but for will have to explain to me. uh but for will have to explain to me. uh but for the most part no really very little of the most part no really very little of the most part no really very little of that at all in the software that you use that at all in the software that you use that at all in the software that you use to control nuclear reactors. to control nuclear reactors. to control nuclear reactors. >> In your in your book right in your in >> In your in your book right in your in >> In your in your book right in your in your books uh the write great code your books uh the write great code your books uh the write great code series you know you emphasize deep series you know you emphasize deep series you know you emphasize deep machine understanding like you need to machine understanding like you need to machine understanding like you need to understand the machine in order to write understand the machine in order to write understand the machine in order to write better code. You know how do you balance better code. You know how do you balance better code. You know how do you balance teaching people practical coding skills teaching people practical coding skills teaching people practical coding skills with that kind of theory and deep with that kind of theory and deep with that kind of theory and deep machine understanding?

  10. machine understanding? machine understanding? Well, Well, Well, I don't know. It's just I just remember I don't know. It's just I just remember I don't know. It's just I just remember when I was an undergraduate when I was an undergraduate when I was an undergraduate and they didn't teach things in quite and they didn't teach things in quite and they didn't teach things in quite the same order they do today. the same order they do today. the same order they do today. >> And I remember thinking, you know, what >> And I remember thinking, you know, what >> And I remember thinking, you know, what they really need to teach is uh how they really need to teach is uh how they really need to teach is uh how characters inside inside strings that characters inside inside strings that characters inside inside strings that you use in your highle language program. you use in your highle language program. you use in your highle language program. Now, for me at that time, it was Now, for me at that time, it was Now, for me at that time, it was >> Pascal. >> Pascal. >> Pascal. >> I said h how do these characters all >> I said h how do these characters all >> I said h how do these characters all work? how are they represented in the work? how are they represented in the work? how are they represented in the machine? Uh, and machine? Uh, and machine? Uh, and I struggled with a lot of things like I struggled with a lot of things like I struggled with a lot of things like using arrays and stuff like that when I using arrays and stuff like that when I using arrays and stuff like that when I was first learning because I didn't was first learning because I didn't was first learning because I didn't understand how that low-level stuff understand how that low-level stuff understand how that low-level stuff worked. Now by the time I started worked. Now by the time I started worked. Now by the time I started teaching in the very early 1999 90s teaching in the very early 1999 90s teaching in the very early 1999 90s early or late 1980s by then uh the ILE E early or late 1980s by then uh the ILE E early or late 1980s by then uh the ILE E had come up with a suggested curriculum had come up with a suggested curriculum had come up with a suggested curriculum for computer science programs and you for computer science programs and you for computer science programs and you know the second class the students took know the second class the students took know the second class the students took was a a computer organization and m an was a a computer organization and m an was a a computer organization and m an assembly language programming course and assembly language programming course and assembly language programming course and that's where you learn all this stuff that's where you learn all this stuff that's where you learn all this stuff and that's where I learned oh this is and that's where I learned oh this is and that's where I learned oh this is the kind of stuff that needs to be the kind of stuff that needs to be the kind of stuff that needs to be taught early on so that you understand taught early on so that you understand taught early on so that you understand how things in your high level languages how things in your high level languages how things in your high level languages work. And that was very very fundamental work. And that was very very fundamental work. And that was very very fundamental to me because I like I said I struggled to me because I like I said I struggled to me because I like I said I struggled with that as an undergraduate. Now other with that as an undergraduate. Now other with that as an undergraduate. Now other people probably wouldn't have the same people probably wouldn't have the same people probably wouldn't have the same problems I had at the time but but problems I had at the time but but problems I had at the time but but that's what really drove me to say uh to that's what really drove me to say uh to that's what really drove me to say uh to say for instance in write great code you say for instance in write great code you say for instance in write great code you need to understand the low-level

  11. need to understand the low-level need to understand the low-level behavior of the machine in order to behavior of the machine in order to behavior of the machine in order to write great code. write great code. write great code. >> Yeah. Yeah. I've used this analogy uh >> Yeah. Yeah. I've used this analogy uh >> Yeah. Yeah. I've used this analogy uh that I'm about to share with you so many that I'm about to share with you so many that I'm about to share with you so many times that I'm sure that people who times that I'm sure that people who times that I'm sure that people who listen to the podcast are sick of me. listen to the podcast are sick of me. listen to the podcast are sick of me. But I've said that in a world of Ubers But I've said that in a world of Ubers But I've said that in a world of Ubers and in a world of buses where you can and in a world of buses where you can and in a world of buses where you can just have a car pick you up and drive just have a car pick you up and drive just have a car pick you up and drive you away, there is value in knowing how you away, there is value in knowing how you away, there is value in knowing how to drive stick shift, I think it changes to drive stick shift, I think it changes to drive stick shift, I think it changes your relationship with the vehicle if your relationship with the vehicle if your relationship with the vehicle if you can change your oil, if you can pop you can change your oil, if you can pop you can change your oil, if you can pop the trunk and see what's going on the trunk and see what's going on the trunk and see what's going on inside. I think that's a valid analogy. inside. I think that's a valid analogy. inside. I think that's a valid analogy. And even though I can choose to ignore And even though I can choose to ignore And even though I can choose to ignore the system in understanding what's the system in understanding what's the system in understanding what's happening in understanding the memory happening in understanding the memory happening in understanding the memory management of Windows or you know you're management of Windows or you know you're management of Windows or you know you're on a Mac uh when things go wrong I feel on a Mac uh when things go wrong I feel on a Mac uh when things go wrong I feel like oh you know I know this I can drive like oh you know I know this I can drive like oh you know I know this I can drive stick shift. Do you think that's a valid stick shift. Do you think that's a valid stick shift. Do you think that's a valid analogy? analogy? analogy? >> Oh let me give you an extension of that. >> Oh let me give you an extension of that. >> Oh let me give you an extension of that. I just recently bought a Toyota Grand I just recently bought a Toyota Grand I just recently bought a Toyota Grand Highlander that has this sort of Highlander that has this sort of Highlander that has this sort of automatic driving feature in it. Sort of automatic driving feature in it. Sort of automatic driving feature in it. Sort of like the Teslas have. not not as great like the Teslas have. not not as great like the Teslas have. not not as great as the Teslas, but it'll keep you in the as the Teslas, but it'll keep you in the as the Teslas, but it'll keep you in the lane and it'll break for you lane and it'll break for you lane and it'll break for you automatically and close cars in front of automatically and close cars in front of automatically and close cars in front of you and slowing down. And I made an you and slowing down. And I made an you and slowing down. And I made an 8,000 mi road trip with that. And at the 8,000 mi road trip with that. And at the 8,000 mi road trip with that. And at the end, I got back in my old Avalon and was end, I got back in my old Avalon and was end, I got back in my old Avalon and was driving and said, "Why isn't why is that driving and said, "Why isn't why is that driving and said, "Why isn't why is that car coming up at me real quick? I car coming up at me real quick? I car coming up at me real quick? I realized I had to put the brakes on." uh realized I had to put the brakes on." uh realized I had to put the brakes on." uh you know you you you know it really is you know you you you know it really is you know you you you know it really is something that if you know how the car something that if you know how the car something that if you know how the car operates uh yes you can you can drive it operates uh yes you can you can drive it operates uh yes you can you can drive it better more importantly you're attuned better more importantly you're attuned better more importantly you're attuned to it so if you hear funny sounds you

  12. to it so if you hear funny sounds you to it so if you hear funny sounds you can say oh this is this is this thing can say oh this is this is this thing can say oh this is this is this thing and I' I've got to deal with it or ah and I' I've got to deal with it or ah and I' I've got to deal with it or ah who cares about that let it go and stuff who cares about that let it go and stuff who cares about that let it go and stuff like that so so yes knowing this stuff like that so so yes knowing this stuff like that so so yes knowing this stuff it's the same thing as coding knowing it's the same thing as coding knowing it's the same thing as coding knowing the low-level uh behavior of the machine the low-level uh behavior of the machine the low-level uh behavior of the machine helps you figure out how to write better helps you figure out how to write better helps you figure out how to write better code, how to create uh or debug code, code, how to create uh or debug code, code, how to create uh or debug code, create tests to uh determine what's create tests to uh determine what's create tests to uh determine what's wrong with it and stuff like that. wrong with it and stuff like that. wrong with it and stuff like that. >> Mhm. >> Mhm. >> Mhm. >> Very, very important. >> Very, very important. >> Very, very important. >> Hey friends, this is Scott. We're going >> Hey friends, this is Scott. We're going >> Hey friends, this is Scott. We're going to take a moment to thank a new sponsor, to take a moment to thank a new sponsor, to take a moment to thank a new sponsor, Sharegate by Work. You know, I've been Sharegate by Work. You know, I've been Sharegate by Work. You know, I've been thinking about moving my Google Suite thinking about moving my Google Suite thinking about moving my Google Suite organization over to M365, you know, and organization over to M365, you know, and organization over to M365, you know, and after that migration, uh Shaylen Gimy, after that migration, uh Shaylen Gimy, after that migration, uh Shaylen Gimy, what are the biggest challenges in what are the biggest challenges in what are the biggest challenges in driving adoption of new tools? Honestly, driving adoption of new tools? Honestly, driving adoption of new tools? Honestly, the biggest challenge is user education. the biggest challenge is user education. the biggest challenge is user education. If people don't like change and if they If people don't like change and if they If people don't like change and if they don't fully understand the new tools, don't fully understand the new tools, don't fully understand the new tools, they won't use them. You know, that they won't use them. You know, that they won't use them. You know, that leads to low adoption rates, which means leads to low adoption rates, which means leads to low adoption rates, which means missed opportunities for better missed opportunities for better missed opportunities for better collaboration and efficiency. You know, collaboration and efficiency. You know, collaboration and efficiency. You know, the problem is IT teams don't really the problem is IT teams don't really the problem is IT teams don't really have time to build and distribute and have time to build and distribute and have time to build and distribute and monitor training programs. So, we built monitor training programs. So, we built monitor training programs. So, we built it for them. You know, Sharegate offers it for them. You know, Sharegate offers it for them. You know, Sharegate offers 15 plus hours of end-user training 15 plus hours of end-user training 15 plus hours of end-user training courses designed to help organizations courses designed to help organizations courses designed to help organizations increase Microsoft 365 adoption without increase Microsoft 365 adoption without increase Microsoft 365 adoption without adding more work for the IT teams. You adding more work for the IT teams. You adding more work for the IT teams. You know, when users actually understand the know, when users actually understand the know, when users actually understand the tools at their disposal, they're more tools at their disposal, they're more tools at their disposal, they're more likely to use them effectively, and likely to use them effectively, and likely to use them effectively, and that's when you start seeing real that's when you start seeing real that's when you start seeing real productivity gains. That is very cool.

  13. productivity gains. That is very cool. productivity gains. That is very cool. And that is one tool to migrate faster And that is one tool to migrate faster And that is one tool to migrate faster and secure your tenant. Check them out and secure your tenant. Check them out and secure your tenant. Check them out at sharegate.com. It's your out of- at sharegate.com. It's your out of- at sharegate.com. It's your out of- the-box Microsoft 365 migration the-box Microsoft 365 migration the-box Microsoft 365 migration solution. It's packed with best solution. It's packed with best solution. It's packed with best practices and training information practices and training information practices and training information that's going to guide you at every step. that's going to guide you at every step. that's going to guide you at every step. Thanks for being a sponsor. Thanks for being a sponsor. Thanks for being a sponsor. Now, I have been told by some that, you Now, I have been told by some that, you Now, I have been told by some that, you know, you want more people to learn how know, you want more people to learn how know, you want more people to learn how to code. You want people to feel to code. You want people to feel to code. You want people to feel enabled, empowered, like like again like enabled, empowered, like like again like enabled, empowered, like like again like I point out in your uh in your 6502 I point out in your uh in your 6502 I point out in your uh in your 6502 book, How Anyone Can Program. Like we book, How Anyone Can Program. Like we book, How Anyone Can Program. Like we want everyone to learn how to program. want everyone to learn how to program. want everyone to learn how to program. But people have said to me that if you But people have said to me that if you But people have said to me that if you insist or encourage the use of assembler insist or encourage the use of assembler insist or encourage the use of assembler or lower level languages, then you're or lower level languages, then you're or lower level languages, then you're going to basically lose a bunch of going to basically lose a bunch of going to basically lose a bunch of people who maybe would should be using people who maybe would should be using people who maybe would should be using Visual Basic or Python or a higher level Visual Basic or Python or a higher level Visual Basic or Python or a higher level language. How important is it for us as language. How important is it for us as language. How important is it for us as people who are maybe on the end of our people who are maybe on the end of our people who are maybe on the end of our careers to encourage the people who are careers to encourage the people who are careers to encourage the people who are the earlier side of their career to the earlier side of their career to the earlier side of their career to explore lower level languages or should explore lower level languages or should explore lower level languages or should we just let it go and then just let them we just let it go and then just let them we just let it go and then just let them float up here in the Java C world?

  14. float up here in the Java C world? float up here in the Java C world? >> Yeah. Well, it's interesting that today >> Yeah. Well, it's interesting that today >> Yeah. Well, it's interesting that today people are thinking C, not C++, but C is people are thinking C, not C++, but C is people are thinking C, not C++, but C is the modern assembly language. That's the modern assembly language. That's the modern assembly language. That's where you learn your low-level stuff. where you learn your low-level stuff. where you learn your low-level stuff. >> Oh, no. >> Oh, no. >> Oh, no. >> Yeah, it's kind of scary. But I'll be >> Yeah, it's kind of scary. But I'll be >> Yeah, it's kind of scary. But I'll be honest with you, um, as an instructor of honest with you, um, as an instructor of honest with you, um, as an instructor of over a decade and having been in this over a decade and having been in this over a decade and having been in this business for 40, 50 years now, business for 40, 50 years now, business for 40, 50 years now, um, the important thing is what you'd um, the important thing is what you'd um, the important thing is what you'd call machine organization. call machine organization. call machine organization. uh as long as they learn the machine uh as long as they learn the machine uh as long as they learn the machine organization and enough assembly organization and enough assembly organization and enough assembly language to understand that machine language to understand that machine language to understand that machine organization if they never ever really organization if they never ever really organization if they never ever really write in assembly language. write in assembly language. write in assembly language. Uh that's probably okay for the vast Uh that's probably okay for the vast Uh that's probably okay for the vast majority of people. Uh there are always majority of people. Uh there are always majority of people. Uh there are always going to be people that are writing like going to be people that are writing like going to be people that are writing like library code for your compilers and library code for your compilers and library code for your compilers and stuff like that. They need to be able to stuff like that. They need to be able to stuff like that. They need to be able to work really well in assembly language. work really well in assembly language. work really well in assembly language. But your average person writing Java But your average person writing Java But your average person writing Java applications, they need to understand applications, they need to understand applications, they need to understand the low-level stuff, but they're not the low-level stuff, but they're not the low-level stuff, but they're not going to write in assembly language going to write in assembly language going to write in assembly language themselves. And and I don't believe we themselves. And and I don't believe we themselves. And and I don't believe we need to encourage that so much as we need to encourage that so much as we need to encourage that so much as we need to encourage them learning just the need to encourage them learning just the need to encourage them learning just the low-level behaviors. So that's really low-level behaviors. So that's really low-level behaviors. So that's really interesting perspective because you're interesting perspective because you're interesting perspective because you're known in your in your in your teaching known in your in your in your teaching known in your in your in your teaching style and in your writing style, not style and in your writing style, not style and in your writing style, not just to tell people how things work, but just to tell people how things work, but just to tell people how things work, but the why, like why these decisions were the why, like why these decisions were the why, like why these decisions were made, why these machine architecture made, why these machine architecture made, why these machine architecture decisions were made. I suppose that that decisions were made. I suppose that that decisions were made. I suppose that that would be as important or more so for would be as important or more so for would be as important or more so for people to understand versus the little

  15. people to understand versus the little people to understand versus the little tiny details. tiny details. tiny details. >> Sure. >> Sure. >> Sure. uh and you know I I think the I think uh and you know I I think the I think uh and you know I I think the I think the main thing that has changed my the main thing that has changed my the main thing that has changed my attitude over the decades has been the attitude over the decades has been the attitude over the decades has been the rise of multiprocessor rise of multiprocessor rise of multiprocessor systems. Uh multi-core CPUs systems. Uh multi-core CPUs systems. Uh multi-core CPUs uh h give you the ability to double or uh h give you the ability to double or uh h give you the ability to double or triple or quadruple or whatever the triple or quadruple or whatever the triple or quadruple or whatever the speed of an application assuming it's speed of an application assuming it's speed of an application assuming it's reasonably well written without having reasonably well written without having reasonably well written without having to dip down into assembly language. And to dip down into assembly language. And to dip down into assembly language. And if you dip down into assembly language, if you dip down into assembly language, if you dip down into assembly language, you're not going to gain that much over you're not going to gain that much over you're not going to gain that much over this stuff. Assembly language is really this stuff. Assembly language is really this stuff. Assembly language is really great for single core applications, great for single core applications, great for single core applications, particularly in embedded systems where particularly in embedded systems where particularly in embedded systems where writing something that's twice as fast writing something that's twice as fast writing something that's twice as fast as the difference between your product as the difference between your product as the difference between your product working and it not working. Um, you working and it not working. Um, you working and it not working. Um, you know, back in the Apple 2 days, it was know, back in the Apple 2 days, it was know, back in the Apple 2 days, it was possible to write an assembly language possible to write an assembly language possible to write an assembly language program that was a hundred to a thousand program that was a hundred to a thousand program that was a hundred to a thousand times faster than the the Applesoft times faster than the the Applesoft times faster than the the Applesoft Basic that existed at the time. In the Basic that existed at the time. In the Basic that existed at the time. In the 80s, compilers started appearing uh for 80s, compilers started appearing uh for 80s, compilers started appearing uh for chips like the 8088, the precursor to chips like the 8088, the precursor to chips like the 8088, the precursor to our modern chips. And um and still it our modern chips. And um and still it our modern chips. And um and still it was possible to write a summ language was possible to write a summ language was possible to write a summ language code that was 10 to 100 times faster code that was 10 to 100 times faster code that was 10 to 100 times faster than the compiled code. By the 90s that than the compiled code. By the 90s that than the compiled code. By the 90s that had dropped down to maybe 10 times had dropped down to maybe 10 times had dropped down to maybe 10 times faster. Uh by the time the 2000s and faster. Uh by the time the 2000s and faster. Uh by the time the 2000s and 2010s rolled around uh you know it the 2010s rolled around uh you know it the 2010s rolled around uh you know it the it just kept shrinking. And this is on it just kept shrinking. And this is on it just kept shrinking. And this is on on single single uh core applications.

  16. on single single uh core applications. on single single uh core applications. Today with only a few exceptions I'd Today with only a few exceptions I'd Today with only a few exceptions I'd struggle to write something that's twice struggle to write something that's twice struggle to write something that's twice as fast as a really good compiler can as fast as a really good compiler can as fast as a really good compiler can produce. A really good C compiler for produce. A really good C compiler for produce. A really good C compiler for example. That's a great point because I example. That's a great point because I example. That's a great point because I started with with C after I I I worked started with with C after I I I worked started with with C after I I I worked in Java in the 90s and I switched to C# in Java in the 90s and I switched to C# in Java in the 90s and I switched to C# in 20201 when it started and C had a in 20201 when it started and C had a in 20201 when it started and C had a reputation 25 years ago as a somewhat reputation 25 years ago as a somewhat reputation 25 years ago as a somewhat slower language just like Java did and slower language just like Java did and slower language just like Java did and now you can compile a C application and now you can compile a C application and now you can compile a C application and it will be as fast as a comparable C it will be as fast as a comparable C it will be as fast as a comparable C application and you're within 10 20%. application and you're within 10 20%. application and you're within 10 20%. And I mean it's quite challen the And I mean it's quite challen the And I mean it's quite challen the between the jitter and the compiler and between the jitter and the compiler and between the jitter and the compiler and all of the the multiple levels of all of the the multiple levels of all of the the multiple levels of optimization optimization optimization the orders of magnitude of improvements the orders of magnitude of improvements the orders of magnitude of improvements and dropping down to the low levels have and dropping down to the low levels have and dropping down to the low levels have kind of gone away which is amazing from kind of gone away which is amazing from kind of gone away which is amazing from a compiler technology perspective a compiler technology perspective a compiler technology perspective >> right uh so you know particularly >> right uh so you know particularly >> right uh so you know particularly combined with multi- multi-processors combined with multi- multi-processors combined with multi- multi-processors and and multitasking applications and and multitasking applications and and multitasking applications multi-threaded applications multi-threaded applications multi-threaded applications uh you can really achieve uh you can really achieve uh you can really achieve assembly language speeds without the assembly language speeds without the assembly language speeds without the effort of writing it all in as effort of writing it all in as effort of writing it all in as maintaining that assembly language code.

  17. maintaining that assembly language code. maintaining that assembly language code. Now, I'm not saying people shouldn't Now, I'm not saying people shouldn't Now, I'm not saying people shouldn't write stuff in assembly language. I'm write stuff in assembly language. I'm write stuff in assembly language. I'm just saying you just have to carefully just saying you just have to carefully just saying you just have to carefully choose what you write in assembly choose what you write in assembly choose what you write in assembly language. If you look at my latest language. If you look at my latest language. If you look at my latest series of of art of assembly books, uh series of of art of assembly books, uh series of of art of assembly books, uh you know, back in the original art of you know, back in the original art of you know, back in the original art of assembly days, uh I wrote in pure assembly days, uh I wrote in pure assembly days, uh I wrote in pure assembly language. In the new books, I assembly language. In the new books, I assembly language. In the new books, I start with a C main program and it calls start with a C main program and it calls start with a C main program and it calls an assembly language function, which is an assembly language function, which is an assembly language function, which is how most people are going to write how most people are going to write how most people are going to write assembly language state. They're not assembly language state. They're not assembly language state. They're not going to write pure assembly going to write pure assembly going to write pure assembly applications. They're going to write applications. They're going to write applications. They're going to write some C code or some other highle some C code or some other highle some C code or some other highle language and call assembly language language and call assembly language language and call assembly language functions for the things that are functions for the things that are functions for the things that are speedritical. Now, there are a few speedritical. Now, there are a few speedritical. Now, there are a few things in assembly you can still do that things in assembly you can still do that things in assembly you can still do that are many, many times faster than a are many, many times faster than a are many, many times faster than a well-written C program. For example, I well-written C program. For example, I well-written C program. For example, I recently wrote a a um a a floatingoint recently wrote a a um a a floatingoint recently wrote a a um a a floatingoint format output function in assembly format output function in assembly format output function in assembly language that was about oh five to 10 language that was about oh five to 10 language that was about oh five to 10 times faster than the comparable C times faster than the comparable C times faster than the comparable C standard library functions. Um and I had standard library functions. Um and I had standard library functions. Um and I had to cheat to do it but but I pulled it to cheat to do it but but I pulled it to cheat to do it but but I pulled it off. Uh, I needed it for an embedded off. Uh, I needed it for an embedded off. Uh, I needed it for an embedded system because I needed to format this system because I needed to format this system because I needed to format this stuff to a string and ship it out over stuff to a string and ship it out over stuff to a string and ship it out over over the Ethernet port and it had to be over the Ethernet port and it had to be over the Ethernet port and it had to be quick on a very slow embedded ARM quick on a very slow embedded ARM quick on a very slow embedded ARM processor, you know, like a Raspberry Pi processor, you know, like a Raspberry Pi processor, you know, like a Raspberry Pi Pico. Uh, so this kind of stuff still Pico. Uh, so this kind of stuff still Pico. Uh, so this kind of stuff still exists for this need still exists for exists for this need still exists for exists for this need still exists for some very very specialized applications, some very very specialized applications, some very very specialized applications, but for your average person writing a a but for your average person writing a a but for your average person writing a a financial application, no, you'd never financial application, no, you'd never financial application, no, you'd never consider doing this stuff in assembly

  18. consider doing this stuff in assembly consider doing this stuff in assembly these days. these days. these days. >> Yeah. Yeah, even even the embedded >> Yeah. Yeah, even even the embedded >> Yeah. Yeah, even even the embedded stuff, you know, I wrote uh this stuff, you know, I wrote uh this stuff, you know, I wrote uh this original uh nuclear reactor digital original uh nuclear reactor digital original uh nuclear reactor digital console code. I wrote a lot of that console code. I wrote a lot of that console code. I wrote a lot of that stuff back in the early 2000s, the stuff back in the early 2000s, the stuff back in the early 2000s, the low-level portion of that in HLA, the low-level portion of that in HLA, the low-level portion of that in HLA, the highle assembler. Uh today, I wouldn't highle assembler. Uh today, I wouldn't highle assembler. Uh today, I wouldn't even do that because machines are 100 even do that because machines are 100 even do that because machines are 100 times faster now than they were back times faster now than they were back times faster now than they were back then. I don't need the performance. then. I don't need the performance. then. I don't need the performance. the the highlevel assembler that uh I the the highlevel assembler that uh I the the highlevel assembler that uh I think the last stable release was maybe think the last stable release was maybe think the last stable release was maybe 101 15 years ago. You pulled from things 101 15 years ago. You pulled from things 101 15 years ago. You pulled from things like Pas Casp Pascal from C++. You're like Pas Casp Pascal from C++. You're like Pas Casp Pascal from C++. You're trying to facilitate a more readable trying to facilitate a more readable trying to facilitate a more readable assembly language. You were trying to assembly language. You were trying to assembly language. You were trying to make it uh a teaching tool almost, make it uh a teaching tool almost, make it uh a teaching tool almost, weren't you? weren't you? weren't you? >> Right. I that that's exactly what I used >> Right. I that that's exactly what I used >> Right. I that that's exactly what I used it for. I used it in all my classes at it for. I used it in all my classes at it for. I used it in all my classes at UC Riverside when I taught computer UC Riverside when I taught computer UC Riverside when I taught computer science there. science there. science there. And did you find that that that helped And did you find that that that helped And did you find that that that helped people click? Because I have found the people click? Because I have found the people click? Because I have found the the altitude adjustment between C and the altitude adjustment between C and the altitude adjustment between C and Assembler, that altitude shift to be Assembler, that altitude shift to be Assembler, that altitude shift to be quite dramatic and there's just you lose quite dramatic and there's just you lose quite dramatic and there's just you lose a lot of kids as you make the altitude a lot of kids as you make the altitude a lot of kids as you make the altitude shift. Did HLA prevent that?

  19. shift. Did HLA prevent that? shift. Did HLA prevent that? >> Well, I mean, think of it this way. >> Well, I mean, think of it this way. >> Well, I mean, think of it this way. Imagine if you had a printf statement in Imagine if you had a printf statement in Imagine if you had a printf statement in assembly language, and that's what HLA assembly language, and that's what HLA assembly language, and that's what HLA brought to the party back then. People brought to the party back then. People brought to the party back then. People didn't have to know how to create didn't have to know how to create didn't have to know how to create strings and send them out one character strings and send them out one character strings and send them out one character at a time to a see out routine in a at a time to a see out routine in a at a time to a see out routine in a simil language and and they didn't have simil language and and they didn't have simil language and and they didn't have have to know how to convert integers have to know how to convert integers have to know how to convert integers into strings of characters representing into strings of characters representing into strings of characters representing those integers. So they could write your those integers. So they could write your those integers. So they could write your hello world program on day one. They hello world program on day one. They hello world program on day one. They could print integer values on day two. could print integer values on day two. could print integer values on day two. That's just something you couldn't do in That's just something you couldn't do in That's just something you couldn't do in normal assembly language. normal assembly language. normal assembly language. >> I'm looking at some examples of hlas. >> I'm looking at some examples of hlas. >> I'm looking at some examples of hlas. There's you, by the way, I have to give There's you, by the way, I have to give There's you, by the way, I have to give you credit, man. If you go to your, if you credit, man. If you go to your, if you credit, man. If you go to your, if you go to Randall's uh website, you go to Randall's uh website, you go to Randall's uh website, randallhyde.com, you click on books, not randallhyde.com, you click on books, not randallhyde.com, you click on books, not only are they great books, and you can only are they great books, and you can only are they great books, and you can get them all from nostarch press at get them all from nostarch press at get them all from nostarch press at nostarch.com, but the amount of support nostarch.com, but the amount of support nostarch.com, but the amount of support material is almost another whole book. material is almost another whole book. material is almost another whole book. like you can read the book and then you like you can read the book and then you like you can read the book and then you can go and download the MASM source code can go and download the MASM source code can go and download the MASM source code and then the Linux source code and then and then the Linux source code and then and then the Linux source code and then the Mac source code and educational the Mac source code and educational the Mac source code and educational support 150 plus uh slide deck in support 150 plus uh slide deck in support 150 plus uh slide deck in PowerPoint which is effectively it's PowerPoint which is effectively it's PowerPoint which is effectively it's another book itself. Uh I feel like another book itself. Uh I feel like another book itself. Uh I feel like there's almost an art to writing books there's almost an art to writing books there's almost an art to writing books at this level of depth of education that at this level of depth of education that at this level of depth of education that is lost. A lot of people just throw a is lost. A lot of people just throw a is lost. A lot of people just throw a book together as a giant word file, but book together as a giant word file, but book together as a giant word file, but you're almost creating an ecosystem you're almost creating an ecosystem you're almost creating an ecosystem of uh of support material. I just want of uh of support material. I just want of uh of support material. I just want to give you your give you your flowers to give you your give you your flowers to give you your give you your flowers for that.

  20. for that. for that. >> Yeah. Thank you. And as soon as I figure >> Yeah. Thank you. And as soon as I figure >> Yeah. Thank you. And as soon as I figure out all this AI stuff, I'll start using out all this AI stuff, I'll start using out all this AI stuff, I'll start using that to generate stuff, too. that to generate stuff, too. that to generate stuff, too. >> Well, so you know, I I got to I got to >> Well, so you know, I I got to I got to >> Well, so you know, I I got to I got to ask then, right? If we go back with our ask then, right? If we go back with our ask then, right? If we go back with our car, with our self-driving car, our car, with our self-driving car, our car, with our self-driving car, our self-driving Highland or Toyota, uh, how self-driving Highland or Toyota, uh, how self-driving Highland or Toyota, uh, how do we make sure that the art of assembly do we make sure that the art of assembly do we make sure that the art of assembly is not lost if we're going to go and is not lost if we're going to go and is not lost if we're going to go and vibe code our nuclear control systems? Well, uh, you know, I played around a Well, uh, you know, I played around a little bit with chat GPT generating little bit with chat GPT generating little bit with chat GPT generating code. code. code. >> Mhm. >> Mhm. >> Mhm. >> And I will say this, sometimes it does >> And I will say this, sometimes it does >> And I will say this, sometimes it does some really amazing stuff. Sometimes some really amazing stuff. Sometimes some really amazing stuff. Sometimes it's completely brain dead. it's completely brain dead. it's completely brain dead. >> And um the only way that stuff can >> And um the only way that stuff can >> And um the only way that stuff can really be useful to you is if you know really be useful to you is if you know really be useful to you is if you know the stuff to begin with because it can the stuff to begin with because it can the stuff to begin with because it can lead you down a path if if you don't lead you down a path if if you don't lead you down a path if if you don't really don't know stuff and you ask it really don't know stuff and you ask it really don't know stuff and you ask it to generate some code for you and you to generate some code for you and you to generate some code for you and you don't know what you're doing. Boy, it don't know what you're doing. Boy, it don't know what you're doing. Boy, it can lead you down some really bad paths. can lead you down some really bad paths. can lead you down some really bad paths. >> Yeah. I have found it as a as a uh >> Yeah. I have found it as a as a uh >> Yeah. I have found it as a as a uh pedalogical tool. Pedagogical, you know, pedalogical tool. Pedagogical, you know, pedalogical tool. Pedagogical, you know, like as a as a Socratic method. If I like as a as a Socratic method. If I like as a as a Socratic method. If I don't understand something, I can paste don't understand something, I can paste don't understand something, I can paste it in and I can say, "Walk me through it in and I can say, "Walk me through it in and I can say, "Walk me through this and help me understand what's going this and help me understand what's going this and help me understand what's going on there." So, as a patient tutor, I on there." So, as a patient tutor, I on there." So, as a patient tutor, I have really enjoyed my my time with AI have really enjoyed my my time with AI have really enjoyed my my time with AI and it helps me understand. But I don't and it helps me understand. But I don't and it helps me understand. But I don't think everyone is wired that way to ask think everyone is wired that way to ask think everyone is wired that way to ask it those questions. I think they wanted it those questions. I think they wanted it those questions. I think they wanted to generate stuff and that's where I to generate stuff and that's where I to generate stuff and that's where I think we get into trouble. Well, I think think we get into trouble. Well, I think think we get into trouble. Well, I think I think the whole generation issue uh

  21. I think the whole generation issue uh I think the whole generation issue uh with code generation with respect to with code generation with respect to with code generation with respect to these AI programs boils down to do you these AI programs boils down to do you these AI programs boils down to do you provide it with a reasonable set of provide it with a reasonable set of provide it with a reasonable set of requirements for the code it's going to requirements for the code it's going to requirements for the code it's going to generate. generate. generate. >> And you know I I've given it one >> And you know I I've given it one >> And you know I I've given it one sentence things and I've been amazed sentence things and I've been amazed sentence things and I've been amazed that sometimes wow it actually figured that sometimes wow it actually figured that sometimes wow it actually figured this out and and and produced this code. this out and and and produced this code. this out and and and produced this code. Other times it it's produced something Other times it it's produced something Other times it it's produced something that's really bad and doesn't work. But that's really bad and doesn't work. But that's really bad and doesn't work. But if I go back and start adding, you know, if I go back and start adding, you know, if I go back and start adding, you know, fleshing out the requirements better, fleshing out the requirements better, fleshing out the requirements better, eventually it gives me what I want. Um, eventually it gives me what I want. Um, eventually it gives me what I want. Um, and you know, I find that kind of and you know, I find that kind of and you know, I find that kind of interesting. The only thing that really interesting. The only thing that really interesting. The only thing that really scares me about using AI right now is I scares me about using AI right now is I scares me about using AI right now is I have no idea where that code came from. have no idea where that code came from. have no idea where that code came from. So I have no idea when I'm using AI So I have no idea when I'm using AI So I have no idea when I'm using AI generated code if I'm walking all over generated code if I'm walking all over generated code if I'm walking all over somebody's copyright. somebody's copyright. somebody's copyright. >> Yeah, that's a great point. In fact, >> Yeah, that's a great point. In fact, >> Yeah, that's a great point. In fact, there's been a bunch of conversation there's been a bunch of conversation there's been a bunch of conversation about that uh on on the at least on the about that uh on on the at least on the about that uh on on the at least on the co-pilot side, I can't speak to chat co-pilot side, I can't speak to chat co-pilot side, I can't speak to chat GPT, there are filters where if they GPT, there are filters where if they GPT, there are filters where if they detect more than a certain number of detect more than a certain number of detect more than a certain number of lines and they say, you know, the these lines and they say, you know, the these lines and they say, you know, the these 10 lines, I didn't generate them, I 10 lines, I didn't generate them, I 10 lines, I didn't generate them, I found them over here. They'll stop and found them over here. They'll stop and found them over here. They'll stop and they'll say, no, I'm not going to give they'll say, no, I'm not going to give they'll say, no, I'm not going to give you that because I don't want to give you that because I don't want to give you that because I don't want to give you anything that's not unique. Uh, and you anything that's not unique. Uh, and you anything that's not unique. Uh, and then you can also ask it if it found it then you can also ask it if it found it then you can also ask it if it found it on GitHub, then it will go and say, on GitHub, then it will go and say, on GitHub, then it will go and say, "Here's the link to where I found it."

  22. "Here's the link to where I found it." "Here's the link to where I found it." And then you can include licensing and And then you can include licensing and And then you can include licensing and information. Uh, and I I find that to be information. Uh, and I I find that to be information. Uh, and I I find that to be useful, but I agree with you. You don't useful, but I agree with you. You don't useful, but I agree with you. You don't want to be generating code and not know want to be generating code and not know want to be generating code and not know its provenence. I don't want to know its provenence. I don't want to know its provenence. I don't want to know that I just copy pasted a whole bunch of that I just copy pasted a whole bunch of that I just copy pasted a whole bunch of the art of assembly sample code. the art of assembly sample code. the art of assembly sample code. >> Yeah. Well, that would be okay because I >> Yeah. Well, that would be okay because I >> Yeah. Well, that would be okay because I pretty much public domain all that pretty much public domain all that pretty much public domain all that stuff, open source that stuff. But stuff, open source that stuff. But stuff, open source that stuff. But you're right in general. you're right in general. you're right in general. Yeah, but on the learning stuff, I'm Yeah, but on the learning stuff, I'm Yeah, but on the learning stuff, I'm actually right now the last week or so, actually right now the last week or so, actually right now the last week or so, I've been ex exploring I've been ex exploring I've been ex exploring uh Microsoft Basic for 6502, the one uh Microsoft Basic for 6502, the one uh Microsoft Basic for 6502, the one that Bill Gates and friends uh licensed that Bill Gates and friends uh licensed that Bill Gates and friends uh licensed to Jack Tal and Tal in 1977. And when I to Jack Tal and Tal in 1977. And when I to Jack Tal and Tal in 1977. And when I get stuck, I'll go and ask Co-Pilot, get stuck, I'll go and ask Co-Pilot, get stuck, I'll go and ask Co-Pilot, "What's going on here? Walk me through "What's going on here? Walk me through "What's going on here? Walk me through this like I'm five." And I found that to this like I'm five." And I found that to this like I'm five." And I found that to be really educational. be really educational. be really educational. >> Oh, yeah. >> Oh, yeah. >> Oh, yeah. >> It's a lot of fun. >> It's a lot of fun. >> It's a lot of fun. So, what are you working on now? Are you So, what are you working on now? Are you So, what are you working on now? Are you playing in your garage or are you still playing in your garage or are you still playing in your garage or are you still doing the nuclear stuff because you have doing the nuclear stuff because you have doing the nuclear stuff because you have to? to? to? >> Well, I'm still doing a lot of work for >> Well, I'm still doing a lot of work for >> Well, I'm still doing a lot of work for a couple universities a couple universities a couple universities and and every now and then for General and and every now and then for General and and every now and then for General Atomics. So, yeah, that's keeping me Atomics. So, yeah, that's keeping me Atomics. So, yeah, that's keeping me busy. I can't retire because I'm the busy. I can't retire because I'm the busy. I can't retire because I'm the only one that knows this stuff.

  23. only one that knows this stuff. only one that knows this stuff. But, uh but that and writing books. But, uh but that and writing books. But, uh but that and writing books. >> What's the most fun? Is it the book >> What's the most fun? Is it the book >> What's the most fun? Is it the book writing or the writing or the writing or the >> Well, the book by far the writing the >> Well, the book by far the writing the >> Well, the book by far the writing the books is interesting. Doesn't make you a books is interesting. Doesn't make you a books is interesting. Doesn't make you a whole lot of money, but it but it is a whole lot of money, but it but it is a whole lot of money, but it but it is a lot of fun writing books. lot of fun writing books. lot of fun writing books. >> I have heard though as someone who's >> I have heard though as someone who's >> I have heard though as someone who's written a few books as well that no one written a few books as well that no one written a few books as well that no one has read that you can make dozens of has read that you can make dozens of has read that you can make dozens of dollars uh writing books. dollars uh writing books. dollars uh writing books. >> At least dozens. >> At least dozens. >> At least dozens. Uh you know, I would never recommend Uh you know, I would never recommend Uh you know, I would never recommend anybody try and do this for a living. anybody try and do this for a living. anybody try and do this for a living. >> Yeah. But if you look at it as one of >> Yeah. But if you look at it as one of >> Yeah. But if you look at it as one of the legs on the stool of your retirement the legs on the stool of your retirement the legs on the stool of your retirement platform, platform, platform, uh, you know, it's okay. Um, you know, uh, you know, it's okay. Um, you know, uh, you know, it's okay. Um, you know, with all the books I've got, you know, I with all the books I've got, you know, I with all the books I've got, you know, I might bring in a thousand or two extra a might bring in a thousand or two extra a might bring in a thousand or two extra a month on the on the books. And as long month on the on the books. And as long month on the on the books. And as long as I keep new books coming out and as I keep new books coming out and as I keep new books coming out and refreshing them, refreshing them, refreshing them, >> uh, I can probably maintain that amount, >> uh, I can probably maintain that amount, >> uh, I can probably maintain that amount, which is which is a real useful thing which is which is a real useful thing which is which is a real useful thing for for retirement funding. for for retirement funding. for for retirement funding. >> What do you write your books in? Is it a >> What do you write your books in? Is it a >> What do you write your books in? Is it a giant word document? Is it latte? Is it giant word document? Is it latte? Is it giant word document? Is it latte? Is it a markdown file? a markdown file? a markdown file? >> Well, I start with Adobe Frame Maker.

  24. >> Well, I start with Adobe Frame Maker. >> Well, I start with Adobe Frame Maker. >> Really? >> Really? >> Really? >> Yeah, because uh because that's what No >> Yeah, because uh because that's what No >> Yeah, because uh because that's what No originally used to use for um for their originally used to use for um for their originally used to use for um for their page layout. page layout. page layout. >> All right. >> All right. >> All right. >> And and I really enjoy Frame Maker, but >> And and I really enjoy Frame Maker, but >> And and I really enjoy Frame Maker, but then NSP gave it up when it got bought then NSP gave it up when it got bought then NSP gave it up when it got bought out by Adobe and they had some out by Adobe and they had some out by Adobe and they had some outrageous amount of subscription outrageous amount of subscription outrageous amount of subscription charges for it. charges for it. charges for it. >> Uh I still have an old version that that >> Uh I still have an old version that that >> Uh I still have an old version that that is subscription free. I'm not a big fan is subscription free. I'm not a big fan is subscription free. I'm not a big fan of subscription software at all. of subscription software at all. of subscription software at all. >> Right. >> Right. >> Right. >> And uh and so I write it in in Frame >> And uh and so I write it in in Frame >> And uh and so I write it in in Frame Maker and get it all written up and get Maker and get it all written up and get Maker and get it all written up and get the first version written and then I the first version written and then I the first version written and then I export that to a RTF document and load export that to a RTF document and load export that to a RTF document and load that into Word, which is what uh which that into Word, which is what uh which that into Word, which is what uh which is what No works with. is what No works with. is what No works with. >> And I know that you're calling me on a >> And I know that you're calling me on a >> And I know that you're calling me on a Mac. Are you doing your work on multiple Mac. Are you doing your work on multiple Mac. Are you doing your work on multiple virtual machines? Do you have lots of virtual machines? Do you have lots of virtual machines? Do you have lots of different machines that you're testing different machines that you're testing different machines that you're testing on? How do you how do you test all of on? How do you how do you test all of on? How do you how do you test all of this code? Well, I've bought I've been a this code? Well, I've bought I've been a this code? Well, I've bought I've been a big Mac person all past decade or so. big Mac person all past decade or so. big Mac person all past decade or so. Well, since they went to the x86 because Well, since they went to the x86 because Well, since they went to the x86 because I could run every operating system out I could run every operating system out I could run every operating system out of parallels on it and cut and paste of parallels on it and cut and paste of parallels on it and cut and paste between stuff and all that was that was between stuff and all that was that was between stuff and all that was that was real wonderful and that worked great up real wonderful and that worked great up real wonderful and that worked great up until Apple silicon came along. Uh when until Apple silicon came along. Uh when until Apple silicon came along. Uh when I started the uh when I started the art I started the uh when I started the art I started the uh when I started the art of arm assembly language, I bought of arm assembly language, I bought of arm assembly language, I bought myself a little Apple uh Mac Mini M1.

  25. myself a little Apple uh Mac Mini M1. myself a little Apple uh Mac Mini M1. >> Mhm. uh to I use that to write the code. >> Mhm. uh to I use that to write the code. >> Mhm. uh to I use that to write the code. Of course, I have a Raspberry Pi sitting Of course, I have a Raspberry Pi sitting Of course, I have a Raspberry Pi sitting here and a couple of other Linux boxes here and a couple of other Linux boxes here and a couple of other Linux boxes uh that are running on ARM processors uh that are running on ARM processors uh that are running on ARM processors and uh and that's what I that's and uh and that's what I that's and uh and that's what I that's basically what I use here. Uh the basically what I use here. Uh the basically what I use here. Uh the machine I'm on right now is an iMac Pro. machine I'm on right now is an iMac Pro. machine I'm on right now is an iMac Pro. I also have a m a Mac Pro uh 2019 that I I also have a m a Mac Pro uh 2019 that I I also have a m a Mac Pro uh 2019 that I recently bought used to use when this recently bought used to use when this recently bought used to use when this iMac Pro dies because I got to have a iMac Pro dies because I got to have a iMac Pro dies because I got to have a x86 machine. x86 machine. x86 machine. >> Oh, that's right. So, when you switched >> Oh, that's right. So, when you switched >> Oh, that's right. So, when you switched over to 64-bit ARM and when you watch over to 64-bit ARM and when you watch over to 64-bit ARM and when you watch the rise of ARM, you know, there's a lot the rise of ARM, you know, there's a lot the rise of ARM, you know, there's a lot of people who feel like x64 might be uh of people who feel like x64 might be uh of people who feel like x64 might be uh on the way out. Uh, do you have feelings on the way out. Uh, do you have feelings on the way out. Uh, do you have feelings about the architecture of ARM versus the about the architecture of ARM versus the about the architecture of ARM versus the X64, X86? X64, X86? X64, X86? >> Down at the very low level, the >> Down at the very low level, the >> Down at the very low level, the instruction instruction instruction uh encoding level, I absolutely hate the uh encoding level, I absolutely hate the uh encoding level, I absolutely hate the ARM. I generally hate risks in general. ARM. I generally hate risks in general. ARM. I generally hate risks in general. Uh, they're really really miserable Uh, they're really really miserable Uh, they're really really miserable instruction sets to work with. Uh, but instruction sets to work with. Uh, but instruction sets to work with. Uh, but once you get above that level, yeah, once you get above that level, yeah, once you get above that level, yeah, perfectly reasonable perfectly reasonable perfectly reasonable uh person perfectly reasonable set. the uh person perfectly reasonable set. the uh person perfectly reasonable set. the six the the um you know the big the big six the the um you know the big the big six the the um you know the big the big problem I see with risk architectures in problem I see with risk architectures in problem I see with risk architectures in general and it's embodied by the ARM is general and it's embodied by the ARM is general and it's embodied by the ARM is that you know when they went to 32-bit that you know when they went to 32-bit that you know when they went to 32-bit to from 32-bit to 64-bit they basically to from 32-bit to 64-bit they basically to from 32-bit to 64-bit they basically designed a brand new processor the designed a brand new processor the designed a brand new processor the instruction sets weren't compatible you instruction sets weren't compatible you instruction sets weren't compatible you lost a lot of a lot of a lot of lost a lot of a lot of a lot of lost a lot of a lot of a lot of instructions a lot of addressing mode

  26. instructions a lot of addressing mode instructions a lot of addressing mode stuff like that things just changed stuff like that things just changed stuff like that things just changed radically it was a completely new radically it was a completely new radically it was a completely new instruction set beautiful thing about instruction set beautiful thing about instruction set beautiful thing about the x8664 the x8664 the x8664 is is is you know, from the 386 on, you could you know, from the 386 on, you could you know, from the 386 on, you could write the code and and expect it to run. write the code and and expect it to run. write the code and and expect it to run. Not true on the ARM. So, Not true on the ARM. So, Not true on the ARM. So, >> and in the in the ARM book, you use uh >> and in the in the ARM book, you use uh >> and in the in the ARM book, you use uh the GNU assembler uh called gas, right? the GNU assembler uh called gas, right? the GNU assembler uh called gas, right? Or clang Or clang Or clang >> uh and do you have any thoughts about >> uh and do you have any thoughts about >> uh and do you have any thoughts about that one versus the Microsoft's uh ARM that one versus the Microsoft's uh ARM that one versus the Microsoft's uh ARM assembler from a consistency assembler from a consistency assembler from a consistency perspective? people who write assembly perspective? people who write assembly perspective? people who write assembly language programs. MASM is far better. language programs. MASM is far better. language programs. MASM is far better. The macro facilities are great. Uh you The macro facilities are great. Uh you The macro facilities are great. Uh you know the l the assembly language itself know the l the assembly language itself know the l the assembly language itself is is so much better. Uh you know GAS is is so much better. Uh you know GAS is is so much better. Uh you know GAS really was written to produce object really was written to produce object really was written to produce object code from the assembly language output code from the assembly language output code from the assembly language output of GCC. It wasn't really written for of GCC. It wasn't really written for of GCC. It wasn't really written for people to handw write assembly language people to handw write assembly language people to handw write assembly language programs. Uh I mean it's okay. It's like programs. Uh I mean it's okay. It's like programs. Uh I mean it's okay. It's like your typical 1960s assembler. Uh but your typical 1960s assembler. Uh but your typical 1960s assembler. Uh but having moved on from there to MASM and having moved on from there to MASM and having moved on from there to MASM and then from MASM to HLA gas just looks then from MASM to HLA gas just looks then from MASM to HLA gas just looks really really behind the times for me.

  27. really really behind the times for me. really really behind the times for me. >> Behind >> Behind >> Behind >> but on the other hand it's it's your >> but on the other hand it's it's your >> but on the other hand it's it's your only choice on the ARM with the only choice on the ARM with the only choice on the ARM with the exception of of Windows. Now Windows has exception of of Windows. Now Windows has exception of of Windows. Now Windows has Microsoft has their own ARM assembler Microsoft has their own ARM assembler Microsoft has their own ARM assembler >> uh which I have not yet used. Uh I keep >> uh which I have not yet used. Uh I keep >> uh which I have not yet used. Uh I keep thinking ah they do a set of files for thinking ah they do a set of files for thinking ah they do a set of files for for the Windows machines but like I said for the Windows machines but like I said for the Windows machines but like I said I haven't used their assembler so I I haven't used their assembler so I I haven't used their assembler so I don't know if it's as good as Mazm. don't know if it's as good as Mazm. don't know if it's as good as Mazm. >> Yeah. Yeah. Do you have a Windows ARM >> Yeah. Yeah. Do you have a Windows ARM >> Yeah. Yeah. Do you have a Windows ARM machine? machine? machine? >> Yeah sure. In fact the well the Mac M1 >> Yeah sure. In fact the well the Mac M1 >> Yeah sure. In fact the well the Mac M1 runs uh runs uh runs uh >> Oh I suppose you're right. Absolutely >> Oh I suppose you're right. Absolutely >> Oh I suppose you're right. Absolutely right. You just parallel. Yeah. right. You just parallel. Yeah. right. You just parallel. Yeah. >> My the thing I have have found I'm fully >> My the thing I have have found I'm fully >> My the thing I have have found I'm fully switched over now. Other than this switched over now. Other than this switched over now. Other than this desktop all my machines are ARM now. The desktop all my machines are ARM now. The desktop all my machines are ARM now. The ARM laptops are just cooler and quieter ARM laptops are just cooler and quieter ARM laptops are just cooler and quieter and they turn on when you open them and and they turn on when you open them and and they turn on when you open them and they close up and you they just they do they close up and you they just they do they close up and you they just they do their thing. I never I've never had a their thing. I never I've never had a their thing. I never I've never had a hot bag and I've never had a fan turn on hot bag and I've never had a fan turn on hot bag and I've never had a fan turn on and I've been enjoying that very much. and I've been enjoying that very much. and I've been enjoying that very much. I'm wondering if if if Intel is cooked. I'm wondering if if if Intel is cooked. I'm wondering if if if Intel is cooked. Well, let me tell you. I I just Well, let me tell you. I I just Well, let me tell you. I I just mentioned that I had recently bought mentioned that I had recently bought mentioned that I had recently bought this used Mac Pro 2019, this used Mac Pro 2019, this used Mac Pro 2019, and when I was setting it up, getting and when I was setting it up, getting and when I was setting it up, getting all my software moved over and stuff all my software moved over and stuff all my software moved over and stuff like that, my hand reached I reached like that, my hand reached I reached like that, my hand reached I reached around behind the thing with my hand and around behind the thing with my hand and around behind the thing with my hand and and nearly got bur on the thing, I said, and nearly got bur on the thing, I said, and nearly got bur on the thing, I said, "Whoa, I don't want to leave this thing "Whoa, I don't want to leave this thing "Whoa, I don't want to leave this thing running all the time because it'll it'll running all the time because it'll it'll running all the time because it'll it'll really burn up and worse than that, really burn up and worse than that, really burn up and worse than that, it'll heat up my office."

  28. it'll heat up my office." it'll heat up my office." I uh that actually it's almost 100° here I uh that actually it's almost 100° here I uh that actually it's almost 100° here Fahrenheit in Portland and uh it's Fahrenheit in Portland and uh it's Fahrenheit in Portland and uh it's probably even hotter in my office probably even hotter in my office probably even hotter in my office because of this giant 700 watt power because of this giant 700 watt power because of this giant 700 watt power supply that powers this desktop that I'm supply that powers this desktop that I'm supply that powers this desktop that I'm on. on. on. Last thing I want to ask you as we get Last thing I want to ask you as we get Last thing I want to ask you as we get towards the end here is a quote from the towards the end here is a quote from the towards the end here is a quote from the write great code series that I just write great code series that I just write great code series that I just think is really important for people to think is really important for people to think is really important for people to remember and understand. You say a huge remember and understand. You say a huge remember and understand. You say a huge problem today is that many programmers problem today is that many programmers problem today is that many programmers have grown up with high performance have grown up with high performance have grown up with high performance machines and they never learn how to machines and they never learn how to machines and they never learn how to write decent code in the first place. write decent code in the first place. write decent code in the first place. But now advances in computer But now advances in computer But now advances in computer architecture are no longer doubling architecture are no longer doubling architecture are no longer doubling performance every couple of years. So performance every couple of years. So performance every couple of years. So you're not going to be able to get away you're not going to be able to get away you're not going to be able to get away with writing slow code and expecting with writing slow code and expecting with writing slow code and expecting advances to rescue you. I love that. advances to rescue you. I love that. advances to rescue you. I love that. That is a very important thing for That is a very important thing for That is a very important thing for people to remember people to remember people to remember >> and that will always be true. And >> and that will always be true. And >> and that will always be true. And whether the solution is you break down whether the solution is you break down whether the solution is you break down and and b and write your singlethreaded and and b and write your singlethreaded and and b and write your singlethreaded code in assembly language to speed it up code in assembly language to speed it up code in assembly language to speed it up or you somehow make it multi-threaded so or you somehow make it multi-threaded so or you somehow make it multi-threaded so you can spread that work out across you can spread that work out across you can spread that work out across multiple processors. That's the bottom multiple processors. That's the bottom multiple processors. That's the bottom line is that if you don't know how to line is that if you don't know how to line is that if you don't know how to write fast code, you're going to suffer write fast code, you're going to suffer write fast code, you're going to suffer because the the only way they can speed because the the only way they can speed because the the only way they can speed up machines this day this day and age is up machines this day this day and age is up machines this day this day and age is by adding more cores. M by adding more cores. M by adding more cores. M >> uh and quite frankly with most desktop >> uh and quite frankly with most desktop >> uh and quite frankly with most desktop machines you can buy this day they got 8 machines you can buy this day they got 8 machines you can buy this day they got 8 to 16 cores that's beyond the the point to 16 cores that's beyond the the point to 16 cores that's beyond the the point of of of of of of of of of diminishing returns. Uh it you know yeah

  29. diminishing returns. Uh it you know yeah diminishing returns. Uh it you know yeah you might be certain applications can be you might be certain applications can be you might be certain applications can be written that use 16 cores really well written that use 16 cores really well written that use 16 cores really well such as video encoding and stuff like such as video encoding and stuff like such as video encoding and stuff like that but your average application no that but your average application no that but your average application no three or four cores is probably probably three or four cores is probably probably three or four cores is probably probably where you're going to hit the limit. So, where you're going to hit the limit. So, where you're going to hit the limit. So, at that point, you got to write better at that point, you got to write better at that point, you got to write better code, not just spread it out over code, not just spread it out over code, not just spread it out over multiple processors. multiple processors. multiple processors. >> You got to write better code. Absolutely >> You got to write better code. Absolutely >> You got to write better code. Absolutely fantastic. Thank you so much, uh, fantastic. Thank you so much, uh, fantastic. Thank you so much, uh, Randall Hyde, Randy Hyde for chatting Randall Hyde, Randy Hyde for chatting Randall Hyde, Randy Hyde for chatting with me today. I really appreciate you with me today. I really appreciate you with me today. I really appreciate you spending uh, some time with me. spending uh, some time with me. spending uh, some time with me. >> No problem. It's been it's been cool >> No problem. It's been it's been cool >> No problem. It's been it's been cool talking with you, Scott. talking with you, Scott. talking with you, Scott. >> You can check out everything that >> You can check out everything that >> You can check out everything that Randall does at randlehyde.com. That's Randall does at randlehyde.com. That's Randall does at randlehyde.com. That's hyd. And I want to say a special shout hyd. And I want to say a special shout hyd. And I want to say a special shout out for the write great code series. out for the write great code series. out for the write great code series. Fantastic series of books. Uh Fantastic series of books. Uh Fantastic series of books. Uh particularly volume two which I'm a big particularly volume two which I'm a big particularly volume two which I'm a big fan of. Thinking low-level writing fan of. Thinking low-level writing fan of. Thinking low-level writing highlevel. Uh just an absolute joy to highlevel. Uh just an absolute joy to highlevel. Uh just an absolute joy to chat with you today. You are a wealth of chat with you today. You are a wealth of chat with you today. You are a wealth of information and history and we all information and history and we all information and history and we all appreciate you very much. This has been appreciate you very much. This has been appreciate you very much. This has been another episode of Hansel Minutes and another episode of Hansel Minutes and another episode of Hansel Minutes and we'll see you again next week.

Summary

This podcast episode features an interview with Randall Hyde, renowned for his expertise in assembly language programming. The discussion touches on his personal academic journey, including his decision not to complete a PhD in distributed shared memory, and his continued dedication to the field of assembly language. The practical takeaway is an appreciation for deep technical knowledge and the paths individuals take to acquire and share it, as exemplified by Hyde's contributions to ARM and 64-bit assembly.

View original episode ↗