Thank you. There's a lot more of you than there was when I went in there. Thank you for coming out. I appreciate it. And I appreciate for the invite and of the opportunity to speak to you and hopefully educate you a little bit on some of the few things that have happened and the fact that there's an intersection between all things and Christ. A little bit about myself. Lee made me put this slide in here. I've been a citizen of the kingdom of Christ for 54 years. And I grew up in an entrepreneurial family. I've done some stuff in networking that you've used and don't know you're using it, but you do. So you've actually used my stuff before. For those business school people here, I've done the venture capital route. and really kind of been involved peripherally with it for two or three times. And the last time, in a serious way, we raised about $100 million back in the early 20-teens. So I'm here with an interesting prospect. I've taught Sunday school many times. And I've taught computer science courses and classes and did sales presentation on technical things. But this is the very first time I've ever been able to take those two things and put them together in one talk. And I really appreciate the invite. to hear with the computer science department, the hospitality I've been given by Bob Jones and also by Sermon Audio. I really appreciate this. Another little thing about us is we have a different business philosophy. The current invocation of the current incarnation, I should say, of our company has a different business philosophy than many companies you see today. Our job isn't to make a lot of money for the investors. We have some investors, but they're pretty patient people. Really, the purpose of any company is to find somebody to help and to profitably employ people to help them. And you people are going to do business in the future. The talk is Three Godly Men That Changed Computer History. And the first thing that came to my mind is what natural science tells us about God and how he designs things. And our designs are always so much inferior to his. And that includes software and hardware, computer hardware. Johannes Kepler that figured out, hey, I don't think the sun revolves around us, did calculations and he said he could see God's thoughts and think God's thoughts after him. Newton very much related to this as well. And in studying natural science, what you do is you see that there are some attributes to science that really reflect the creator that created them. And that's this concept of simplicity, of getting something done, and the clarity of how that happens, and also the generality. I mean, how general is the genetics code of every living Be every living animal and plant, right? So these are all things you can see in nature and we can see them in software So the story I'm going to tell you tonight has to do with a group of three people And these three people are unusually identified as believers. I've met a lot of believers in computers. And I met an awful lot of unbelievers in computers. It's sort of like any other profession or business you would go through and see. But I'm going to follow one story, one thread, that really demonstrates this very much. And the story is mainly through the story of this man through this period of time. This is Frederick Phillips Brooks, Jr., son of a physician. He grew up in Greenville, North Carolina, and grew up in the rural South. He was a very bright young man. He was educated by almost his father. They switched schools a couple of times, but he really learned more from his father than anybody else. And he got an undergraduate degree at Duke, which It's pretty hard to get into. And also went to Harvard. When he was a child, before he even went to college, he read a Time magazine that talked about one of the machines at Harvard that was built by a man named Howard Eakins. Pioneer. This was not a computer per se. This would have been in the 40s. It was more of a calculating device that would automatically run a whole series of numbers. Imagine writing a very simple program in a little loop to calculate and add to accumulate and print out. That's kind of what this thing did mechanically. It was electromechanical. It was done with relays. And it just captured the imagination of young Fred Brooks. And that's really what God does with us. He captures our imagination. Things talk to us. And the more prayerful you are, and the more you connect devotionally to the cross, the more you can hear these things. And the less you hear the things that are not drawing you to the right thing. Anyway, you can see this very early in Fred's life. Although at this point, he's not a believer. He is merely a good Methodist, as he said. He got into Harvard so he could work with Eakins. So he went to Harvard to get his PhD, and he did a thesis on should we make a piece of hardware to make payroll, or should we write software to make payroll? And his advisor was the great Howard Eakins. So he actually got his PhD from Eakins himself. Got his PhD in pretty record time, partly because every day Eakins would show up at his office and want to see lines of prose. So Brooks had to write something because he knew tomorrow Eakins would want to see what he had written. So he got out in pretty good time. Now, this time would have been 1956. And in 56, IBM was the leader in computing because they had a head start. They started with punch cards. in 1914. So all of most of information was being done in business. We're on cards about the size of the antique dollar bill from the 20s, which we don't have anymore. But it would barely have real dollar bills. And you punch holes in it, and you're able to do all your calculations and things with these cards. A guy shows up at Harvard, because there was a lot of connections between Harvard and IBM, and a guy named Steve Dunwell. And Dunwell said, hey, why don't you guys come up to Poughkeepsie, New York, and help us build the world's fastest computer? While also at Harvard, he met his wife, Nancy. And so as he says, he graduated on Monday. He got married on Tuesday. After a two-week vacation, he shows up in Poughkeepsie to help design the IBM 7030, also known as Stretch computer. So I probably should give you a little bit of the idea of what computers were like at the time, and this would have been around 56. They weren't quite the small pocket things we have today. Usually somebody says they were the size of a room and stuff like that. Well, I got more interesting information than just how big they were. I have more information. They were very hot, too. The 701 was IBM's first computer, and they were about three years after the existence of the very first machine, which was in Cambridge. They had 36-bit words of memory. And we talk now about 8-bit bytes. And we have 3 bytes make a 32-bit word. And you can have 8 bytes to make a 64-bit word. Well, all the machines were only word addressed. And they were all 36 bits. And they were 36 bits because you could put about a 10-digit decimal number in a 36-bit binary number. There were no bytes. You couldn't address individual characters. There almost really wasn't a concept of a character. It was kind of an afterthought, because these were machines to do calculations. They had one large accumulator in which you did the calculations in. You loaded things in the accumulator. You added things and multiplied the accumulator. And then you stored things. And you programmed. in octal digits, zero through seven. And you did it in absolute. You started in location zero, and then you put all the digits for every word in the machine. And that's how you actually programmed it. You kept a little board on the side to keep track of where in memory were your variables. And there were no other registers. So if you wanted to loop through an array, like for i equals 0, while i is less than the size of array i plus plus, you did it by modifying the instruction that was loading it. So you'd add one to that instruction, and now it would load from the next memory location. Try to debug that. They released this machine in 1952. This is before Brooks showed up at IBM. And here's a picture of it. And you notice this pretty good bit of plumbing overhead to try to get the heat out of it. And that's because, and I'll show you in a minute, that actually uses vacuum tubes, or valves as the British say. that were very hot and very high voltage in their vacuum tubes. They also weren't terribly reliable. At the same time, they came up with a different machine with a different instruction set that worked totally different to do business applications. IBM sold punch card equipment. So the first thing they want to do is make computers that interface with punch cards. So they had a whole different set of machines for that. And these different types of machines kind of multiplied over time. Here's a picture of the 702 with somebody using it. You had a lamp, not an LED. LEDs hadn't been invented yet. Those were actually little 12-volt light bulbs, and you had one pretty much for every switch, flip-flop, switch in the machine. And the reason they were very hot is because the modules they were made out of were made out of vacuum tubes like this. This is one of the many logic modules you'd find in these machines. I mean, these things barely worked. The mean time between failure of one of these machines was about 20 minutes. They followed it up very quickly. In 1955, they had a version of the 701 that actually had magnetic core memory. And that was much more reliable memory. And the machine actually was engineered to be a little more reliable. They're figuring out tricks for doing that. They also added some additional registers. And a register is a special high-speed memory in the machine to let you do things like address memory locations and stuff. to be very quickly, in addition to having the accumulators. So the 704 was a pretty famous machine, because if you've ever heard of the programming language Fortran, it was invented on this type of machine. It was written for it, and Fortran was designed in order to run programs written in Fortran as fast as they would be if they were written in octal by hand. A friend of mine told me once that he got special credit in school if he could get his entire assignment on one card. But some of these machines Dr. Brooks had been exposed to as an intern. He had actually worked at North American Aviation in California working on the 701. So he had already learned the programming. And he also got an internship with IBM itself and actually learned some of the stuff there. But what he came for is to work on this machine. In 1955, the government came to IBM and said, we're trying to do all this nuclear research. We're also cracking codes and trying to predict weather. Would you design us a computer that's a lot faster than anything you've got? IBM said, well, we want to make computers out of transistors. So maybe we'll do that. We'll help you out. But it's going to be expensive. And they quoted like $13 million in 1955, which comes out to be $70 million. today. And the result was the IBM 7030 stretch. Some interesting things about it. They pioneered their use of transistors with this machine instead of vacuum tubes. Huge improvement in reduction of size and also in reliability. And it was also, most of the chief engineer was a guy named Warner Buchholz. And Burkholz came up with this idea of having each character be addressed individually, and this idea of one being where it could be 1-bit to 8-bits. So you could have a 6-bit or a 4-bit or 7-bit. And he's the one who coined the name Byte. So the term B-Y-T-E for one of these things was coined by Werner Burkholz. It was also the first machine to use cache, high-speed local memory that would speed up the processes because it realized that there's a locality of reference in programs. If you hit an address or an area, you're probably going to be using that area a lot. And then as the program proceeds, it touches other areas. And by having a cache, you can keep those in a faster place than main memory. It also used pipelining invented by another IBM, very sharp young IBM guy named John Cock, who later went on to invent reduced instruction set computing. It was a massive machine. It was 15 feet long, 5 feet high, and 5 feet wide. And that was the generic version. And here's a picture of it right here. It was made out of a number of what called rolagons. And these are rows of handles. And this is a rolagon pulled out. And you could see the wiring in the back there. They sold 10 of these for an average of $10 million apiece. Only the NSA, which ran one up into the 70s, they had a little extra thing added to it called the Harvest. And the Harvest added another 20 feet You just think of it as a plug-in card. Well, they designed and built these with something called, with these new logic modules with transistors. And initially they had 44 types of these, and eventually they had more like 240 different types of these cards. Each of the round cans is a transistor, and connectors on the edge allowed you to plug them into a backplane. So you take a big backplane with multiple rows of these, where each one of these cards could do maybe a couple of flip-flops or a few and operations. You plug them in here and wire them all together and you made your whole computer out of them. So you'd have racks of these inside each of those rolagons. While working on this machine, Brooke, still a good Methodist, as he says, meant he attended Methodist, and in fact, that's how he, in college, that's how he met his wife Nancy, is she was also a good Methodist. But he says he wasn't a believer, he was, just went to, because the family always did. He meets this man. This is Gerrit Blauw, also called Jerry, and Jerry was from Holland, the Netherlands, and he had got his PhD under Aiken at Harvard as well, but he was on a Fulbright scholarship, so he had to go back home. So he had to spend some time back home before he could come back to the States. He came back to the States and started working on the 70-30 along with Fred Brooks. Brooks was very impressed with how sharp and creative he was. He was very ingenious in how he saw things and did things, and Brooks was very impressed with him. And one weekend, he asked him, what did you guys do this weekend? And Jerry answered, well, we went up to New York, upstate New Arkansas, Shaker Village. And Fred Brooks said, oh, they were fundamentalists, weren't they? And Jerry says, I'm a fundamentalist. Later, Brooks said he was an evangelical, but he wouldn't necessarily call him a fundamentalist. But it jarred Brooks. He kind of like, this guy is brilliant. He's really, really smart. He's creative. There's a disconnect in his mind on that, which is bias that Brooks had at the time. But it started him doing a lot of thinking. And he was invited to a Bible study, and they studied it. And over time, Fred Brooks' wife, Nancy, became a believer. But Fred was stuck. He was stuck on this idea, are the miracles true? I mean, all the miracles in the New Testament, are they true? How could they be true? And then after thinking about it, he said, well, actually, If the resurrection is true, the rest of the miracles are merely finger exercises. So the real question is, is the resurrection true? And as he pondered it, he studied it carefully as he's apt to do. Very smart man. Very serious intent to do this. Open, really open. And it was basically the intellectual part of it was the changed lives of the apostles who went from cowering in a room, hiding from everybody, to actually going out and getting themselves killed over time for this. It just really was the strongest thing. But he still resisted it until one day he woke up and through the gift of the Holy Spirit, He was convinced of the reality of the resurrection. And once you're really convinced of the reality of the resurrection, everything changes. And everything changed from Brooks at that point. But his work didn't change. God really blessed him there. By this time, he had finished the work he'd done on the 7030, and he was back in research and got invited back to the Poughkeepsie to do development because IBM computers were starting to lose in the marketplace. Competitors were catching up. So he went back and and got with his buddy Jerry Blau again who had been working on a like a follow-on to the business machines and they came up with a really elaborate series of models and there was a small one and a really expensive one and some software and they put it all together and they made this plan and they invited the management of from White Plains, New York, which is where the headquarters of IBM's business guys were, up to the research guys at Poughkeepsie, and presented it to them. And everybody loved it. And Fred's thinking, this is great. Ah, this is great. He's presenting it to the room full of people, and everybody likes it. Except he did notice this one guy in the back. And the one guy in the back was T. Vincent Lierson. And Vin Lierson was the number two guy at IBM, and he reported directly to the IBM president, Tom Watson Jr. And Vin was aware of a big problem at IBM. The problem was they had six, six different lines of computers. None of them were the same, what we call architecture today. They didn't have that word then. If you programmed one to do payroll, you had to write a completely different program on the second one. If you wrote any compiler, because Fortran was big, they had to have six completely different Fortran compilers. Cobol is getting to be a big thing because the military is complaining, hey, I've got all these different inventory systems and they have to run on completely different software. And internally, IBM's got to provide this. Before, you bought a computer, it had a book, and you're on your own. Now, customers are expecting to actually have software. So Learson was aware that this is just going to add a seventh machine, incompatible, and it's a mess, and we've got to clean it up. So he calls this guy. This is Bob O. Evans. Everybody called him Bo. And he said, listen, there's these guys in Poughkeepsie. They want to build a system. Go look at it. If it's right, do it. If it's not right, do what is right. So Bo went from Endicott, which is up the river a little bit in New York, which made the smaller machines, to Poughkeepsie, which was responsible for the larger scientific machines, and looked at it for a couple of weeks and said, nope, this is the wrong thing to do, and we've got to kill it. And that started about a six-month battle between, do we build the 8000 series or do we do something else? And the something else kind of got called the new product line, NPL, new product line. So this is the first of three great battles in this bit of history. And our hero here is Fred Brooks and Gerald Blau and a guy named Gene Amdahl, which I'll talk about a little bit later. They're all kind of wanting to build this machine. I mean, anybody's like that. Once you start seeing a machine and an idea, you kind of want to build it, right? You don't want to just talk about it. And somebody says, no, it's not the right thing. You kind of resist that. But it wasn't personal attacks. A fight in these days were about ideas, was about the actual content. There had to be reasoning and logic. And you could lose if your idea just wasn't any good by some criteria. Not that it wasn't any good because you didn't like those people, and they're bad people, and you're good people, and all that stuff. It wasn't personal at all, as you'll see in a second. So the battle went on for a while. And the battle was actually evolved that what Bo wanted to do is implement the new product line, and he kind of had an idea what that was. He wanted to take all of those six product lines and can't kill them, all of them. and design one architecture, one set of instructions, and six different models to make the six different price points that people were buying the other equipment for. He knew who the customers were, and he wanted to get them an all new machine that all run the same code. Because if the little guy got to be a big guy, he had to buy a bigger computer, and he wouldn't have to change any of his code. He could run the same code. You could think of, you know, you may have grown up and there was a computer in the household and it may have been running a Pentium 3, and now you've got a Xeon, but it runs the same software, right? Every computer, every Intel computer you've ever used can boot DOS, right, from the 80s. It's a really irritating thing if you work with those machines like I do, but that's the way it is. Well, this was a totally new concept of having all of them. It also meant that it had to have all new peripherals, had to write all new compilers, had to write a completely new operating system. And it was a real bet-the-company proposition. And the battle went on, and they took it to management down in White Plains. And at first, it went Brooks way. Yeah, we'll just add this because we need relief now. And then Bo didn't give up and he persisted and he went and he convinced them, yeah, no, we need to do this. And that's what stuck. So the marketing company, the marketing part of the company, I should say, decided that this all-encompassing machine line should be called 360 after the degrees of the compass. So that's why it's called a system 360. When I was getting started, when I was sitting in the chairs like you're sitting now, we had an IBM 370, which doesn't make any sense. What, do you go all the way around in 10 more degrees? So our hero, Dr. Brooks, thinks, well, that's it for me. I'll go back to research. He wasn't sure whether that meant back to IBM research or he was going to be looking for a job after such a bitter battle. And instead, but at the end, he went to a meeting at Saratoga Lake. It's an upstate New York place. There's a famous old hotel there. He went to the hotel, and basically there's 25 managers figuring out where people are going to go, because those guys work for him, and those guys work for him. And they were organizing. About Thursday in this week, Bo corners Fred and says, hey, Would you run the architecture and build the hardware for all this? It's six different machines made in three different countries, at different locations, and they all have to run the same code. And can you be responsible for coming up with what that architecture looks like, and how all this is going to happen, and manage the whole thing? And I guess Fred Brooks, to this day, the last breath, felt, that you could have knocked him over with a feather. It's just like, what a man. Man, I just really was battling him, battling him, and again, it wasn't personal. And then he comes to me and says, Fred, you did such a good job fighting me. I can't think of anybody better to do this. because you really know about it because you've been saying the bad things about it. You know all the wrong things. And I suspect you really know that it's the right thing to do too. And Brooks asked some friends, hey, is he for real? And they said, they told him they'd never known anybody that regretted working for Bo Evans. So he took the job. But he's still not too sure. when they got done doing the first budgets. So one of the things Bo did is say, we're going to do some warm-overs. There's a big scientific computer called a 7090. We're going to make another version called a 7094. And we need some people to do that. Well, the guy in charge of that comes to a budget meeting and says, I need $11 million. And Bo says, well, you got seven. OK, I'll do it with seven. And Brooks comes in and says, well, I need nine. And Bo says, are you sure you don't need any more? And he gives him his whole nine, question and answer. That's when Brooks knew that he was for real. This was a real deal. Now, some of you are computer science majors, and some of you computer science majors might not know this, but I just want to talk a little bit about what is an architecture of a computer. When we write software, you're writing a high-level language that's either interpreted like Python or PHP or compiled like C++ and C. And eventually, it's got to be executed by the computer. And a computer is nothing more. It is nothing more than a fast calculator with an automation thing sitting on the side of it. And the automation part on the side pulls in a number that says what to do into a control logic and sequences through operations in the calculator to do what it said. Fetch, it decodes the instruction, and it executes. Fetch, decode, execute, fetch. That's all it is. It's all it was in 1949. It's all it is in 2023. Fetch, decode, and execute. That's what you see from above. And these guys came up with these terminology. It's called the architecture. The architecture is what it looks like from the outside. You go to an architect to design your house, you got floor plan and all that, but you want to see the elevation. What does my house look like? Well, that was what the architecture was. The computer's got to be built out of real parts, right? So at the very bottom, there has to be a bunch of transistors and things, and that's called a realization. The guys today call it the gate level because we all use chips. When these guys are doing it, They used an individual can with a transistor on it, or as you'll see here, a little square piece with some transistors soldered to a block, a ceramic block. They were easing into integrated circuits. Integrated circuits weren't quite far enough along to build these machines yet, but they made a thing that they could use them when they were. So that's realization. And in the middle is something called implementation. And that's where, well, I'm going to have these 32 bits. And they're going to be a register. And I've got 16 registers. And I've got an ALU that does these operations and buses that move things around. And you turn a bus on and you turn it off. And you think about the design at that level. And you don't think about it in the realization level. There were two models of machines that had the same implementation. Right? But different realization. Right? But their implementation was the same. All of them had the same architecture. OK? So that's the three levels. Today, you would call the middle thing register transfer level, or RTL. So if you think FPGA, think you write Verilog, and that goes in, that's the implementation. And the software from the vendor does the realization, because he's going to place the logic onto the actual FPGA. OK? End of geekdom there. Well, there's plenty of geekdom going, but that's that I'm popping the stack of geekness right now. So they had a great team to come up with this because they're betting the company on this, right? So they got to come up with a great architecture. So of course Brooks is the lead and he is involved in the architecture. He actually works on it, and Jerry's there, Gene Amdahl's there. Now the three godly men are obviously Brooks and Blau and Gene. I saw Brooks comment that Gene was a very godly, devout man. OK, and you'll see he's pretty key in what happens with this architecture. John Cock, I mentioned earlier, he did a lot of very interesting things, a lot of interesting things. He was very brilliant. And he also realized that, hey, I can make a computer go faster if I make it do less. And he came up the idea of having reduced instruction set. So he's the one who actually invented RISC, which got to be a big deal and still, you know, ARM is RISC, and it's RISC because of John Koch. So they worked on some architectural ideas of something called a stack machine. And a stack machine is where your registers form a stack, and you push things on the register. Like if you want to add, you push two values on the register, and then you do an instruction that says add. takes the top two, runs them through the alu, and pushes the answer back. So you pop two, put the answer, push it back. So it's like a stack. And it worked out pretty well for the medium-sized machines and the bigger machines. But it really didn't work for the little machines, because there weren't enough registers. So you're always getting, you're fetching and storing into memory. And that was just too slow. It wasn't going to work. So Brooks came up with the idea of having a competition. So he said, everybody, go. You can do groups or individuals. Go and come up with an architecture. And then we'll come and we'll look at them. And everybody turned in their architecture. And they were all OK. And Brooks had one, and he had to put it on the desk in case nobody's, you know. But two of them really stood out. And the two of them were, unsurprisingly, from Blau and Amdahl. They were almost the same. They had similar approach to it. So one of the problems is, in computing still, the number of bits that you have is a very precious thing. You got these oceans of RAM out there, DDR sticks with plenty of stuff. But in the place where you're doing work, bits are expensive. They take up a lot of space, and space is money, right? So they were very precious. Well, on inexpensive machines, you had to get by with fewer bits. But you needed an opcode set of instructions that would actually work well, that you could implement, and then realize a computer that would run reasonably well for the price. But then on the big machine, that same instruction set had to really, really burn up the road. It had to really go fast. So this is a pretty challenging thing. Well, Gene and Jerry's design differed in only really one aspect. And this became a big fight, second big fight of our story. Gene's was a 6-bit traditional. machine with a 36-bit word, and Jerry's was 8 bits. I mean, this seems silly to us today, right? But at the time, 8 bits was like, that's two more bits. That's a lot. What are you going to do with it? Well, you're going to do lowercase, because you're going to do word processing. And when they were doing this, they actually had somebody that was doing word processing on the big mainframes, and it wasn't very easy. But every morning, they had the what they had said, the transcript of what they had done the day before, already there on their table ready to work. And something about that was just really, it just felt odd, it was different, but it felt right to Brooks. Well, what do you know when you have things and they feel healthy right? But they're odd, and they're maybe not the normal thing. And where do you think that comes from? Think about that. Well, Brooks decides to go the 8-bit route. And Gene doesn't like that. And Gene complains to Bo. Bo looks at it, and Bo backs Brooks. And then Gene just goes back to work. So just when he lost the fight, no big deal. OK, we'll do it that way. And the three of them really worked very hard on this design, which really gives us our modern architecture today. Every computer since then has had 8-bit bytes. Every computer has 32-bit words or multiples. Many computers of the day would have 16. Before this, many computers would have like 18. And now you have 36 bits, although sometimes the processors you use today are 32 bits. A lot of your phones are running 32 bits. A lot of them these days also are 64. And these are the guys that actually did this. So these are the ways they changed the world. The other thing is, and I worked on some of these machines that were word addressable. So if you go to address 0, you got 36 bits or 18 bits. And if you went to word 1, you got the next of those. Well, what these guys did is, for the first time, they said, OK, here's what's going to be. You can go get a word. It's going to be 32. It's going to be four of these bytes. But if you want to go one of those bytes, you can go do that too. So this idea of byte addressability. Byte addressability was very powerful for commercial application. And the word address was very powerful for numerical calculation. Floating point had gotten to be dominant by this point. So the floating point used two words of 64 bits. And that gave all the resolution they need. The other thing they did we have today is have 16 registers. Some of the RISC processors have 32, but most of them have 16. Your Intel in 64-bit mode has 16 registers. Your ARM that you're carrying in your pocket has 16 general purpose registers. These are also general purpose registers. They weren't like the registers that we had in the older machines where If it was a data register that you put the number in, it was 36-bit. And if you're addressing memory, it was 18-bits. So you had all these different ones. The result of this, and if you're serious in computer science, at some point when you're off on a holiday weekend or something, you ought to read this document. You can find it online at bitsavers.org, which is scanned. It's an enormous number. I like to think bitsavers.org is the sermon audio of technical literature. They have tons and tons of these. The 360 principles of operation is the document, this is the document, that all those six projects used to define what their computer was supposed to do. So it had to be clear, it had to be unambiguous, because the customer bought a Model 30 and then later got a Model 65, the code had to work. And the only reason it could do that is that the implementers of that used this document very closely. And you can still get it and read it, and it was really great. And Dr. Blau is the actual one who wrote this. This machine was made out of these new modules, like I said. Each square originally had a little ceramic substrate with two or three or four transistors mounted upside down and traces on it, and they had resistance. And eventually those got turned into more sophisticated silicon as integrated circuits got better and better. This is what the room would have looked like. On the left is the face panel of the machine. It's still with lamps showing you the state of the machine. I once heard a guy in the computer center at UGA, he was a system operator. He wasn't a programmer. I was in there running a wire or something. I'm not supposed to be in there, but I was in there. And he walked by with a tour from a local school, and he said, yep, this is the mainframe. Those are the lights. Some of them blink. Some of them don't. I haven't been able to improve on that after all these years. You can see disk drive down here. I'm out of camera, but this is the disk drive. There's a clear lid on it. This is a disk pack, and you actually change the platters from your disk. You didn't, like today, where it's all sealed up. The things in the back are tape, because tape was a very affordable way to store data. So you could think of the, I used to say you could think of the tape of the floppy of the day, but you guys don't know what floppies are. And that was the console that helped run the whole computer. There's a card reader in the center there with a little thing. And most people interacted with these machines with a card reader. So they're about to announce this. They've got all them designed, all the tests. They're not going to manufacture it. It'll be another year before they actually ship all these machines. But they're ready to announce it in April. In January, they have a last minute. And we have our last battle of our talk. The 1401 was a really small mainframe. It was made out of the previous generation parts, and it was run by a guy named John Hanstra. And John Hanstra had been secretly doing another model computer, another version of his. And he went to management and said, you don't need to do all those model 30s and 40s, because I got that covered with my new 1401 successor machine. And it runs six times faster than the current 1401. Well, this is a big problem because this would have basically meant the end of the system 360. Because if you didn't do the whole line, you couldn't get the benefits of price. You couldn't get the benefits of the customer saying, oh, it can go up and down. It would have made a big mess. And management was listening to them. And this was really making everybody pretty uncomfortable. Because what you see here is one of those transistor logic modules I told you before. Here's a chassis of those looking from the back. I've actually seen this machine. It's in the Computer History Museum in Mountain View, California. If you ever get a chance, go out there. It's great. They run this machine. A bunch of old IBM geezers, that's what they say they are, restored this machine to working order. And they run it for people. You can go in this little machine room, and there's a rail on one side, and they'll run the tapes and everything. Anyway, the Hayat, his successor machine, used those same kind of logic modules, the SLT logic modules. So guess who's going to get it? They sold 20,000 of these machines. So that would have completely used up all of their integrated circuits, all of the materials they were going to use. And it would really have starved them out. Now to understand the next step of the story, you've got to take a slight detour. And that's with the idea of microcode. You think of the Computer, if you get down to the architecture, I described you fetch an instruction, you decode it, and you execute it. Well, that actually was the way the original computers work. But the British guy, Dr. Wilkes here, who built the very first operational computer, came up with a better idea. He said, why don't we make a smaller, simpler computer and have a fixed program in it that fetches, decodes, and executes instructions. So you have the macro instructions that the programmer knows about, and then you have the micro instructions that the computer is using to implement the emulator for the macro instructions. When you use your laptop, You've got these really ugly old Intel instructions. They get read in, and a micro program in that chip actually turns it into micro operations. It actually makes a little RISC machine out of it and starts pumping it through to make it go faster. So we still do that today. This is exactly how we do it. Well, the guys at IBM in this time decided to use that for their machines, too. And one of the engineers of one of the smaller machines had decided to try to make an emulator, which is what that little program underneath is called, of microcode to be a 1401, like hamsters machines were. And he did, and it was pretty good. So at night, what happened is after one of the meetings, it didn't look like it was going well. It looked like they were maybe going to do Hanster's thing. He spent an all nighter, jumped in a plane, flew back to Poughkeepsie, took that emulator that they had. They did whatever they had to do to get it running on the Model 30. And they ran through all the benchmarks or all the inner loops that you would have in a 1401. And then the next morning, they were there with numbers. And they showed that if the customer took a Model 30 and ran this emulator, he would have a 4x improvement on his old 1401. Not the 6x, but it was close enough. So they had the meeting for about half a day. They broke for lunch. They didn't come back in the afternoon. The next day they show up, and Hamster's not there, but his lieutenant's there. And that's when Fred knew, hey, I won that. Right at the end there. They're almost going to mess this stuff at the end. Well, what happened was that this revolutionized the computer industry completely. A lot of what you see and how it works today is directly because of these three godly men who did all this work. What happened to our hero? He was so good at hardware, they asked him to work on the software. And that's a whole presentation of itself. But it was an OS 360 disaster. It took way too long to make, it cost too much, it didn't do what it said it would do, it was a big problem, and basically it was something called a second system effect. You do one thing, first time, you're a little nervous, you're scared, you know, it's kind of like driving, right? And then you're just careful and you follow the rules and you be real. After a while, when you do the second design, you think, man, I know all about this, this is easy. And you go out there and you make a big mess, because you think you can do everything and you just, ooh, so you gotta be humbled. And that even happens when you know you're doing it. So at a lunch, exit lunch, where Tom Watson was trying to convince Brooks not to go for his next step. So Brooks decided at the end of this, before the end of this, he got invited by the University of North Carolina at Chapel Hill to create a computer science department and be the first chairman. And he took the job. He said, you got to wait, and you can't tell anybody. And they did that, and they told Watson, and Watson tried to talk him out of it. He wouldn't be talked out of it. But then said, well, at least do this for me. And they made some deal. And he did a really good job of doing both, juggled both for a while. Well, at one of the last one of those meetings, they asked a question that people still ask today. And it's still something to ponder. Why is software so much harder than hardware? And Dr. Brooks said, well, I don't know. But I'll think about it. Remember, he was from Greenville, North Carolina. And the result, several years later, was the mythical man month that anybody in the business should read. There's a 25th edition that you should read, because it has some extra chapters in the back. These guys figured out how to do all this stuff. And people forget, and they make a mess, and they make fashions and fads, and we have all kinds of funny things. And it's like we forget. These people, actually, if we go back and read some of the earlier stuff, there's a sweet spot where they figured it out. And this book is definitely one of the things to read. Gene went on, left IBM for the second time. Actually, he'd left IBM before he came back and did the 360. And he built a set of computers that were plug compatibles. Not only did they run the software, you could also plug them into the same peripherals called Amdahl. And he lived in California, and he had a big career out there. He did quite nice. And then Jerry Blau very quickly went back Oh, the other thing he did that I didn't put on the slide is Blau invented paging. If you take operating systems and you study how the memories actually, so you write your program and it's virtual memory. It gets translated into physical memory. Well, the way it does that today on the ARM or the Intel is exactly the same way as Dr. Blau invented for MIT's time-sharing system, not for the 360. The 370 had it, but the 360 didn't. He went back to the Netherlands. He was very involved in evangelism there and reaching students there and helping them come to grips with science and God, as did Dr. Brooks at University of North Carolina Chapel Hill. So there's my three godly men and how they changed computer history. And we've hit EOF. I'll be very happy to entertain any questions you have. So the question is, what are the top three things, the difference between a good design and a bad design? Simplicity, clarity, and generality. If you think of a solution, you kind of want to go that way. So when you start any project or any development on anything, hardware, software, You start with not quite knowing what all you have to do. In fact, Dr. Brooks pretty much argues persuasively that you can't really know the requirements. You can know some requirements. But imagine that it's a cave that you haven't explored before, and you're going to enter it. Well, you've got to exactly predict exactly what the cave looks like, even though you've never been in it before. Well, that's kind of what a design is. As you're writing code or developing something, you realize, oh, I didn't think of that. And what is the requirement should be here? So you kind of can't even do the requirements yet. Well, you're going to wind up with a solution. And it's going to be somewhat complicated, because it's like your stream of consciousness solution, in a way. If you stop and think about it, you'll think of a better way to do it. And then you go back and change things and change some more. The business history of recent has been time to market dominated, which meant as soon as it worked, you shipped it. And you didn't let people go back and work on the design. There were some great places where that was an exception. So simplicity comes from that follow on. So you get growing complexity, and then you get a precipitous fall. to simplicity, the other side of complexity, not simplistic on this side. Simplicity is one. That gives you the clarity of being able to look at a design and cognate it. And there'd have to be a cognitive psychology to look at why that's true. But it is true, and you can do it and see it, and you know it when you see it. And the last thing is, is a solution really specific to one thing? Or is it a generally usable thing? And that's like a difference between a hack and a good design. The trouble is hacks accumulate. And they scab on each other. So another question? You mean how to do the good design? OK. Right. Another key I would mention is iterate. Brooks liked to say that originally he thought that you wrote software like you write a paper. And he quickly figured that wasn't right. And then he thought maybe you design software like you design a bridge. And he finally figured out that wasn't right either. You grow software. It's kind of an organic thing. And that's where you can trim back and regrow as you go. So iteration seems to be a really, really big thing. It's a big thing in debugging. So the way you realize that is by iteration. You get something working to start with, and you grow it. You add it. And then you back off and change some stuff, and you go. Sometimes you just have to throw things out and do it again. Sometimes you get too far in. Network address, yes. Why did I come up with network address translation? Network address translation is why all of you, I can mentally read your mind. Just think of at home. You're at home. OK, imagine your computer. You pull down the networking part. What's your IP address? Think it in your mind. OK, I see a 1. I see 192. They're all the same because on the outside of your router at your house is the real address. On the inside is what's called a Martian number. And what's happening in the middle is that's getting translated. And the question is how to, and I invented that. I don't get any money for it, but I invented it. Why did I invent it? Companies started trying to connect to the network, to the internet, after they had bought a bunch of equipment that had TCP in it. And they just made a bunch of addresses. And now they wanted to connect to the internet. And so there was a real need for a product that would drop in between them and the internet. and let them, okay, you don't have to mess with the inside, just get some real addresses, put them in that box, and now you've got a legal, you know, you can go out and use it legally. Also, by the way, that's where we can do, now we're doing firewalling, right, because that's the place you're leaving the box, because back in the 90s, you know, the good news is you're connecting to the world. The bad news is the world's connecting to you. And so the PIX was the product. We did that with a private internet executive that we sold to Cisco, and they sold quite a number of those. So that's how I came up with the network address. It just seemed to be the right thing to do. Another question? Luther answered that question when he said, the cleric is serving God, and the milk woman is serving God. It gets back to our business philosophy. You just find somebody to help and help them. And you'll prosper yourself and everybody else, too. Well, I'm very grateful to be allowed to speak to you, and I appreciate your time tonight very much.