1 00:00:00,320 --> 00:00:02,960 Speaker 1: Brought to you by the reinvented two thousand twelve Camray. 2 00:00:03,200 --> 00:00:08,920 Speaker 1: It's ready. Are you get in touch with technology with 3 00:00:09,080 --> 00:00:18,040 Speaker 1: tex Stuff from how stuff works dot Com. Hello again, everyone, 4 00:00:18,079 --> 00:00:22,120 Speaker 1: and welcome to the three hundred episode of text Stuff. 5 00:00:22,160 --> 00:00:24,240 Speaker 1: My name is Chris Poulette and I am an editor 6 00:00:24,400 --> 00:00:27,960 Speaker 1: here at how stuff works dot com and sitting across 7 00:00:28,000 --> 00:00:31,960 Speaker 1: from me as usual as senior writer Jonathan Strickland. You 8 00:00:32,000 --> 00:00:42,440 Speaker 1: know Jonathan, three episodes madness. This is text Stuff, all right. 9 00:00:42,479 --> 00:00:45,400 Speaker 1: Now that I've kicked Chris down a well, we can. 10 00:00:45,960 --> 00:00:51,120 Speaker 1: Oh he climbed up. Man. Dude has got some serious 11 00:00:51,240 --> 00:00:55,880 Speaker 1: forearm strength. Actually was all the fingertips. Yeah, yeah, yeah, 12 00:00:56,280 --> 00:00:59,720 Speaker 1: he's a baller. So we're gonna talk today about something 13 00:00:59,720 --> 00:01:04,120 Speaker 1: that you've had requested pretty much since episode one. Yep, yep. 14 00:01:04,240 --> 00:01:06,720 Speaker 1: And it's it's an involved topic. We could we could 15 00:01:06,760 --> 00:01:09,759 Speaker 1: talk about any one of the sub things we're about 16 00:01:09,800 --> 00:01:12,360 Speaker 1: to talk about for an entire episode of of tex Stuff. 17 00:01:12,400 --> 00:01:14,080 Speaker 1: So I think we're going to give give this sort 18 00:01:14,080 --> 00:01:16,560 Speaker 1: of an overview. Yeah yeah, So we're going to talk 19 00:01:16,600 --> 00:01:19,880 Speaker 1: today about programming languages, and to really get us started, 20 00:01:19,920 --> 00:01:24,160 Speaker 1: I have a quote here from C. A. R. Who 21 00:01:24,200 --> 00:01:28,760 Speaker 1: are h O A R E. Oh, And he says, 22 00:01:29,319 --> 00:01:32,319 Speaker 1: I conclude that there are two ways of constructing a 23 00:01:32,400 --> 00:01:35,319 Speaker 1: software design. One way is to make it so simple 24 00:01:35,480 --> 00:01:38,920 Speaker 1: that there are obviously no deficiencies, and the other way 25 00:01:38,959 --> 00:01:40,959 Speaker 1: is to make it so complicated that there are no 26 00:01:41,280 --> 00:01:46,920 Speaker 1: obvious deficiencies. And yeah, we're gonna talk about programming languages, 27 00:01:46,920 --> 00:01:49,520 Speaker 1: and that does apply to programming languages. Now, first of all, 28 00:01:50,360 --> 00:01:54,920 Speaker 1: you might ask, why do we have programming languages? Hey, Jonathan, Yeah, 29 00:01:54,960 --> 00:01:57,120 Speaker 1: why don't we have programming languages? Well, I'm glad you 30 00:01:57,160 --> 00:01:59,000 Speaker 1: asked that, Chris, because I was gonna have to wait 31 00:01:59,000 --> 00:02:02,240 Speaker 1: around a long time before the emails started coming in. Uh. Yeah. 32 00:02:02,320 --> 00:02:05,120 Speaker 1: The reason why we have it is because machines understand 33 00:02:05,520 --> 00:02:09,679 Speaker 1: a very well on the surface, a simple language, but 34 00:02:09,720 --> 00:02:12,760 Speaker 1: it's one that humans are not able to read easily. 35 00:02:13,160 --> 00:02:16,799 Speaker 1: Machine code is not something that humans easily read, right, 36 00:02:17,120 --> 00:02:20,320 Speaker 1: And ultimately, when you get down to it, a computer 37 00:02:20,440 --> 00:02:26,960 Speaker 1: understands basically two things on and off. Now, the type 38 00:02:27,000 --> 00:02:29,960 Speaker 1: of machine code is dependent on the kind of machine. 39 00:02:30,680 --> 00:02:32,840 Speaker 1: And when we say machine code, that doesn't necessarily just 40 00:02:32,919 --> 00:02:35,280 Speaker 1: mean computers. No, no, not at all. Yeah, because the 41 00:02:35,320 --> 00:02:37,919 Speaker 1: first machine codes were really for things like looms, right 42 00:02:38,720 --> 00:02:43,040 Speaker 1: looms and player pianos where that's another example. It's a 43 00:02:43,120 --> 00:02:47,560 Speaker 1: machine code that the coding translated to which notes played 44 00:02:47,600 --> 00:02:51,079 Speaker 1: when yes, uh, if you will remember a long time 45 00:02:51,120 --> 00:02:55,040 Speaker 1: ago we talked about how looms were mechanical. Looms were 46 00:02:55,080 --> 00:02:58,920 Speaker 1: programmed by using punched cards, um. And this was done 47 00:02:59,600 --> 00:03:03,600 Speaker 1: hundreds of years ago now um. So basically, the loom 48 00:03:03,639 --> 00:03:05,880 Speaker 1: would follow the instructions on the card. Where there was 49 00:03:05,919 --> 00:03:07,960 Speaker 1: a hole, it would do one thing, and when there 50 00:03:08,040 --> 00:03:10,560 Speaker 1: was a non hole, it would not do that thing 51 00:03:10,720 --> 00:03:13,920 Speaker 1: right again one or zero exactly. It also led to 52 00:03:14,360 --> 00:03:18,520 Speaker 1: the first episodes of sabotage, Sabo being a shoe that 53 00:03:18,560 --> 00:03:20,519 Speaker 1: someone would throw in the loom to break it because 54 00:03:20,600 --> 00:03:23,440 Speaker 1: they didn't want their jobs taken over by the machines. 55 00:03:24,120 --> 00:03:28,160 Speaker 1: Had times haven't changed manual weavers who uh did not 56 00:03:28,360 --> 00:03:32,520 Speaker 1: want to be displaced by an automatic loom unbeweavable. Yes, 57 00:03:32,600 --> 00:03:36,160 Speaker 1: it wasn't. I thought I could get through that, but 58 00:03:36,160 --> 00:03:40,160 Speaker 1: I couldn't. So yeah, machine code is this stuff that that, again, 59 00:03:40,200 --> 00:03:43,760 Speaker 1: machines can understand humans, humans can understand it, don't get 60 00:03:43,760 --> 00:03:46,240 Speaker 1: me wrong, It's just it takes so much effort to 61 00:03:46,360 --> 00:03:49,360 Speaker 1: understand it that it's not efficient for humans to to 62 00:03:49,480 --> 00:03:52,480 Speaker 1: write in machine code. I know people who can read binary, 63 00:03:52,520 --> 00:03:54,520 Speaker 1: I'm not one of them, right, Yeah, And there there 64 00:03:54,560 --> 00:03:58,040 Speaker 1: are people out there who are have what to me 65 00:03:58,120 --> 00:04:01,240 Speaker 1: would seem a mysterious gift to be able to read 66 00:04:01,320 --> 00:04:03,680 Speaker 1: and write in machine code in a way that you know, 67 00:04:03,720 --> 00:04:08,720 Speaker 1: I just can't comprehend. Um. So programming languages are a 68 00:04:08,760 --> 00:04:12,960 Speaker 1: way of of addressing that problem. It's it's an attempt 69 00:04:13,040 --> 00:04:16,080 Speaker 1: to create a language that is easier for humans to 70 00:04:16,520 --> 00:04:20,440 Speaker 1: uh to comprehend, and to create a set of instructions 71 00:04:20,480 --> 00:04:23,880 Speaker 1: for a machine that don't require you to think in 72 00:04:23,960 --> 00:04:29,600 Speaker 1: machine code. Yes, yes, um, I am Actually I have 73 00:04:29,680 --> 00:04:33,799 Speaker 1: actually been taking a a Python class over the past 74 00:04:33,839 --> 00:04:39,440 Speaker 1: few weeks, right. Uh, actually that's where it got its name. 75 00:04:39,480 --> 00:04:43,120 Speaker 1: I didn't really Yeah. Uh, Python is We'll get into 76 00:04:43,120 --> 00:04:44,840 Speaker 1: this later, but I just want to set this up. 77 00:04:45,240 --> 00:04:49,279 Speaker 1: Python is an object oriented programming language. Um. But I'm 78 00:04:49,279 --> 00:04:53,400 Speaker 1: actually in LESSNSE with the instructors Scott Turnbull, who's a 79 00:04:53,480 --> 00:04:56,560 Speaker 1: who's a friend, and uh, he was explaining that it's 80 00:04:56,600 --> 00:05:00,719 Speaker 1: not it's not that you're people are are afraid to 81 00:05:00,800 --> 00:05:04,120 Speaker 1: learn programming languages because they seem kind of complex. But 82 00:05:04,160 --> 00:05:07,159 Speaker 1: it's not that's it's not that you're not smart enough, 83 00:05:07,520 --> 00:05:11,279 Speaker 1: he says, it's actually that you're not dumb enough because 84 00:05:11,320 --> 00:05:15,080 Speaker 1: the computer doesn't really understand things. And the computer language 85 00:05:15,120 --> 00:05:18,240 Speaker 1: is there too to be sort of an interface between 86 00:05:18,240 --> 00:05:20,880 Speaker 1: you and the computer to give it specific instructions. Because 87 00:05:21,120 --> 00:05:22,919 Speaker 1: it doesn't know what you're trying to do. You have 88 00:05:23,040 --> 00:05:26,920 Speaker 1: to be very specific, and that's what the languages are 89 00:05:26,920 --> 00:05:29,440 Speaker 1: trying to do. But the thing is that depending on 90 00:05:29,480 --> 00:05:33,000 Speaker 1: the machine, as Jonathan was saying before, and depending on 91 00:05:33,240 --> 00:05:36,400 Speaker 1: what you're trying to do. Uh, people keep writing new 92 00:05:36,440 --> 00:05:42,000 Speaker 1: languages because one language maybe too sophisticated for the particular 93 00:05:42,040 --> 00:05:45,200 Speaker 1: kind of machine, or as machines become more sophisticated, you 94 00:05:45,279 --> 00:05:47,600 Speaker 1: might need something to take advantage of that where you 95 00:05:47,640 --> 00:05:50,800 Speaker 1: can really use the capabilities of those machines. Yeah, if 96 00:05:50,800 --> 00:05:53,040 Speaker 1: you look at some of the older programming languages, they 97 00:05:53,080 --> 00:05:56,280 Speaker 1: just weren't designed to to deal with the operations that 98 00:05:56,320 --> 00:06:00,600 Speaker 1: modern machines can can execute, and so you end up 99 00:06:00,800 --> 00:06:03,760 Speaker 1: having to if you're using those older languages, the programs 100 00:06:03,760 --> 00:06:06,719 Speaker 1: get more and more complex and larger and larger because 101 00:06:06,760 --> 00:06:08,600 Speaker 1: you have to have more lines of code in order 102 00:06:08,640 --> 00:06:13,719 Speaker 1: to facilitate these operations. Um or you have a language 103 00:06:13,720 --> 00:06:17,200 Speaker 1: that's so complex that it takes you three days just 104 00:06:17,240 --> 00:06:18,800 Speaker 1: to figure out how to write one line of code 105 00:06:18,800 --> 00:06:23,159 Speaker 1: to get what you what you want done done. So yeah, 106 00:06:23,200 --> 00:06:28,120 Speaker 1: it's a little um, it's a little daunting for the layman. Uh. 107 00:06:28,279 --> 00:06:30,120 Speaker 1: From a high level point of view, there are two 108 00:06:30,200 --> 00:06:34,320 Speaker 1: main features that programming languages have to have, or that 109 00:06:34,440 --> 00:06:37,120 Speaker 1: all languages really have, um. And these are not the 110 00:06:37,160 --> 00:06:40,960 Speaker 1: only two features, but two main features. One is semantics, 111 00:06:41,600 --> 00:06:44,880 Speaker 1: which is the meaning of what you are saying, and 112 00:06:44,920 --> 00:06:47,640 Speaker 1: then the other syntax, which is the form of what 113 00:06:47,680 --> 00:06:51,920 Speaker 1: you're saying. And the syntax and the semantics together are 114 00:06:52,000 --> 00:06:53,800 Speaker 1: kind of the set of rules that you have to 115 00:06:53,839 --> 00:06:57,279 Speaker 1: follow in order for a language to be understandable. And 116 00:06:57,320 --> 00:07:00,320 Speaker 1: that really goes for human languages as well. Yes, yeah, 117 00:07:00,400 --> 00:07:03,320 Speaker 1: all words have to go in a certain order for 118 00:07:03,600 --> 00:07:06,120 Speaker 1: somebody else to understand them, right, And you can play 119 00:07:06,200 --> 00:07:08,599 Speaker 1: without a little bit and humans are still able to 120 00:07:08,640 --> 00:07:11,120 Speaker 1: understand it. For example, so if you speak like Yoda, 121 00:07:11,520 --> 00:07:14,080 Speaker 1: that's exactly what I was thinking when you said that. Right. 122 00:07:14,360 --> 00:07:16,480 Speaker 1: If you hear Yoda talk in the Star Wars movies, 123 00:07:16,520 --> 00:07:19,280 Speaker 1: you know Yoda has his own syntax. He he throws 124 00:07:19,360 --> 00:07:24,600 Speaker 1: words in in odd odda order all the time, particularly 125 00:07:24,600 --> 00:07:27,520 Speaker 1: more in the prequels. I noticed his syntax got funkier 126 00:07:27,640 --> 00:07:30,120 Speaker 1: the younger he was. As he got older, I guess 127 00:07:30,160 --> 00:07:35,520 Speaker 1: he cut that crap out anyway, So, uh, nice Frank 128 00:07:35,520 --> 00:07:41,720 Speaker 1: OSes in the office everyone. So yeah, humans can actually 129 00:07:41,760 --> 00:07:44,680 Speaker 1: deal with a little variation in syntax. Computers not so much. 130 00:07:45,520 --> 00:07:49,640 Speaker 1: Computers are not good at adapting to new situations. They 131 00:07:49,720 --> 00:07:51,400 Speaker 1: have to, you know, you have to be able to 132 00:07:51,960 --> 00:07:54,080 Speaker 1: program it in a way that it makes sense to 133 00:07:54,080 --> 00:07:56,840 Speaker 1: the computer, so it can't really interpret if you start 134 00:07:56,880 --> 00:08:02,640 Speaker 1: messing with the syntax. There are two main categorizations, I 135 00:08:02,640 --> 00:08:07,160 Speaker 1: would say for for programming languages. There are low level 136 00:08:07,280 --> 00:08:11,280 Speaker 1: programming languages and high level programming languages. Yes, Now, a 137 00:08:11,360 --> 00:08:15,200 Speaker 1: low level programming language is one that is based on 138 00:08:15,280 --> 00:08:20,840 Speaker 1: mnemonic devices that are easy for a relatively easy for 139 00:08:20,960 --> 00:08:25,160 Speaker 1: humans to understand and remember. And they are, but they 140 00:08:25,280 --> 00:08:28,680 Speaker 1: correspond very closely with machine code, so it's almost like 141 00:08:28,720 --> 00:08:31,440 Speaker 1: your programming in machine code, but it's just a slight 142 00:08:31,840 --> 00:08:36,560 Speaker 1: tweak from machine code so that it's not as monumental 143 00:08:36,559 --> 00:08:40,720 Speaker 1: a task to remember you know, which what is you know, 144 00:08:41,360 --> 00:08:44,240 Speaker 1: what makes up the letter A as opposed to the 145 00:08:44,320 --> 00:08:46,520 Speaker 1: you know, the the group of zeros and ones that 146 00:08:46,559 --> 00:08:52,720 Speaker 1: would normally use that in say binary code. So um, 147 00:08:52,760 --> 00:08:56,640 Speaker 1: assembly language is an example of a low level computing language. 148 00:08:57,600 --> 00:08:59,400 Speaker 1: So if you were to write something in assembly, you'd 149 00:08:59,400 --> 00:09:04,480 Speaker 1: be writing it in a mnemonic style that closely models 150 00:09:04,520 --> 00:09:09,439 Speaker 1: machine language. Now, high level programming languages introduce a concept 151 00:09:09,480 --> 00:09:13,720 Speaker 1: called abstraction. Now, abstraction means you step a little further 152 00:09:13,880 --> 00:09:17,600 Speaker 1: away from these these specific steps the computer has to 153 00:09:17,640 --> 00:09:21,000 Speaker 1: go through in order to to execute the operation you're 154 00:09:21,120 --> 00:09:24,000 Speaker 1: you are telling it to do, and you can get 155 00:09:24,000 --> 00:09:28,760 Speaker 1: a little more free with the language. Now, the biggest 156 00:09:29,720 --> 00:09:32,439 Speaker 1: advancement would be if you created some sort of natural 157 00:09:32,600 --> 00:09:35,400 Speaker 1: language computer language where you would just type in a 158 00:09:35,440 --> 00:09:37,839 Speaker 1: sentence and the computer would be able to interpret that 159 00:09:38,320 --> 00:09:42,040 Speaker 1: as an actual command. So, you know, you would type in, uh, 160 00:09:42,200 --> 00:09:43,839 Speaker 1: I need you to add these two numbers together, and 161 00:09:43,880 --> 00:09:46,559 Speaker 1: then I need you to add this set of numbers together, 162 00:09:46,600 --> 00:09:48,480 Speaker 1: and then I need you to add both sums together, 163 00:09:48,480 --> 00:09:50,160 Speaker 1: and then I need you to give me an average. 164 00:09:50,760 --> 00:09:53,480 Speaker 1: You know, if you just type that in, then the computer, 165 00:09:54,200 --> 00:09:56,960 Speaker 1: if it had a way of interpreting natural language, would 166 00:09:56,960 --> 00:10:00,480 Speaker 1: give you the results you wanted. But we aren't really 167 00:10:00,520 --> 00:10:03,240 Speaker 1: there right. Well, let me let me take this from 168 00:10:03,280 --> 00:10:05,560 Speaker 1: the opposite side here for just a moment. You don't 169 00:10:05,559 --> 00:10:11,400 Speaker 1: necessarily want that because hit me with it, because again, 170 00:10:11,400 --> 00:10:16,800 Speaker 1: as Scott says, programming can be really repetitive, so you're 171 00:10:16,840 --> 00:10:20,440 Speaker 1: not going to want to type out, um, you know, 172 00:10:20,559 --> 00:10:22,720 Speaker 1: I want you to add these two numbers together. And 173 00:10:22,760 --> 00:10:24,960 Speaker 1: then you know you wanted to actually be as simple 174 00:10:25,000 --> 00:10:28,840 Speaker 1: as possible, So you don't want it to be literally 175 00:10:28,880 --> 00:10:31,640 Speaker 1: like that, just that, and I know you know that, 176 00:10:31,679 --> 00:10:33,360 Speaker 1: but I want to make it sort of clear that 177 00:10:33,480 --> 00:10:36,719 Speaker 1: it's not you want it to be to express that 178 00:10:36,800 --> 00:10:39,760 Speaker 1: sentiment in as few words as possible, because you're probably 179 00:10:39,760 --> 00:10:42,000 Speaker 1: going to have to type out the exact same kind 180 00:10:42,040 --> 00:10:45,440 Speaker 1: of thing many, many, many times over the course of 181 00:10:45,440 --> 00:10:48,840 Speaker 1: writing a program. Yeah, and if you were to write 182 00:10:48,960 --> 00:10:54,040 Speaker 1: a complicated program in assembly language, you would discover that 183 00:10:54,160 --> 00:10:57,040 Speaker 1: it's going to be enormous. This is gonna be lines 184 00:10:57,080 --> 00:11:00,600 Speaker 1: and lines and lines of code because with a language, 185 00:11:00,600 --> 00:11:03,360 Speaker 1: you are telling the computer what to do step by step. 186 00:11:03,400 --> 00:11:04,840 Speaker 1: And when I mean what to do, I'm talking about 187 00:11:04,880 --> 00:11:07,880 Speaker 1: not just telling it which operations to use, but when 188 00:11:08,000 --> 00:11:10,640 Speaker 1: to access memory, where it has to access it, what 189 00:11:10,880 --> 00:11:13,439 Speaker 1: information it has to pull up. I mean every single 190 00:11:13,480 --> 00:11:15,640 Speaker 1: set of instructions you can think about, you would pretty 191 00:11:15,679 --> 00:11:18,080 Speaker 1: much have to include there and the computer. If you 192 00:11:18,120 --> 00:11:20,040 Speaker 1: don't tell it to do something, the computer will not 193 00:11:20,120 --> 00:11:25,800 Speaker 1: do it. So think of it like a two year old. Yeah, alright, 194 00:11:25,840 --> 00:11:28,760 Speaker 1: so Chris, you've you've had experience with two year olds. 195 00:11:29,240 --> 00:11:30,920 Speaker 1: So let's say you tell your two years this is 196 00:11:30,960 --> 00:11:32,800 Speaker 1: like a Bill Cosby routine. In fact, this is a 197 00:11:32,800 --> 00:11:35,560 Speaker 1: Bill Cosby routine. You tell the two year old, all right, 198 00:11:36,480 --> 00:11:38,440 Speaker 1: you need to go upstairs, take a shower, and go 199 00:11:38,480 --> 00:11:40,880 Speaker 1: to bed. No, you can't do that because if you 200 00:11:40,920 --> 00:11:42,560 Speaker 1: just tell the kid to go upstairs, take a shower 201 00:11:42,600 --> 00:11:45,160 Speaker 1: and go to bed, the kid goes upstairs, gets in 202 00:11:45,200 --> 00:11:48,840 Speaker 1: the shower fully closed, turns on the water, then turns 203 00:11:48,880 --> 00:11:51,000 Speaker 1: off the water, and then gets into bed soaking wet. 204 00:11:51,440 --> 00:11:52,720 Speaker 1: So what you have to do is say, all right, 205 00:11:53,040 --> 00:11:56,599 Speaker 1: walk up the stairs, open the door to the bathroom, 206 00:11:56,880 --> 00:12:00,280 Speaker 1: go inside the bathroom, close the door to the bathroom, 207 00:12:00,320 --> 00:12:03,360 Speaker 1: take off your clothes, get in the shower, turn on 208 00:12:03,400 --> 00:12:09,760 Speaker 1: the water, wash shampoo, rents, get out of the shower, etcetera, etcetera. 209 00:12:09,800 --> 00:12:12,280 Speaker 1: You have to give it every single instruction or else 210 00:12:12,480 --> 00:12:15,880 Speaker 1: it skips steps or in the case of computers, it 211 00:12:15,920 --> 00:12:17,720 Speaker 1: may not skip steps. It may just say, well, I 212 00:12:17,720 --> 00:12:20,080 Speaker 1: don't know what to do because you haven't told me. 213 00:12:20,880 --> 00:12:24,079 Speaker 1: Well see I I uh, I don't know that that's 214 00:12:24,120 --> 00:12:27,280 Speaker 1: necessarily true of all two year olds. I have difficulty 215 00:12:27,360 --> 00:12:31,040 Speaker 1: weaning mind from the iPad long enough to do anything right. 216 00:12:31,320 --> 00:12:34,320 Speaker 1: But um, yeah, but you're if you're familiar with the 217 00:12:34,320 --> 00:12:37,160 Speaker 1: Cosby routine I'm talking about, I am, and that of course, well, 218 00:12:37,440 --> 00:12:39,680 Speaker 1: you know, being a stand up or sit down comedian. 219 00:12:39,720 --> 00:12:42,760 Speaker 1: In his case, uh, you know, he exaggerates a tiny bit, 220 00:12:42,800 --> 00:12:45,040 Speaker 1: but you're you're, you're onto something. And it also reminds 221 00:12:45,040 --> 00:12:47,800 Speaker 1: me a little bit of the text games when you 222 00:12:47,840 --> 00:12:50,520 Speaker 1: have to be very specific. It's like, no, open the 223 00:12:50,600 --> 00:12:53,200 Speaker 1: door and go in right. Well, yeah, the text based 224 00:12:53,200 --> 00:12:55,040 Speaker 1: games that that Chris is talking about, there were these 225 00:12:55,120 --> 00:12:57,920 Speaker 1: these games that like uh, info games used to do, 226 00:12:58,320 --> 00:13:02,079 Speaker 1: like games that were all they would give you a 227 00:13:02,080 --> 00:13:04,560 Speaker 1: paragraph of text that would explain the situation, and then 228 00:13:04,559 --> 00:13:07,079 Speaker 1: you would type in what you wanted to do next 229 00:13:07,200 --> 00:13:10,560 Speaker 1: and go left right and there might go left correct, 230 00:13:10,800 --> 00:13:14,079 Speaker 1: There might be a there might be a very specific 231 00:13:14,160 --> 00:13:18,200 Speaker 1: way that the game will allow you to move forward. 232 00:13:18,360 --> 00:13:21,000 Speaker 1: And if you type in something that's similar to that, 233 00:13:21,440 --> 00:13:24,280 Speaker 1: like Let's say you type in go north, but the 234 00:13:24,320 --> 00:13:27,160 Speaker 1: game would only recognize walk north, even though both of 235 00:13:27,160 --> 00:13:29,240 Speaker 1: those things mean the same thing. You know, if you 236 00:13:29,280 --> 00:13:31,920 Speaker 1: don't type in the right command right the same thing 237 00:13:31,960 --> 00:13:33,240 Speaker 1: to us, it means the same thing to us, it 238 00:13:33,240 --> 00:13:34,840 Speaker 1: doesn't mean the same thing to the computer because it 239 00:13:34,880 --> 00:13:38,280 Speaker 1: just doesn't it doesn't have that vocabulary. So a similar language, 240 00:13:38,320 --> 00:13:40,200 Speaker 1: like I said, is more or less the step by 241 00:13:40,240 --> 00:13:44,600 Speaker 1: step set of directions for a computer. So that's a 242 00:13:44,640 --> 00:13:47,560 Speaker 1: low level language. The high level languages, they abstract languages, 243 00:13:48,240 --> 00:13:52,080 Speaker 1: get a little more free because you have a you 244 00:13:52,120 --> 00:13:55,960 Speaker 1: have a sort of a step between the programming language 245 00:13:56,000 --> 00:13:59,160 Speaker 1: you've built a program in and that the way the 246 00:13:59,160 --> 00:14:02,120 Speaker 1: computer actually executes the code. There's a there's a step 247 00:14:02,160 --> 00:14:05,080 Speaker 1: in between there, which can vary depending upon which programming 248 00:14:05,160 --> 00:14:09,440 Speaker 1: language you're using. Um So, whereas in the first example, 249 00:14:09,720 --> 00:14:11,800 Speaker 1: you know, I have to go and tell the two 250 00:14:11,880 --> 00:14:14,240 Speaker 1: year old step by step what needs to happen in 251 00:14:14,360 --> 00:14:17,600 Speaker 1: order for the desired result that to come out with 252 00:14:17,679 --> 00:14:22,680 Speaker 1: a high level language, because we've previously defined certain uh 253 00:14:22,720 --> 00:14:26,160 Speaker 1: operations and certain data sets. Because that stuff has been 254 00:14:26,160 --> 00:14:30,400 Speaker 1: defined previously, I might have the freedom to say, go upstairs, 255 00:14:30,440 --> 00:14:32,400 Speaker 1: take a shower and go to bed, and then the 256 00:14:32,440 --> 00:14:35,360 Speaker 1: computer because those that set of data and the set 257 00:14:35,360 --> 00:14:38,280 Speaker 1: of operations have been previously defined will know to follow 258 00:14:38,280 --> 00:14:41,000 Speaker 1: its step by step, even though I did not lay 259 00:14:41,040 --> 00:14:44,120 Speaker 1: it all out piece by piece by piece. Yeah, the 260 00:14:44,160 --> 00:14:48,600 Speaker 1: more sophisticated languages will let you define those parameters. You 261 00:14:48,680 --> 00:14:51,000 Speaker 1: might say, I've got I want you to do these 262 00:14:51,040 --> 00:14:53,040 Speaker 1: fifteen things, and you're gonna have to do these fifteen 263 00:14:53,040 --> 00:14:55,480 Speaker 1: things seventy five times over the course of this. Well, 264 00:14:55,680 --> 00:15:00,640 Speaker 1: you might be able to create, uh m, a basically 265 00:15:00,720 --> 00:15:04,600 Speaker 1: a string of commands and say, when I say do this, 266 00:15:05,240 --> 00:15:09,680 Speaker 1: that means make all these fifteen things happen, so that 267 00:15:10,040 --> 00:15:15,360 Speaker 1: it's it's essentially like a shorthand you're yeah, exactly, that's 268 00:15:15,360 --> 00:15:18,560 Speaker 1: a better that's even better. Um, so you're going, okay, 269 00:15:18,920 --> 00:15:21,680 Speaker 1: so every time, So at first you might have to 270 00:15:21,760 --> 00:15:25,080 Speaker 1: do some some defining. You're gonna have to to explain, 271 00:15:25,760 --> 00:15:29,160 Speaker 1: uh in the language what you want these these things 272 00:15:29,200 --> 00:15:32,200 Speaker 1: to do, and then it will be able to execute 273 00:15:32,240 --> 00:15:34,760 Speaker 1: those those steps. But you know, it hasn't really always 274 00:15:34,840 --> 00:15:38,480 Speaker 1: been that way. Um. There are many, many, many languages, 275 00:15:38,840 --> 00:15:42,040 Speaker 1: some of which are are now famous, um, some of 276 00:15:42,080 --> 00:15:44,760 Speaker 1: which people still need to know because their legacy systems 277 00:15:44,760 --> 00:15:47,440 Speaker 1: out there that still run on these languages. Uh. Yeah. 278 00:15:47,440 --> 00:15:50,600 Speaker 1: I I have a friend who uh um works for 279 00:15:50,640 --> 00:15:55,440 Speaker 1: as a programming uh programmer, and she basically said, yeah, 280 00:15:55,480 --> 00:15:58,560 Speaker 1: I work with a language that not only is it 281 00:15:58,600 --> 00:16:03,320 Speaker 1: older than I am, but it has been mothballed for 282 00:16:03,400 --> 00:16:06,480 Speaker 1: almost as long as I've been alive. Uh And the 283 00:16:06,480 --> 00:16:09,360 Speaker 1: only reason they use it is because we're using these 284 00:16:09,400 --> 00:16:12,120 Speaker 1: computers and this is the language they understand. You happen 285 00:16:12,200 --> 00:16:14,600 Speaker 1: to know which one it was? No, I don't, Well, 286 00:16:14,640 --> 00:16:17,680 Speaker 1: I mean there's not There are thousands of programming languages 287 00:16:17,720 --> 00:16:19,080 Speaker 1: out there, which is one of the reasons why we 288 00:16:19,080 --> 00:16:22,400 Speaker 1: can't really do a full episode on programming languages period 289 00:16:22,920 --> 00:16:25,520 Speaker 1: because there are a lot of flavors, and they don't 290 00:16:25,880 --> 00:16:30,040 Speaker 1: you know, they take a lot of different approaches to programming. Now, 291 00:16:30,760 --> 00:16:33,560 Speaker 1: their goal is pretty much the same across the board. 292 00:16:33,760 --> 00:16:37,040 Speaker 1: The goal is to create a language that is easy 293 00:16:37,160 --> 00:16:39,440 Speaker 1: for humans to program in in such a way that 294 00:16:39,480 --> 00:16:43,080 Speaker 1: they can build applications for computers. But some of these 295 00:16:43,160 --> 00:16:46,360 Speaker 1: are designed with specific applications in mind. Some of them 296 00:16:46,400 --> 00:16:50,120 Speaker 1: are things like business applications or banking applications, and or 297 00:16:50,200 --> 00:16:54,120 Speaker 1: air traffic control systems. Systems that have a very specific 298 00:16:54,160 --> 00:16:56,400 Speaker 1: set of parameters that you would want to program for, 299 00:16:57,000 --> 00:17:00,920 Speaker 1: and then the others are more free form, right that 300 00:17:01,080 --> 00:17:05,080 Speaker 1: the designed for programs that maybe don't have as specific 301 00:17:05,200 --> 00:17:08,960 Speaker 1: a use scenario. And uh, it's kind of interesting to 302 00:17:08,960 --> 00:17:13,040 Speaker 1: talk about the history of these. UM there's actually I 303 00:17:13,080 --> 00:17:15,080 Speaker 1: wanted to mention before we really get into it. I 304 00:17:15,119 --> 00:17:18,800 Speaker 1: found a kind of neat timeline. It's an interactive timeline 305 00:17:20,040 --> 00:17:23,720 Speaker 1: that um you can move your cursor around the timeline. 306 00:17:23,760 --> 00:17:26,159 Speaker 1: The timeline itself is miniaturized, so when you look at 307 00:17:26,200 --> 00:17:28,800 Speaker 1: it just looks like a white bar with some gray 308 00:17:28,920 --> 00:17:31,399 Speaker 1: shading in it. And it turns out the reason for 309 00:17:31,440 --> 00:17:34,280 Speaker 1: that is because it's an enormous timeline and so when 310 00:17:34,280 --> 00:17:37,160 Speaker 1: you move your cursor it zooms in. I don't know, 311 00:17:37,280 --> 00:17:39,320 Speaker 1: it's got to be like twenty times or something. And 312 00:17:39,440 --> 00:17:43,040 Speaker 1: or if you to actually read what the the the 313 00:17:43,119 --> 00:17:45,919 Speaker 1: various languages are, but it said you can find that 314 00:17:46,040 --> 00:17:50,960 Speaker 1: at www dot l e V E n e Z 315 00:17:51,520 --> 00:17:56,120 Speaker 1: dot com, slash l A n G so Levinez dot com, 316 00:17:56,200 --> 00:18:00,200 Speaker 1: slash lang and it's a neat it's a neat time line. 317 00:18:00,240 --> 00:18:01,960 Speaker 1: I really do recommend you checking out out if you're 318 00:18:01,960 --> 00:18:05,760 Speaker 1: interested in seeing sort of the development of programming languages, 319 00:18:05,840 --> 00:18:08,240 Speaker 1: especially if you want to see which ones were descended 320 00:18:08,440 --> 00:18:11,919 Speaker 1: from the earliest languages, because that's it's kind of like 321 00:18:11,920 --> 00:18:15,159 Speaker 1: a family tree, except it's it's laid out horizontally as 322 00:18:15,160 --> 00:18:20,160 Speaker 1: opposed to vertically. Right now, Um, when i i'm I'm 323 00:18:20,200 --> 00:18:22,439 Speaker 1: old enough to remember when people used some of the 324 00:18:22,480 --> 00:18:25,280 Speaker 1: older languages, and so do you know the oldest one 325 00:18:25,359 --> 00:18:29,680 Speaker 1: is UM? The the oldest one. The on is credited 326 00:18:29,720 --> 00:18:32,280 Speaker 1: as the oldest language, even though it was not implemented 327 00:18:32,480 --> 00:18:40,199 Speaker 1: until for for computer programming. Yes, it is called plunk 328 00:18:40,200 --> 00:18:43,880 Speaker 1: a cool. Wow, what a catchy name. Plank a cool. 329 00:18:44,000 --> 00:18:47,159 Speaker 1: It was developed by Conrad Zuza. It was for the 330 00:18:47,320 --> 00:18:51,760 Speaker 1: Z three computer. Yeah, so program It was created back 331 00:18:51,800 --> 00:18:56,560 Speaker 1: around so in the so this is a German computer 332 00:18:56,680 --> 00:19:01,439 Speaker 1: in the forties. It was created but not implemented, so 333 00:19:01,560 --> 00:19:06,080 Speaker 1: the language was never actually used until two thousands somewhere 334 00:19:06,119 --> 00:19:08,240 Speaker 1: around there. This is the Z three came up on 335 00:19:08,320 --> 00:19:11,320 Speaker 1: in a way earlier podcast that that was before the 336 00:19:11,359 --> 00:19:14,040 Speaker 1: three hundreds. Oh wait, this is the first of the 337 00:19:14,040 --> 00:19:16,520 Speaker 1: three hundreds. So if you're talking about the first you know, 338 00:19:16,600 --> 00:19:21,120 Speaker 1: sort of commercially available UM programming language that wasn't just 339 00:19:21,280 --> 00:19:25,199 Speaker 1: for a very specific proprietary device, and that's all it 340 00:19:25,280 --> 00:19:28,640 Speaker 1: was for, because there were some things they're programming languages 341 00:19:28,680 --> 00:19:31,960 Speaker 1: that are unique to a specific piece of hardware. Yeah, 342 00:19:32,359 --> 00:19:34,919 Speaker 1: but you were talking about a different one. I was 343 00:19:35,040 --> 00:19:37,480 Speaker 1: the first one that that comes to mind when I 344 00:19:37,480 --> 00:19:40,080 Speaker 1: think of historical languages is for Tran, right, which was 345 00:19:40,320 --> 00:19:42,360 Speaker 1: we talked about that a little bit in our our 346 00:19:42,480 --> 00:19:46,520 Speaker 1: epic series on IBM. Yeah. John Bacchus actually helps create 347 00:19:46,520 --> 00:19:50,400 Speaker 1: the language in nine in n so Actually it wasn't 348 00:19:50,400 --> 00:19:52,760 Speaker 1: that long after the Z three. I think they actually 349 00:19:52,760 --> 00:19:56,680 Speaker 1: started developing it even earlier, like in the early fifties. 350 00:19:56,680 --> 00:20:00,920 Speaker 1: But but yeah, fifty seven was the introduction to the market. Yep, yep. 351 00:20:01,080 --> 00:20:03,600 Speaker 1: And it's you know, there are still people who program 352 00:20:03,600 --> 00:20:06,280 Speaker 1: in FORTRAN. I would imagine, Yeah, there's some legacy systems 353 00:20:06,280 --> 00:20:08,640 Speaker 1: out there running on for trend. Yeah, you know. I mean, 354 00:20:08,960 --> 00:20:11,439 Speaker 1: here's the other thing is that if you create a 355 00:20:11,480 --> 00:20:15,080 Speaker 1: business or any really if you create any system that's 356 00:20:15,119 --> 00:20:18,440 Speaker 1: dependent upon a legacy system, it's really hard to move 357 00:20:18,560 --> 00:20:21,560 Speaker 1: off of that system because you know, the modern systems 358 00:20:21,600 --> 00:20:24,080 Speaker 1: may not be able to emulate the old system, and 359 00:20:24,160 --> 00:20:27,119 Speaker 1: so you have to keep supporting something that is otherwise 360 00:20:27,240 --> 00:20:32,040 Speaker 1: obsolete and perpetually unless you just completely revamp the way 361 00:20:32,080 --> 00:20:35,600 Speaker 1: you do things. And that's that's intimidating. It's a tough 362 00:20:35,640 --> 00:20:39,239 Speaker 1: thing to do. Yeah, I can't imagine anyone booting up 363 00:20:39,240 --> 00:20:44,040 Speaker 1: their IBM system Stroke three sixty and uh starting to 364 00:20:44,119 --> 00:20:47,200 Speaker 1: run a Java app on it. I just don't think 365 00:20:47,240 --> 00:20:50,240 Speaker 1: it's gonna happen. Probably not. UM another one of the 366 00:20:50,320 --> 00:20:53,520 Speaker 1: languages I was thinking about. UM. There are three really 367 00:20:53,520 --> 00:20:55,359 Speaker 1: that come to mind, Like when I think of old 368 00:20:55,400 --> 00:20:58,760 Speaker 1: programming language is tons of others. COBALL is another one, 369 00:20:58,840 --> 00:21:02,480 Speaker 1: which is the common business oriented language, which is very 370 00:21:02,600 --> 00:21:06,520 Speaker 1: business heavy. It was a procedural language that was designed 371 00:21:06,520 --> 00:21:10,800 Speaker 1: for programming business applications. Uh. And actually COBAL was one 372 00:21:10,840 --> 00:21:14,440 Speaker 1: of those programming languages that that came into demand again 373 00:21:14,840 --> 00:21:17,159 Speaker 1: about a little over a decade ago. Do you know 374 00:21:17,200 --> 00:21:20,840 Speaker 1: why what happened a little over a decade ago? M M. 375 00:21:20,960 --> 00:21:26,120 Speaker 1: I'm thinking you're probably talking about the major world shaking 376 00:21:26,119 --> 00:21:29,680 Speaker 1: event that was the Y two K problem exactly. There 377 00:21:29,680 --> 00:21:32,240 Speaker 1: were a lot of legacy systems that were running Cobal. 378 00:21:32,400 --> 00:21:34,720 Speaker 1: They were running Cobal programming, you know, it was it 379 00:21:34,800 --> 00:21:38,679 Speaker 1: was the systems themselves were programmed in Cobal. And we 380 00:21:38,680 --> 00:21:41,280 Speaker 1: were coming up on the Y two K problem, which, 381 00:21:41,320 --> 00:21:44,440 Speaker 1: if you guys don't remember, was the issue of the date, 382 00:21:44,600 --> 00:21:48,239 Speaker 1: not it was only the date was being expressed as 383 00:21:48,240 --> 00:21:50,800 Speaker 1: a two digit numbers, which meant that when nine nine 384 00:21:50,840 --> 00:21:54,800 Speaker 1: became zero zero, that some of these systems might interpret 385 00:21:54,880 --> 00:21:57,159 Speaker 1: that to mean that the years no longer. It's not 386 00:21:57,240 --> 00:22:00,919 Speaker 1: two thousand, but is nineteen hundred. But it presupposes the 387 00:22:00,920 --> 00:22:03,520 Speaker 1: first two digits were one nine. And that's actually sort 388 00:22:03,560 --> 00:22:07,480 Speaker 1: of important because, um, you know, not only do programmers 389 00:22:07,520 --> 00:22:11,159 Speaker 1: look for ways to be very concise. When a lot 390 00:22:11,240 --> 00:22:13,720 Speaker 1: of people were programming in Cobal when it was first 391 00:22:13,720 --> 00:22:19,840 Speaker 1: released in ninety nine, Um, you had to be as 392 00:22:19,880 --> 00:22:24,240 Speaker 1: simple and precise as possible because, uh, you know, a 393 00:22:24,359 --> 00:22:28,960 Speaker 1: thumb drive, a flash drive has more memory than those 394 00:22:29,000 --> 00:22:31,480 Speaker 1: machines had at that point. Yeah, you're super computers back 395 00:22:31,520 --> 00:22:37,280 Speaker 1: then were pitiful compared to the handheld devices we have today. Yeah, 396 00:22:37,320 --> 00:22:39,440 Speaker 1: so they had to you know, lopping off the first 397 00:22:39,440 --> 00:22:42,240 Speaker 1: two digits of the year. Uh, you don't need them, 398 00:22:42,320 --> 00:22:45,080 Speaker 1: that's two extra digits I don't have to worry about. Well. Yeah, 399 00:22:45,119 --> 00:22:48,080 Speaker 1: and you gotta remember also, these guys when they were programming, 400 00:22:48,160 --> 00:22:50,719 Speaker 1: they knew that the field they were in. And when 401 00:22:50,760 --> 00:22:54,359 Speaker 1: I say these guys, there were female programmers to back 402 00:22:54,400 --> 00:22:56,720 Speaker 1: in the day. But all of these people they knew 403 00:22:57,040 --> 00:22:59,040 Speaker 1: back when they were getting into it that this was 404 00:22:59,080 --> 00:23:03,040 Speaker 1: a field that was evolving rapidly. Um, there were a 405 00:23:03,080 --> 00:23:06,159 Speaker 1: lot of different people working on programming languages and and 406 00:23:06,440 --> 00:23:09,160 Speaker 1: operating systems, and the sky was the limit. I mean, 407 00:23:09,200 --> 00:23:11,960 Speaker 1: there was nowhere to go but but up and out. 408 00:23:12,040 --> 00:23:15,439 Speaker 1: I mean it was just brand new frontier. And I 409 00:23:15,480 --> 00:23:18,600 Speaker 1: don't think anyone thought we're still going to be dependent 410 00:23:18,680 --> 00:23:21,919 Speaker 1: upon this old system, you know, three or four or 411 00:23:21,960 --> 00:23:24,480 Speaker 1: five decades from now, where this will be a problem. 412 00:23:24,480 --> 00:23:26,520 Speaker 1: By then will be on totally different systems and this 413 00:23:26,520 --> 00:23:29,000 Speaker 1: stuff will be a long forgotten memory. It's just this 414 00:23:29,080 --> 00:23:32,199 Speaker 1: is the stepping stone for us to get there. Not thinking, no, 415 00:23:32,440 --> 00:23:35,880 Speaker 1: there's gonna be companies out there. You still using these 416 00:23:35,880 --> 00:23:39,879 Speaker 1: old systems because the business, the business reality is that 417 00:23:39,920 --> 00:23:45,840 Speaker 1: you can't revamp every with every new development, new technological development. 418 00:23:46,240 --> 00:23:49,360 Speaker 1: Was the old folks, he saying, says, if it ain't broke, 419 00:23:49,720 --> 00:23:54,400 Speaker 1: don't fix it. And even if it is broken, I'm 420 00:23:54,400 --> 00:23:57,359 Speaker 1: looking at my laptop, all right. Yeah. The other one 421 00:23:57,400 --> 00:24:00,400 Speaker 1: I was thinking about is Pascal episode three. I still 422 00:24:00,440 --> 00:24:04,360 Speaker 1: have a broken laptop well, which came around around nineteen. 423 00:24:05,240 --> 00:24:09,080 Speaker 1: I'm just saying it's not working at all. Oh, Pascal, 424 00:24:09,119 --> 00:24:11,200 Speaker 1: I'm sorry, we're on Pascal. Well. I was just mentioning. 425 00:24:11,240 --> 00:24:14,720 Speaker 1: I mean, I'm leaving out tons and tons of languages UM, 426 00:24:15,200 --> 00:24:17,880 Speaker 1: which was very popular in the seventies and eighties, which 427 00:24:17,920 --> 00:24:19,560 Speaker 1: you know, as I was growing up, I just heard 428 00:24:19,560 --> 00:24:22,800 Speaker 1: a lot of people programming in pascal UM and it 429 00:24:22,920 --> 00:24:25,320 Speaker 1: was just a very very It was actually sort of 430 00:24:25,320 --> 00:24:31,640 Speaker 1: a descendant UM of four tran and in some ways UM. 431 00:24:31,680 --> 00:24:34,280 Speaker 1: But you know, also in the seventies, I have this 432 00:24:34,320 --> 00:24:36,840 Speaker 1: feeling we need to to start tightening up because we're 433 00:24:36,840 --> 00:24:42,040 Speaker 1: probably getting shorter on time. Uh see the the snow 434 00:24:42,320 --> 00:24:48,000 Speaker 1: seat not see um. Yeah see that just a letter 435 00:24:48,160 --> 00:24:52,680 Speaker 1: c UM started to enter usage. And I remember when 436 00:24:52,680 --> 00:24:54,560 Speaker 1: I got my Amiga that a lot of people were 437 00:24:54,560 --> 00:24:56,960 Speaker 1: starting to get into a descendant of C. You know, 438 00:24:57,000 --> 00:25:01,520 Speaker 1: C plus you got C plus plus yeah. Yeah. See 439 00:25:02,240 --> 00:25:05,240 Speaker 1: see we're having around types of language. But yeah, the 440 00:25:05,280 --> 00:25:07,960 Speaker 1: C language was one of those that was kind of 441 00:25:08,000 --> 00:25:11,679 Speaker 1: intended as a system programming language for uh, for the PDP, 442 00:25:11,840 --> 00:25:14,040 Speaker 1: and then it ended up kind of exploding beyond that 443 00:25:14,119 --> 00:25:16,880 Speaker 1: and some programmers will tell you that it got out 444 00:25:16,880 --> 00:25:19,280 Speaker 1: of control, that people were using it well beyond what 445 00:25:19,320 --> 00:25:20,880 Speaker 1: it was supposed to be used for. And that's kind 446 00:25:20,880 --> 00:25:22,760 Speaker 1: of why we have the development of C plus and 447 00:25:22,800 --> 00:25:25,680 Speaker 1: then C plus plus. These were enhancements to that C 448 00:25:25,880 --> 00:25:30,320 Speaker 1: programming language to take into account new capabilities of machines 449 00:25:30,440 --> 00:25:33,359 Speaker 1: that CE just did not support. And you know, you 450 00:25:33,359 --> 00:25:36,159 Speaker 1: could program and see if you wanted to for these 451 00:25:36,200 --> 00:25:39,560 Speaker 1: these capabilities, but it would mean that your program would 452 00:25:39,600 --> 00:25:42,480 Speaker 1: have to be that many more lines of code to 453 00:25:42,520 --> 00:25:45,000 Speaker 1: be able to incorporate all the stuff that you could 454 00:25:45,040 --> 00:25:47,360 Speaker 1: do now. And C plus and C plus plus meant 455 00:25:47,440 --> 00:25:49,439 Speaker 1: to try and make that a little more elegant. But 456 00:25:49,520 --> 00:25:53,400 Speaker 1: even then you still have programmers saying that's out of control. Um, 457 00:25:53,440 --> 00:25:55,000 Speaker 1: I do want to backtrack just one second. I want 458 00:25:55,000 --> 00:25:58,560 Speaker 1: to mention one major programming language that was never really 459 00:25:58,560 --> 00:26:00,679 Speaker 1: meant to be a big programming which was meant to 460 00:26:00,680 --> 00:26:05,000 Speaker 1: be a teaching tool. Basic. Yeah. I was going to 461 00:26:05,200 --> 00:26:08,640 Speaker 1: mention that I did some of my research UM from 462 00:26:08,640 --> 00:26:14,439 Speaker 1: Britannica and uh it had listed UM fortran and see 463 00:26:14,600 --> 00:26:19,480 Speaker 1: as UM algorithmic languages and COBAL as a business oriented language. 464 00:26:19,480 --> 00:26:23,200 Speaker 1: But Basic was definitely and Pascal too, were both education 465 00:26:23,400 --> 00:26:28,000 Speaker 1: oriented languages. Yeah. Basic stands for beginners all purpose symbolic 466 00:26:28,080 --> 00:26:34,720 Speaker 1: instruction code. Yeah, this is this is old by today's standards. Yeah. Yeah. 467 00:26:34,760 --> 00:26:38,120 Speaker 1: And I found a great quote. It's an anonymous quote, 468 00:26:38,119 --> 00:26:40,359 Speaker 1: so I don't you know, it's kind of hard to 469 00:26:40,480 --> 00:26:42,080 Speaker 1: call it a quote in that case. This is the 470 00:26:42,080 --> 00:26:44,400 Speaker 1: one you're gonna did you already shared with me? Yeah? Yeah, 471 00:26:44,440 --> 00:26:47,840 Speaker 1: I love this this quote. Though Basic is two computer languages, 472 00:26:48,000 --> 00:26:51,720 Speaker 1: what Roman numerals are too arithmetic? The idea of being 473 00:26:51,720 --> 00:26:56,480 Speaker 1: the Basic teaches you the basic principles of programming, but 474 00:26:56,640 --> 00:27:01,679 Speaker 1: was not meant to actually design complex programs, right. It 475 00:27:01,720 --> 00:27:04,840 Speaker 1: was just meant to give you the the the basic essentials. 476 00:27:06,000 --> 00:27:09,359 Speaker 1: But that didn't stop people from actually programming fairly complex 477 00:27:09,960 --> 00:27:14,200 Speaker 1: applications in Basic, which meant that you had to create 478 00:27:14,280 --> 00:27:16,240 Speaker 1: lots and lots of lines of code in order to 479 00:27:16,440 --> 00:27:19,879 Speaker 1: create these, um, these these programs. Yeah. My my first 480 00:27:19,880 --> 00:27:23,760 Speaker 1: experience in computer programming, actually writing computer programs myself, was 481 00:27:24,000 --> 00:27:26,640 Speaker 1: in Amiga Basic, which I used on my Amigo one thousand, 482 00:27:27,240 --> 00:27:29,880 Speaker 1: UM and I remember it was. It was every bit 483 00:27:29,880 --> 00:27:32,800 Speaker 1: as tedious as you might imagine. I did have a 484 00:27:32,800 --> 00:27:36,639 Speaker 1: lot of friends who coded on Commodore sixty four's and 485 00:27:36,760 --> 00:27:40,240 Speaker 1: Vick twenties for that matter. Um, and they were pretty 486 00:27:40,320 --> 00:27:43,159 Speaker 1: much using Basic too. It's a matter of factored. I 487 00:27:43,160 --> 00:27:45,679 Speaker 1: also can remember the days when you would find basic 488 00:27:45,720 --> 00:27:48,560 Speaker 1: code in the back of computer magazines. Oh yeah, here's 489 00:27:48,560 --> 00:27:49,960 Speaker 1: a great program, and I will teach you how to 490 00:27:50,000 --> 00:27:51,840 Speaker 1: do this, and this is this is one that will 491 00:27:51,880 --> 00:27:56,399 Speaker 1: project your birthday indefinitely. Yes, you know stuff like that, 492 00:27:56,440 --> 00:27:58,280 Speaker 1: you test handy like it would tell you like what 493 00:27:58,440 --> 00:28:00,880 Speaker 1: day of the week your birthday would fall on from 494 00:28:00,920 --> 00:28:03,040 Speaker 1: that point forward. That kind of stuff. I mean, that's 495 00:28:03,359 --> 00:28:05,240 Speaker 1: you know, it sounds kind of silly, but it was 496 00:28:05,359 --> 00:28:09,240 Speaker 1: teaching people to the basics of computer programming. Yeah. Absolutely, 497 00:28:09,280 --> 00:28:13,200 Speaker 1: And there are people who are I've read several accounts 498 00:28:13,200 --> 00:28:14,919 Speaker 1: that there are many people who are in who are 499 00:28:14,960 --> 00:28:19,280 Speaker 1: programmers today who write amazing stuff, right that the video games, 500 00:28:19,359 --> 00:28:21,680 Speaker 1: the three D video games that everybody loves so much. 501 00:28:21,960 --> 00:28:26,159 Speaker 1: And they started writing basic on their home computer, which was, 502 00:28:26,240 --> 00:28:28,760 Speaker 1: you know, a tiny little machine, you know, like an 503 00:28:28,800 --> 00:28:32,919 Speaker 1: Apple to E or something six four. You've got, Um, 504 00:28:33,000 --> 00:28:35,320 Speaker 1: you gotta start somewhere, just start somewhere, and it's kind 505 00:28:35,359 --> 00:28:38,360 Speaker 1: of it's it is pretty fascinating. Did you have a 506 00:28:38,520 --> 00:28:40,720 Speaker 1: p L on your list. A p L. Yeah, it 507 00:28:41,000 --> 00:28:45,480 Speaker 1: stands for a programming language. I'm not joking. You know 508 00:28:45,560 --> 00:28:49,040 Speaker 1: the computer people really like those those uh yeah, those 509 00:28:49,080 --> 00:28:52,160 Speaker 1: those acronyms that when you when you break it down, 510 00:28:52,200 --> 00:28:54,520 Speaker 1: you're like, come on, it's it's late in the day 511 00:28:54,520 --> 00:28:57,000 Speaker 1: on Friday, and I can I forgot what that. Technically, 512 00:28:57,040 --> 00:28:58,600 Speaker 1: it's not an acronym. We're going to get someone to 513 00:28:58,640 --> 00:29:00,920 Speaker 1: write in because acronym has to no, it has it 514 00:29:00,960 --> 00:29:03,400 Speaker 1: has a name. And I'm because I'm hungry and it's 515 00:29:03,440 --> 00:29:05,080 Speaker 1: the end of the day, I can't remember what it is. Yeah, 516 00:29:05,080 --> 00:29:07,280 Speaker 1: we usually do this in the morning, but because this 517 00:29:07,360 --> 00:29:10,040 Speaker 1: is Madness and episode three hundred, we're actually doing this 518 00:29:10,080 --> 00:29:12,200 Speaker 1: in the afternoon. Also, I had something else I had 519 00:29:12,240 --> 00:29:15,160 Speaker 1: to do this morning, so anyway, but yeah, a programming language. 520 00:29:15,200 --> 00:29:18,200 Speaker 1: It was mostly used for accounting packages and air traffic 521 00:29:18,200 --> 00:29:22,000 Speaker 1: control systems. But the thing about a p L is 522 00:29:22,000 --> 00:29:25,280 Speaker 1: that it had an enormous character set. Now, most programming 523 00:29:25,320 --> 00:29:29,920 Speaker 1: languages use your basic letters, numbers, and symbols for like 524 00:29:29,960 --> 00:29:32,200 Speaker 1: the things you find on the keyboard basically as key 525 00:29:32,320 --> 00:29:35,640 Speaker 1: character exactly. A p L is not like that. It 526 00:29:35,800 --> 00:29:38,240 Speaker 1: is a whole set of characters that you're not You 527 00:29:38,240 --> 00:29:41,000 Speaker 1: can look at that keyboard all day long, you are 528 00:29:41,080 --> 00:29:43,520 Speaker 1: not going to find the symbols that appear in an 529 00:29:43,840 --> 00:29:46,720 Speaker 1: line of ap L code. But because it has this 530 00:29:46,920 --> 00:29:51,600 Speaker 1: enormous character set, it also is able to uh incorporate 531 00:29:51,640 --> 00:29:55,800 Speaker 1: lots of different operations into a single character. So a 532 00:29:55,840 --> 00:30:00,280 Speaker 1: program that might take five thousand lines of code mode 533 00:30:00,360 --> 00:30:02,680 Speaker 1: in some other programming language may only have to take 534 00:30:02,720 --> 00:30:04,960 Speaker 1: a couple of dozen lines of code in a p 535 00:30:05,240 --> 00:30:08,400 Speaker 1: L if you know the character set. But that character 536 00:30:08,440 --> 00:30:10,960 Speaker 1: I mean, it's a huge learning curve, right, I mean, 537 00:30:11,360 --> 00:30:15,080 Speaker 1: with this it's almost as difficult, not really, but from 538 00:30:15,080 --> 00:30:17,520 Speaker 1: a layman's perspective, it's almost as difficult as programming in 539 00:30:17,600 --> 00:30:21,360 Speaker 1: machine code itself, just because it's so dense. Um. I 540 00:30:21,400 --> 00:30:24,880 Speaker 1: actually looked at some code for a program that was 541 00:30:24,920 --> 00:30:28,080 Speaker 1: an early basic program and I and it. I forget 542 00:30:28,120 --> 00:30:29,959 Speaker 1: how many lines it was, but it was. It was. 543 00:30:30,720 --> 00:30:32,640 Speaker 1: It was a lot like a hundred lines and it 544 00:30:32,640 --> 00:30:35,120 Speaker 1: had been summarized into a single line of a p 545 00:30:35,320 --> 00:30:39,800 Speaker 1: L code. Yeah, it was. It was. No, I had 546 00:30:39,840 --> 00:30:43,480 Speaker 1: to take the word for it because I don't read 547 00:30:43,480 --> 00:30:45,600 Speaker 1: a p L code, so I can't really tell. Also, 548 00:30:45,640 --> 00:30:48,480 Speaker 1: this was making me think of Jonathan Coulton's song code 549 00:30:48,480 --> 00:30:53,560 Speaker 1: Monkey because his his code is not functional or elegant. Well, 550 00:30:54,840 --> 00:30:56,920 Speaker 1: this is also where hackers come from, right, I mean, 551 00:30:57,280 --> 00:31:00,440 Speaker 1: besides the physical hacking of machine, usually had actors who 552 00:31:00,440 --> 00:31:02,720 Speaker 1: would say, I want to make a program that does 553 00:31:03,560 --> 00:31:07,120 Speaker 1: desired outcome number one, and in order to do that, 554 00:31:07,160 --> 00:31:10,040 Speaker 1: I'm gonna code it this way. And it may not 555 00:31:10,120 --> 00:31:13,160 Speaker 1: be the most direct or elegant route. It may be 556 00:31:13,320 --> 00:31:16,160 Speaker 1: kind of cluji that you make your way through there 557 00:31:16,160 --> 00:31:17,760 Speaker 1: and you finally get to where you're going, but you 558 00:31:17,800 --> 00:31:20,800 Speaker 1: took the path less traveled. Robert Frost would have loved 559 00:31:20,800 --> 00:31:24,480 Speaker 1: your computer program. But uh yeah, you know that a 560 00:31:24,480 --> 00:31:26,520 Speaker 1: lot of hackers learned how to program this way. They 561 00:31:26,520 --> 00:31:28,840 Speaker 1: would have their their set outcome and they would program 562 00:31:28,840 --> 00:31:30,520 Speaker 1: their way to it, but the code might not be 563 00:31:30,600 --> 00:31:34,840 Speaker 1: the most elegant. So uh yeah, we we should mention 564 00:31:34,920 --> 00:31:39,440 Speaker 1: to the object oriented type programming languages, which is one 565 00:31:39,480 --> 00:31:42,640 Speaker 1: of the more modern I would say phases of programming 566 00:31:42,640 --> 00:31:46,280 Speaker 1: and more common today. Um not just to skip over 567 00:31:46,280 --> 00:31:48,360 Speaker 1: any others, I know there's probably other a couple other 568 00:31:48,680 --> 00:31:50,720 Speaker 1: of the earlier variety that you would like to mention. 569 00:31:50,920 --> 00:31:52,800 Speaker 1: I've got one that I'll talk about at the end. 570 00:31:53,080 --> 00:31:54,960 Speaker 1: But um, but that's but it sort of builds on 571 00:31:55,000 --> 00:31:58,640 Speaker 1: that idea basically that you are. It's a way to 572 00:31:58,680 --> 00:32:03,280 Speaker 1: manage how complex your programming is getting. Yeah, Usually if 573 00:32:03,320 --> 00:32:06,080 Speaker 1: you were to create let's say you create a program 574 00:32:06,280 --> 00:32:10,120 Speaker 1: in some and one that's not an object oriented programming language, 575 00:32:10,800 --> 00:32:12,880 Speaker 1: you have this for example, Yeah, you have the set 576 00:32:12,920 --> 00:32:15,880 Speaker 1: of data, and the entire program has access to that 577 00:32:15,960 --> 00:32:20,000 Speaker 1: same set of data. With object oriented programming, you actually 578 00:32:20,040 --> 00:32:24,760 Speaker 1: specify in which cases certain certain data gets used and 579 00:32:24,800 --> 00:32:28,440 Speaker 1: how it is used. So you have very specific methods 580 00:32:28,600 --> 00:32:30,959 Speaker 1: of dealing with that data and they can only be 581 00:32:31,040 --> 00:32:36,040 Speaker 1: used in that in that scenario within a program. And 582 00:32:36,120 --> 00:32:39,440 Speaker 1: this kind of cuts down on the possibility of having 583 00:32:39,600 --> 00:32:43,200 Speaker 1: these weird coding errors because you you know, because of 584 00:32:43,200 --> 00:32:46,880 Speaker 1: the rules of the programming language, you cannot misuse data 585 00:32:47,880 --> 00:32:52,200 Speaker 1: at least in theory. Give a person enough time and 586 00:32:52,240 --> 00:32:55,880 Speaker 1: there will find a way, right. But you might be 587 00:32:55,920 --> 00:32:57,480 Speaker 1: able to speak more to it than I can. Like, 588 00:32:58,040 --> 00:33:02,200 Speaker 1: my knowledge of programming is really from an academic standpoint, 589 00:33:02,240 --> 00:33:04,120 Speaker 1: but I don't have a lot of experience with it. 590 00:33:04,240 --> 00:33:07,480 Speaker 1: So did you want to elaborate anymore? I honestly, that's 591 00:33:07,480 --> 00:33:09,240 Speaker 1: about as far as I can get in depth for 592 00:33:09,320 --> 00:33:13,000 Speaker 1: object oriented programming, right right, Well, it's it's hierarchical and 593 00:33:13,080 --> 00:33:17,280 Speaker 1: it it basically it's a lot more elegant simply because 594 00:33:17,320 --> 00:33:18,720 Speaker 1: and I don't want to get the idea that I'm 595 00:33:18,760 --> 00:33:21,640 Speaker 1: a master program or anything like that, but it is 596 00:33:21,680 --> 00:33:24,800 Speaker 1: fascinating to be able to build this yourself. It's it does, 597 00:33:24,920 --> 00:33:28,840 Speaker 1: as you said, get into that hacker uh philosophy, it's not. 598 00:33:29,080 --> 00:33:31,480 Speaker 1: It's about taking things apart and trying to make something 599 00:33:31,760 --> 00:33:35,800 Speaker 1: better with it. And of course those the people who 600 00:33:36,120 --> 00:33:40,480 Speaker 1: hack into networks are doing using the same kinds of 601 00:33:40,480 --> 00:33:43,960 Speaker 1: tools for purposes that may or may not be illegal, 602 00:33:45,120 --> 00:33:49,600 Speaker 1: probably are not necessarily moral, all infiltration and manipulation, but 603 00:33:49,680 --> 00:33:52,400 Speaker 1: of course you know they're the ones who get all 604 00:33:52,440 --> 00:33:55,080 Speaker 1: the pressed, so that that that's where the negative connotation 605 00:33:55,080 --> 00:33:57,600 Speaker 1: for hacker gets in. But yeah, I mean this is 606 00:33:57,920 --> 00:34:01,800 Speaker 1: these these are the more sophisticated languages it you see today, Um, 607 00:34:01,920 --> 00:34:05,080 Speaker 1: you know, stuff like C plus plus uh. Simula actually 608 00:34:05,120 --> 00:34:08,240 Speaker 1: was the first, according to Britannic in nineteen sixty seven. 609 00:34:09,680 --> 00:34:12,160 Speaker 1: But you know there are others. You know, Java, Let's 610 00:34:12,200 --> 00:34:15,719 Speaker 1: say I thought Java was at least a semi object oriented. Yeah, 611 00:34:15,760 --> 00:34:19,120 Speaker 1: programming language and Python. There are many many others. I 612 00:34:19,160 --> 00:34:21,480 Speaker 1: know that you are interested in one of them, just 613 00:34:21,560 --> 00:34:25,520 Speaker 1: as from a historical standpoint, it's a it's a governmental language, 614 00:34:25,600 --> 00:34:27,320 Speaker 1: is A yes, it is. That was the one that 615 00:34:27,360 --> 00:34:29,720 Speaker 1: was going to mention. Yeah. Ada is the programming language. 616 00:34:29,719 --> 00:34:31,719 Speaker 1: It was commissioned by the Department of Defense in the 617 00:34:31,800 --> 00:34:34,879 Speaker 1: nineteen eighties, and the reason for commissioning it was they 618 00:34:34,920 --> 00:34:39,200 Speaker 1: wanted to have, uh, their own computer programming language for 619 00:34:39,280 --> 00:34:42,560 Speaker 1: their their systems. And Ada is kind of a descendant 620 00:34:42,680 --> 00:34:50,480 Speaker 1: of the Pascal language. Um, you, miss Lovelace. It's not 621 00:34:50,800 --> 00:34:53,680 Speaker 1: a lot of people's favorite language. I understand it can 622 00:34:53,719 --> 00:34:57,839 Speaker 1: be a little tricky at times, um, but you know, 623 00:34:58,560 --> 00:35:01,399 Speaker 1: it's it's funny shifting between languages. Uh. You know, I'm 624 00:35:01,440 --> 00:35:04,759 Speaker 1: also trying to learn Php at the same time, and 625 00:35:05,400 --> 00:35:09,120 Speaker 1: some of the constructs in PHP are completely removed in 626 00:35:09,160 --> 00:35:12,239 Speaker 1: Python as I'm learning, and that makes trying to learn 627 00:35:12,239 --> 00:35:15,160 Speaker 1: two languages simultaneously a little daunting. It's kind of like 628 00:35:15,239 --> 00:35:20,240 Speaker 1: learning two languages that are related but not perfectly in sync. 629 00:35:20,280 --> 00:35:23,640 Speaker 1: Like if you were learning say, French and Italian, that 630 00:35:23,680 --> 00:35:25,880 Speaker 1: would be fairly easy. The rules, the rules are very 631 00:35:25,920 --> 00:35:31,160 Speaker 1: similar and right right, but French and Latin might be 632 00:35:31,200 --> 00:35:35,000 Speaker 1: a little more challenging because you have cases in Latin 633 00:35:35,120 --> 00:35:40,040 Speaker 1: that are no longer used in modern French speech. So yeah, 634 00:35:40,160 --> 00:35:43,399 Speaker 1: the further away you get from that common well, in 635 00:35:43,400 --> 00:35:46,560 Speaker 1: this case, Latin is the common ancestor, Latin is the 636 00:35:46,600 --> 00:35:49,839 Speaker 1: ancestor to French. But then you can go uh all 637 00:35:49,880 --> 00:35:52,359 Speaker 1: the way out and say French and Chinese, in which 638 00:35:52,360 --> 00:35:55,520 Speaker 1: case there's no, there's no common ground. No, you don't 639 00:35:55,560 --> 00:35:58,280 Speaker 1: even you're not even using the same symbols to represent 640 00:35:58,360 --> 00:36:02,279 Speaker 1: words Latin and old fresh in for example, that's for 641 00:36:02,400 --> 00:36:04,879 Speaker 1: my that's for my old English peeps. I was gonna say, 642 00:36:04,880 --> 00:36:06,720 Speaker 1: you had to bring the Frissian in it. That loss 643 00:36:06,800 --> 00:36:12,600 Speaker 1: god kinning, y'all, that's how I roll Old English style. 644 00:36:13,080 --> 00:36:15,879 Speaker 1: Um so, so how are we doing on time? Where 645 00:36:15,960 --> 00:36:17,920 Speaker 1: we need to wrap this up? So yeah, this is 646 00:36:17,960 --> 00:36:21,160 Speaker 1: a This was our overview, and we will probably at 647 00:36:21,200 --> 00:36:24,719 Speaker 1: some point go into more depth on specific programming languages, 648 00:36:24,760 --> 00:36:28,120 Speaker 1: maybe talk about their development and and one exactly it 649 00:36:28,200 --> 00:36:32,120 Speaker 1: means to program in those languages. Yeah, yeah, that was that. 650 00:36:32,239 --> 00:36:34,680 Speaker 1: This is another one's topics that's kind of difficult for 651 00:36:34,800 --> 00:36:37,359 Speaker 1: us to tackle in a lot of depth because there 652 00:36:37,480 --> 00:36:40,400 Speaker 1: is a lot of there's a lot of breadth to it. 653 00:36:40,840 --> 00:36:43,239 Speaker 1: There's a wide for I mean even stuff like HTML, 654 00:36:43,719 --> 00:36:46,960 Speaker 1: which which is isn't really a programming language, a markup 655 00:36:47,239 --> 00:36:51,120 Speaker 1: markup language, but it shares some similarities to programming languages 656 00:36:51,160 --> 00:36:54,080 Speaker 1: because it has sets of instructions that tell a computer 657 00:36:54,239 --> 00:36:57,480 Speaker 1: how to do certain things right. And it's for somebody 658 00:36:57,480 --> 00:37:00,360 Speaker 1: who might be tempted to try programming but be afraid 659 00:37:00,360 --> 00:37:03,160 Speaker 1: of it, and he really shouldn't be, uh, but it 660 00:37:03,280 --> 00:37:04,680 Speaker 1: might be a way to get your feet wet, to 661 00:37:04,719 --> 00:37:06,640 Speaker 1: at least get an idea that, hey, this is what's 662 00:37:06,640 --> 00:37:08,920 Speaker 1: going on in the back end, but when it's on 663 00:37:08,960 --> 00:37:12,040 Speaker 1: the front end, it looks completely different. It looks polished. 664 00:37:12,080 --> 00:37:14,359 Speaker 1: You don't see any of this stuff. What's that's a 665 00:37:14,360 --> 00:37:18,880 Speaker 1: lot like what actual computer programming is. Like. Yeah, so yeah, 666 00:37:18,920 --> 00:37:20,520 Speaker 1: I'll tell you what. Why don't you let us know 667 00:37:20,640 --> 00:37:23,480 Speaker 1: on Twitter or Facebook if you have specific languages or 668 00:37:23,480 --> 00:37:27,719 Speaker 1: touch languages, maybe we can revisit it in more detail. Um, 669 00:37:27,760 --> 00:37:29,759 Speaker 1: but yeah, I would encourage people to at least try 670 00:37:29,760 --> 00:37:31,839 Speaker 1: it out because it's it can be a lot of fun, 671 00:37:31,840 --> 00:37:33,840 Speaker 1: and it could be extremely frustrating. But if you like 672 00:37:34,600 --> 00:37:37,200 Speaker 1: frustrating things, that are fun, programming might be for you. Yeah, 673 00:37:37,280 --> 00:37:39,080 Speaker 1: just just remember, at least you don't have to worry 674 00:37:39,080 --> 00:37:42,160 Speaker 1: about punch cards and getting punch cards out of order. 675 00:37:42,320 --> 00:37:44,239 Speaker 1: But we talked about punch cards in the past, so 676 00:37:44,400 --> 00:37:46,440 Speaker 1: that's why I felt good about We felt all right 677 00:37:46,480 --> 00:37:49,640 Speaker 1: about skipping over that. We didn't talk about compilers either. No, no, no, 678 00:37:49,719 --> 00:37:52,360 Speaker 1: But there's so much. I mean, there are entire college 679 00:37:52,400 --> 00:37:55,719 Speaker 1: courses that are based around just the principles of programming 680 00:37:55,760 --> 00:38:00,600 Speaker 1: language and college degrees exactly. So coming it all up 681 00:38:00,600 --> 00:38:02,640 Speaker 1: in a half hour podcast or in this case, a 682 00:38:02,760 --> 00:38:06,160 Speaker 1: thirty eight minute podcast is a little challenging. So if 683 00:38:06,200 --> 00:38:08,640 Speaker 1: you guys want to know more about specific programming languages, 684 00:38:08,680 --> 00:38:10,840 Speaker 1: like let's said, let us know on Twitter or Facebook 685 00:38:10,880 --> 00:38:13,560 Speaker 1: that are handled. There is text stuff h s W, 686 00:38:14,000 --> 00:38:16,400 Speaker 1: or you can send us an email and address is 687 00:38:16,560 --> 00:38:19,839 Speaker 1: tech stuff at how stuff works dot com. Happy three 688 00:38:19,920 --> 00:38:23,960 Speaker 1: hundred episode Chris, Happy three hundred to you too, Jonathan, 689 00:38:24,280 --> 00:38:26,640 Speaker 1: and we hope to talk to you guys again three 690 00:38:26,680 --> 00:38:32,360 Speaker 1: hundred more times really soon for moral news and thousands 691 00:38:32,360 --> 00:38:34,600 Speaker 1: of other topics. Is it how stuff works dot com. 692 00:38:34,800 --> 00:38:37,480 Speaker 1: To learn more about the podcast, click on the podcast 693 00:38:37,640 --> 00:38:41,160 Speaker 1: icon in the upper right corner. Of our homepage, The 694 00:38:41,239 --> 00:38:44,240 Speaker 1: How Stuff Works iPhone app has arrived. Download it today 695 00:38:44,480 --> 00:38:51,760 Speaker 1: on iTunes, brought to you by the reinvented two thousand 696 00:38:51,760 --> 00:38:53,960 Speaker 1: twelve camera. It's ready, are you