WEBVTT - TechStuff Episode 300

0:00:00.320 --> 0:00:02.960
<v Speaker 1>Brought to you by the reinvented two thousand twelve Camray.

0:00:03.200 --> 0:00:08.920
<v Speaker 1>It's ready. Are you get in touch with technology with

0:00:09.080 --> 0:00:18.040
<v Speaker 1>tex Stuff from how stuff works dot Com. Hello again, everyone,

0:00:18.079 --> 0:00:22.120
<v Speaker 1>and welcome to the three hundred episode of text Stuff.

0:00:22.160 --> 0:00:24.240
<v Speaker 1>My name is Chris Poulette and I am an editor

0:00:24.400 --> 0:00:27.960
<v Speaker 1>here at how stuff works dot com and sitting across

0:00:28.000 --> 0:00:31.960
<v Speaker 1>from me as usual as senior writer Jonathan Strickland. You

0:00:32.000 --> 0:00:42.440
<v Speaker 1>know Jonathan, three episodes madness. This is text Stuff, all right.

0:00:42.479 --> 0:00:45.400
<v Speaker 1>Now that I've kicked Chris down a well, we can.

0:00:45.960 --> 0:00:51.120
<v Speaker 1>Oh he climbed up. Man. Dude has got some serious

0:00:51.240 --> 0:00:55.880
<v Speaker 1>forearm strength. Actually was all the fingertips. Yeah, yeah, yeah,

0:00:56.280 --> 0:00:59.720
<v Speaker 1>he's a baller. So we're gonna talk today about something

0:00:59.720 --> 0:01:04.120
<v Speaker 1>that you've had requested pretty much since episode one. Yep, yep.

0:01:04.240 --> 0:01:06.720
<v Speaker 1>And it's it's an involved topic. We could we could

0:01:06.760 --> 0:01:09.759
<v Speaker 1>talk about any one of the sub things we're about

0:01:09.800 --> 0:01:12.360
<v Speaker 1>to talk about for an entire episode of of tex Stuff.

0:01:12.400 --> 0:01:14.080
<v Speaker 1>So I think we're going to give give this sort

0:01:14.080 --> 0:01:16.560
<v Speaker 1>of an overview. Yeah yeah, So we're going to talk

0:01:16.600 --> 0:01:19.880
<v Speaker 1>today about programming languages, and to really get us started,

0:01:19.920 --> 0:01:24.160
<v Speaker 1>I have a quote here from C. A. R. Who

0:01:24.200 --> 0:01:28.760
<v Speaker 1>are h O A R E. Oh, And he says,

0:01:29.319 --> 0:01:32.319
<v Speaker 1>I conclude that there are two ways of constructing a

0:01:32.400 --> 0:01:35.319
<v Speaker 1>software design. One way is to make it so simple

0:01:35.480 --> 0:01:38.920
<v Speaker 1>that there are obviously no deficiencies, and the other way

0:01:38.959 --> 0:01:40.959
<v Speaker 1>is to make it so complicated that there are no

0:01:41.280 --> 0:01:46.920
<v Speaker 1>obvious deficiencies. And yeah, we're gonna talk about programming languages,

0:01:46.920 --> 0:01:49.520
<v Speaker 1>and that does apply to programming languages. Now, first of all,

0:01:50.360 --> 0:01:54.920
<v Speaker 1>you might ask, why do we have programming languages? Hey, Jonathan, Yeah,

0:01:54.960 --> 0:01:57.120
<v Speaker 1>why don't we have programming languages? Well, I'm glad you

0:01:57.160 --> 0:01:59.000
<v Speaker 1>asked that, Chris, because I was gonna have to wait

0:01:59.000 --> 0:02:02.240
<v Speaker 1>around a long time before the emails started coming in. Uh. Yeah.

0:02:02.320 --> 0:02:05.120
<v Speaker 1>The reason why we have it is because machines understand

0:02:05.520 --> 0:02:09.679
<v Speaker 1>a very well on the surface, a simple language, but

0:02:09.720 --> 0:02:12.760
<v Speaker 1>it's one that humans are not able to read easily.

0:02:13.160 --> 0:02:16.799
<v Speaker 1>Machine code is not something that humans easily read, right,

0:02:17.120 --> 0:02:20.320
<v Speaker 1>And ultimately, when you get down to it, a computer

0:02:20.440 --> 0:02:26.960
<v Speaker 1>understands basically two things on and off. Now, the type

0:02:27.000 --> 0:02:29.960
<v Speaker 1>of machine code is dependent on the kind of machine.

0:02:30.680 --> 0:02:32.840
<v Speaker 1>And when we say machine code, that doesn't necessarily just

0:02:32.919 --> 0:02:35.280
<v Speaker 1>mean computers. No, no, not at all. Yeah, because the

0:02:35.320 --> 0:02:37.919
<v Speaker 1>first machine codes were really for things like looms, right

0:02:38.720 --> 0:02:43.040
<v Speaker 1>looms and player pianos where that's another example. It's a

0:02:43.120 --> 0:02:47.560
<v Speaker 1>machine code that the coding translated to which notes played

0:02:47.600 --> 0:02:51.079
<v Speaker 1>when yes, uh, if you will remember a long time

0:02:51.120 --> 0:02:55.040
<v Speaker 1>ago we talked about how looms were mechanical. Looms were

0:02:55.080 --> 0:02:58.920
<v Speaker 1>programmed by using punched cards, um. And this was done

0:02:59.600 --> 0:03:03.600
<v Speaker 1>hundreds of years ago now um. So basically, the loom

0:03:03.639 --> 0:03:05.880
<v Speaker 1>would follow the instructions on the card. Where there was

0:03:05.919 --> 0:03:07.960
<v Speaker 1>a hole, it would do one thing, and when there

0:03:08.040 --> 0:03:10.560
<v Speaker 1>was a non hole, it would not do that thing

0:03:10.720 --> 0:03:13.920
<v Speaker 1>right again one or zero exactly. It also led to

0:03:14.360 --> 0:03:18.520
<v Speaker 1>the first episodes of sabotage, Sabo being a shoe that

0:03:18.560 --> 0:03:20.519
<v Speaker 1>someone would throw in the loom to break it because

0:03:20.600 --> 0:03:23.440
<v Speaker 1>they didn't want their jobs taken over by the machines.

0:03:24.120 --> 0:03:28.160
<v Speaker 1>Had times haven't changed manual weavers who uh did not

0:03:28.360 --> 0:03:32.520
<v Speaker 1>want to be displaced by an automatic loom unbeweavable. Yes,

0:03:32.600 --> 0:03:36.160
<v Speaker 1>it wasn't. I thought I could get through that, but

0:03:36.160 --> 0:03:40.160
<v Speaker 1>I couldn't. So yeah, machine code is this stuff that that, again,

0:03:40.200 --> 0:03:43.760
<v Speaker 1>machines can understand humans, humans can understand it, don't get

0:03:43.760 --> 0:03:46.240
<v Speaker 1>me wrong, It's just it takes so much effort to

0:03:46.360 --> 0:03:49.360
<v Speaker 1>understand it that it's not efficient for humans to to

0:03:49.480 --> 0:03:52.480
<v Speaker 1>write in machine code. I know people who can read binary,

0:03:52.520 --> 0:03:54.520
<v Speaker 1>I'm not one of them, right, Yeah, And there there

0:03:54.560 --> 0:03:58.040
<v Speaker 1>are people out there who are have what to me

0:03:58.120 --> 0:04:01.240
<v Speaker 1>would seem a mysterious gift to be able to read

0:04:01.320 --> 0:04:03.680
<v Speaker 1>and write in machine code in a way that you know,

0:04:03.720 --> 0:04:08.720
<v Speaker 1>I just can't comprehend. Um. So programming languages are a

0:04:08.760 --> 0:04:12.960
<v Speaker 1>way of of addressing that problem. It's it's an attempt

0:04:13.040 --> 0:04:16.080
<v Speaker 1>to create a language that is easier for humans to

0:04:16.520 --> 0:04:20.440
<v Speaker 1>uh to comprehend, and to create a set of instructions

0:04:20.480 --> 0:04:23.880
<v Speaker 1>for a machine that don't require you to think in

0:04:23.960 --> 0:04:29.600
<v Speaker 1>machine code. Yes, yes, um, I am Actually I have

0:04:29.680 --> 0:04:33.799
<v Speaker 1>actually been taking a a Python class over the past

0:04:33.839 --> 0:04:39.440
<v Speaker 1>few weeks, right. Uh, actually that's where it got its name.

0:04:39.480 --> 0:04:43.120
<v Speaker 1>I didn't really Yeah. Uh, Python is We'll get into

0:04:43.120 --> 0:04:44.840
<v Speaker 1>this later, but I just want to set this up.

0:04:45.240 --> 0:04:49.279
<v Speaker 1>Python is an object oriented programming language. Um. But I'm

0:04:49.279 --> 0:04:53.400
<v Speaker 1>actually in LESSNSE with the instructors Scott Turnbull, who's a

0:04:53.480 --> 0:04:56.560
<v Speaker 1>who's a friend, and uh, he was explaining that it's

0:04:56.600 --> 0:05:00.719
<v Speaker 1>not it's not that you're people are are afraid to

0:05:00.800 --> 0:05:04.120
<v Speaker 1>learn programming languages because they seem kind of complex. But

0:05:04.160 --> 0:05:07.159
<v Speaker 1>it's not that's it's not that you're not smart enough,

0:05:07.520 --> 0:05:11.279
<v Speaker 1>he says, it's actually that you're not dumb enough because

0:05:11.320 --> 0:05:15.080
<v Speaker 1>the computer doesn't really understand things. And the computer language

0:05:15.120 --> 0:05:18.240
<v Speaker 1>is there too to be sort of an interface between

0:05:18.240 --> 0:05:20.880
<v Speaker 1>you and the computer to give it specific instructions. Because

0:05:21.120 --> 0:05:22.919
<v Speaker 1>it doesn't know what you're trying to do. You have

0:05:23.040 --> 0:05:26.920
<v Speaker 1>to be very specific, and that's what the languages are

0:05:26.920 --> 0:05:29.440
<v Speaker 1>trying to do. But the thing is that depending on

0:05:29.480 --> 0:05:33.000
<v Speaker 1>the machine, as Jonathan was saying before, and depending on

0:05:33.240 --> 0:05:36.400
<v Speaker 1>what you're trying to do. Uh, people keep writing new

0:05:36.440 --> 0:05:42.000
<v Speaker 1>languages because one language maybe too sophisticated for the particular

0:05:42.040 --> 0:05:45.200
<v Speaker 1>kind of machine, or as machines become more sophisticated, you

0:05:45.279 --> 0:05:47.600
<v Speaker 1>might need something to take advantage of that where you

0:05:47.640 --> 0:05:50.800
<v Speaker 1>can really use the capabilities of those machines. Yeah, if

0:05:50.800 --> 0:05:53.040
<v Speaker 1>you look at some of the older programming languages, they

0:05:53.080 --> 0:05:56.280
<v Speaker 1>just weren't designed to to deal with the operations that

0:05:56.320 --> 0:06:00.600
<v Speaker 1>modern machines can can execute, and so you end up

0:06:00.800 --> 0:06:03.760
<v Speaker 1>having to if you're using those older languages, the programs

0:06:03.760 --> 0:06:06.719
<v Speaker 1>get more and more complex and larger and larger because

0:06:06.760 --> 0:06:08.600
<v Speaker 1>you have to have more lines of code in order

0:06:08.640 --> 0:06:13.719
<v Speaker 1>to facilitate these operations. Um or you have a language

0:06:13.720 --> 0:06:17.200
<v Speaker 1>that's so complex that it takes you three days just

0:06:17.240 --> 0:06:18.800
<v Speaker 1>to figure out how to write one line of code

0:06:18.800 --> 0:06:23.159
<v Speaker 1>to get what you what you want done done. So yeah,

0:06:23.200 --> 0:06:28.120
<v Speaker 1>it's a little um, it's a little daunting for the layman. Uh.

0:06:28.279 --> 0:06:30.120
<v Speaker 1>From a high level point of view, there are two

0:06:30.200 --> 0:06:34.320
<v Speaker 1>main features that programming languages have to have, or that

0:06:34.440 --> 0:06:37.120
<v Speaker 1>all languages really have, um. And these are not the

0:06:37.160 --> 0:06:40.960
<v Speaker 1>only two features, but two main features. One is semantics,

0:06:41.600 --> 0:06:44.880
<v Speaker 1>which is the meaning of what you are saying, and

0:06:44.920 --> 0:06:47.640
<v Speaker 1>then the other syntax, which is the form of what

0:06:47.680 --> 0:06:51.920
<v Speaker 1>you're saying. And the syntax and the semantics together are

0:06:52.000 --> 0:06:53.800
<v Speaker 1>kind of the set of rules that you have to

0:06:53.839 --> 0:06:57.279
<v Speaker 1>follow in order for a language to be understandable. And

0:06:57.320 --> 0:07:00.320
<v Speaker 1>that really goes for human languages as well. Yes, yeah,

0:07:00.400 --> 0:07:03.320
<v Speaker 1>all words have to go in a certain order for

0:07:03.600 --> 0:07:06.120
<v Speaker 1>somebody else to understand them, right, And you can play

0:07:06.200 --> 0:07:08.599
<v Speaker 1>without a little bit and humans are still able to

0:07:08.640 --> 0:07:11.120
<v Speaker 1>understand it. For example, so if you speak like Yoda,

0:07:11.520 --> 0:07:14.080
<v Speaker 1>that's exactly what I was thinking when you said that. Right.

0:07:14.360 --> 0:07:16.480
<v Speaker 1>If you hear Yoda talk in the Star Wars movies,

0:07:16.520 --> 0:07:19.280
<v Speaker 1>you know Yoda has his own syntax. He he throws

0:07:19.360 --> 0:07:24.600
<v Speaker 1>words in in odd odda order all the time, particularly

0:07:24.600 --> 0:07:27.520
<v Speaker 1>more in the prequels. I noticed his syntax got funkier

0:07:27.640 --> 0:07:30.120
<v Speaker 1>the younger he was. As he got older, I guess

0:07:30.160 --> 0:07:35.520
<v Speaker 1>he cut that crap out anyway, So, uh, nice Frank

0:07:35.520 --> 0:07:41.720
<v Speaker 1>OSes in the office everyone. So yeah, humans can actually

0:07:41.760 --> 0:07:44.680
<v Speaker 1>deal with a little variation in syntax. Computers not so much.

0:07:45.520 --> 0:07:49.640
<v Speaker 1>Computers are not good at adapting to new situations. They

0:07:49.720 --> 0:07:51.400
<v Speaker 1>have to, you know, you have to be able to

0:07:51.960 --> 0:07:54.080
<v Speaker 1>program it in a way that it makes sense to

0:07:54.080 --> 0:07:56.840
<v Speaker 1>the computer, so it can't really interpret if you start

0:07:56.880 --> 0:08:02.640
<v Speaker 1>messing with the syntax. There are two main categorizations, I

0:08:02.640 --> 0:08:07.160
<v Speaker 1>would say for for programming languages. There are low level

0:08:07.280 --> 0:08:11.280
<v Speaker 1>programming languages and high level programming languages. Yes, Now, a

0:08:11.360 --> 0:08:15.200
<v Speaker 1>low level programming language is one that is based on

0:08:15.280 --> 0:08:20.840
<v Speaker 1>mnemonic devices that are easy for a relatively easy for

0:08:20.960 --> 0:08:25.160
<v Speaker 1>humans to understand and remember. And they are, but they

0:08:25.280 --> 0:08:28.680
<v Speaker 1>correspond very closely with machine code, so it's almost like

0:08:28.720 --> 0:08:31.440
<v Speaker 1>your programming in machine code, but it's just a slight

0:08:31.840 --> 0:08:36.560
<v Speaker 1>tweak from machine code so that it's not as monumental

0:08:36.559 --> 0:08:40.720
<v Speaker 1>a task to remember you know, which what is you know,

0:08:41.360 --> 0:08:44.240
<v Speaker 1>what makes up the letter A as opposed to the

0:08:44.320 --> 0:08:46.520
<v Speaker 1>you know, the the group of zeros and ones that

0:08:46.559 --> 0:08:52.720
<v Speaker 1>would normally use that in say binary code. So um,

0:08:52.760 --> 0:08:56.640
<v Speaker 1>assembly language is an example of a low level computing language.

0:08:57.600 --> 0:08:59.400
<v Speaker 1>So if you were to write something in assembly, you'd

0:08:59.400 --> 0:09:04.480
<v Speaker 1>be writing it in a mnemonic style that closely models

0:09:04.520 --> 0:09:09.439
<v Speaker 1>machine language. Now, high level programming languages introduce a concept

0:09:09.480 --> 0:09:13.720
<v Speaker 1>called abstraction. Now, abstraction means you step a little further

0:09:13.880 --> 0:09:17.600
<v Speaker 1>away from these these specific steps the computer has to

0:09:17.640 --> 0:09:21.000
<v Speaker 1>go through in order to to execute the operation you're

0:09:21.120 --> 0:09:24.000
<v Speaker 1>you are telling it to do, and you can get

0:09:24.000 --> 0:09:28.760
<v Speaker 1>a little more free with the language. Now, the biggest

0:09:29.720 --> 0:09:32.439
<v Speaker 1>advancement would be if you created some sort of natural

0:09:32.600 --> 0:09:35.400
<v Speaker 1>language computer language where you would just type in a

0:09:35.440 --> 0:09:37.839
<v Speaker 1>sentence and the computer would be able to interpret that

0:09:38.320 --> 0:09:42.040
<v Speaker 1>as an actual command. So, you know, you would type in, uh,

0:09:42.200 --> 0:09:43.839
<v Speaker 1>I need you to add these two numbers together, and

0:09:43.880 --> 0:09:46.559
<v Speaker 1>then I need you to add this set of numbers together,

0:09:46.600 --> 0:09:48.480
<v Speaker 1>and then I need you to add both sums together,

0:09:48.480 --> 0:09:50.160
<v Speaker 1>and then I need you to give me an average.

0:09:50.760 --> 0:09:53.480
<v Speaker 1>You know, if you just type that in, then the computer,

0:09:54.200 --> 0:09:56.960
<v Speaker 1>if it had a way of interpreting natural language, would

0:09:56.960 --> 0:10:00.480
<v Speaker 1>give you the results you wanted. But we aren't really

0:10:00.520 --> 0:10:03.240
<v Speaker 1>there right. Well, let me let me take this from

0:10:03.280 --> 0:10:05.560
<v Speaker 1>the opposite side here for just a moment. You don't

0:10:05.559 --> 0:10:11.400
<v Speaker 1>necessarily want that because hit me with it, because again,

0:10:11.400 --> 0:10:16.800
<v Speaker 1>as Scott says, programming can be really repetitive, so you're

0:10:16.840 --> 0:10:20.440
<v Speaker 1>not going to want to type out, um, you know,

0:10:20.559 --> 0:10:22.720
<v Speaker 1>I want you to add these two numbers together. And

0:10:22.760 --> 0:10:24.960
<v Speaker 1>then you know you wanted to actually be as simple

0:10:25.000 --> 0:10:28.840
<v Speaker 1>as possible, So you don't want it to be literally

0:10:28.880 --> 0:10:31.640
<v Speaker 1>like that, just that, and I know you know that,

0:10:31.679 --> 0:10:33.360
<v Speaker 1>but I want to make it sort of clear that

0:10:33.480 --> 0:10:36.719
<v Speaker 1>it's not you want it to be to express that

0:10:36.800 --> 0:10:39.760
<v Speaker 1>sentiment in as few words as possible, because you're probably

0:10:39.760 --> 0:10:42.000
<v Speaker 1>going to have to type out the exact same kind

0:10:42.040 --> 0:10:45.440
<v Speaker 1>of thing many, many, many times over the course of

0:10:45.440 --> 0:10:48.840
<v Speaker 1>writing a program. Yeah, and if you were to write

0:10:48.960 --> 0:10:54.040
<v Speaker 1>a complicated program in assembly language, you would discover that

0:10:54.160 --> 0:10:57.040
<v Speaker 1>it's going to be enormous. This is gonna be lines

0:10:57.080 --> 0:11:00.600
<v Speaker 1>and lines and lines of code because with a language,

0:11:00.600 --> 0:11:03.360
<v Speaker 1>you are telling the computer what to do step by step.

0:11:03.400 --> 0:11:04.840
<v Speaker 1>And when I mean what to do, I'm talking about

0:11:04.880 --> 0:11:07.880
<v Speaker 1>not just telling it which operations to use, but when

0:11:08.000 --> 0:11:10.640
<v Speaker 1>to access memory, where it has to access it, what

0:11:10.880 --> 0:11:13.439
<v Speaker 1>information it has to pull up. I mean every single

0:11:13.480 --> 0:11:15.640
<v Speaker 1>set of instructions you can think about, you would pretty

0:11:15.679 --> 0:11:18.080
<v Speaker 1>much have to include there and the computer. If you

0:11:18.120 --> 0:11:20.040
<v Speaker 1>don't tell it to do something, the computer will not

0:11:20.120 --> 0:11:25.800
<v Speaker 1>do it. So think of it like a two year old. Yeah, alright,

0:11:25.840 --> 0:11:28.760
<v Speaker 1>so Chris, you've you've had experience with two year olds.

0:11:29.240 --> 0:11:30.920
<v Speaker 1>So let's say you tell your two years this is

0:11:30.960 --> 0:11:32.800
<v Speaker 1>like a Bill Cosby routine. In fact, this is a

0:11:32.800 --> 0:11:35.560
<v Speaker 1>Bill Cosby routine. You tell the two year old, all right,

0:11:36.480 --> 0:11:38.440
<v Speaker 1>you need to go upstairs, take a shower, and go

0:11:38.480 --> 0:11:40.880
<v Speaker 1>to bed. No, you can't do that because if you

0:11:40.920 --> 0:11:42.560
<v Speaker 1>just tell the kid to go upstairs, take a shower

0:11:42.600 --> 0:11:45.160
<v Speaker 1>and go to bed, the kid goes upstairs, gets in

0:11:45.200 --> 0:11:48.840
<v Speaker 1>the shower fully closed, turns on the water, then turns

0:11:48.880 --> 0:11:51.000
<v Speaker 1>off the water, and then gets into bed soaking wet.

0:11:51.440 --> 0:11:52.720
<v Speaker 1>So what you have to do is say, all right,

0:11:53.040 --> 0:11:56.599
<v Speaker 1>walk up the stairs, open the door to the bathroom,

0:11:56.880 --> 0:12:00.280
<v Speaker 1>go inside the bathroom, close the door to the bathroom,

0:12:00.320 --> 0:12:03.360
<v Speaker 1>take off your clothes, get in the shower, turn on

0:12:03.400 --> 0:12:09.760
<v Speaker 1>the water, wash shampoo, rents, get out of the shower, etcetera, etcetera.

0:12:09.800 --> 0:12:12.280
<v Speaker 1>You have to give it every single instruction or else

0:12:12.480 --> 0:12:15.880
<v Speaker 1>it skips steps or in the case of computers, it

0:12:15.920 --> 0:12:17.720
<v Speaker 1>may not skip steps. It may just say, well, I

0:12:17.720 --> 0:12:20.080
<v Speaker 1>don't know what to do because you haven't told me.

0:12:20.880 --> 0:12:24.079
<v Speaker 1>Well see I I uh, I don't know that that's

0:12:24.120 --> 0:12:27.280
<v Speaker 1>necessarily true of all two year olds. I have difficulty

0:12:27.360 --> 0:12:31.040
<v Speaker 1>weaning mind from the iPad long enough to do anything right.

0:12:31.320 --> 0:12:34.320
<v Speaker 1>But um, yeah, but you're if you're familiar with the

0:12:34.320 --> 0:12:37.160
<v Speaker 1>Cosby routine I'm talking about, I am, and that of course, well,

0:12:37.440 --> 0:12:39.680
<v Speaker 1>you know, being a stand up or sit down comedian.

0:12:39.720 --> 0:12:42.760
<v Speaker 1>In his case, uh, you know, he exaggerates a tiny bit,

0:12:42.800 --> 0:12:45.040
<v Speaker 1>but you're you're, you're onto something. And it also reminds

0:12:45.040 --> 0:12:47.800
<v Speaker 1>me a little bit of the text games when you

0:12:47.840 --> 0:12:50.520
<v Speaker 1>have to be very specific. It's like, no, open the

0:12:50.600 --> 0:12:53.200
<v Speaker 1>door and go in right. Well, yeah, the text based

0:12:53.200 --> 0:12:55.040
<v Speaker 1>games that that Chris is talking about, there were these

0:12:55.120 --> 0:12:57.920
<v Speaker 1>these games that like uh, info games used to do,

0:12:58.320 --> 0:13:02.079
<v Speaker 1>like games that were all they would give you a

0:13:02.080 --> 0:13:04.560
<v Speaker 1>paragraph of text that would explain the situation, and then

0:13:04.559 --> 0:13:07.079
<v Speaker 1>you would type in what you wanted to do next

0:13:07.200 --> 0:13:10.560
<v Speaker 1>and go left right and there might go left correct,

0:13:10.800 --> 0:13:14.079
<v Speaker 1>There might be a there might be a very specific

0:13:14.160 --> 0:13:18.200
<v Speaker 1>way that the game will allow you to move forward.

0:13:18.360 --> 0:13:21.000
<v Speaker 1>And if you type in something that's similar to that,

0:13:21.440 --> 0:13:24.280
<v Speaker 1>like Let's say you type in go north, but the

0:13:24.320 --> 0:13:27.160
<v Speaker 1>game would only recognize walk north, even though both of

0:13:27.160 --> 0:13:29.240
<v Speaker 1>those things mean the same thing. You know, if you

0:13:29.280 --> 0:13:31.920
<v Speaker 1>don't type in the right command right the same thing

0:13:31.960 --> 0:13:33.240
<v Speaker 1>to us, it means the same thing to us, it

0:13:33.240 --> 0:13:34.840
<v Speaker 1>doesn't mean the same thing to the computer because it

0:13:34.880 --> 0:13:38.280
<v Speaker 1>just doesn't it doesn't have that vocabulary. So a similar language,

0:13:38.320 --> 0:13:40.200
<v Speaker 1>like I said, is more or less the step by

0:13:40.240 --> 0:13:44.600
<v Speaker 1>step set of directions for a computer. So that's a

0:13:44.640 --> 0:13:47.560
<v Speaker 1>low level language. The high level languages, they abstract languages,

0:13:48.240 --> 0:13:52.080
<v Speaker 1>get a little more free because you have a you

0:13:52.120 --> 0:13:55.960
<v Speaker 1>have a sort of a step between the programming language

0:13:56.000 --> 0:13:59.160
<v Speaker 1>you've built a program in and that the way the

0:13:59.160 --> 0:14:02.120
<v Speaker 1>computer actually executes the code. There's a there's a step

0:14:02.160 --> 0:14:05.080
<v Speaker 1>in between there, which can vary depending upon which programming

0:14:05.160 --> 0:14:09.440
<v Speaker 1>language you're using. Um So, whereas in the first example,

0:14:09.720 --> 0:14:11.800
<v Speaker 1>you know, I have to go and tell the two

0:14:11.880 --> 0:14:14.240
<v Speaker 1>year old step by step what needs to happen in

0:14:14.360 --> 0:14:17.600
<v Speaker 1>order for the desired result that to come out with

0:14:17.679 --> 0:14:22.680
<v Speaker 1>a high level language, because we've previously defined certain uh

0:14:22.720 --> 0:14:26.160
<v Speaker 1>operations and certain data sets. Because that stuff has been

0:14:26.160 --> 0:14:30.400
<v Speaker 1>defined previously, I might have the freedom to say, go upstairs,

0:14:30.440 --> 0:14:32.400
<v Speaker 1>take a shower and go to bed, and then the

0:14:32.440 --> 0:14:35.360
<v Speaker 1>computer because those that set of data and the set

0:14:35.360 --> 0:14:38.280
<v Speaker 1>of operations have been previously defined will know to follow

0:14:38.280 --> 0:14:41.000
<v Speaker 1>its step by step, even though I did not lay

0:14:41.040 --> 0:14:44.120
<v Speaker 1>it all out piece by piece by piece. Yeah, the

0:14:44.160 --> 0:14:48.600
<v Speaker 1>more sophisticated languages will let you define those parameters. You

0:14:48.680 --> 0:14:51.000
<v Speaker 1>might say, I've got I want you to do these

0:14:51.040 --> 0:14:53.040
<v Speaker 1>fifteen things, and you're gonna have to do these fifteen

0:14:53.040 --> 0:14:55.480
<v Speaker 1>things seventy five times over the course of this. Well,

0:14:55.680 --> 0:15:00.640
<v Speaker 1>you might be able to create, uh m, a basically

0:15:00.720 --> 0:15:04.600
<v Speaker 1>a string of commands and say, when I say do this,

0:15:05.240 --> 0:15:09.680
<v Speaker 1>that means make all these fifteen things happen, so that

0:15:10.040 --> 0:15:15.360
<v Speaker 1>it's it's essentially like a shorthand you're yeah, exactly, that's

0:15:15.360 --> 0:15:18.560
<v Speaker 1>a better that's even better. Um, so you're going, okay,

0:15:18.920 --> 0:15:21.680
<v Speaker 1>so every time, So at first you might have to

0:15:21.760 --> 0:15:25.080
<v Speaker 1>do some some defining. You're gonna have to to explain,

0:15:25.760 --> 0:15:29.160
<v Speaker 1>uh in the language what you want these these things

0:15:29.200 --> 0:15:32.200
<v Speaker 1>to do, and then it will be able to execute

0:15:32.240 --> 0:15:34.760
<v Speaker 1>those those steps. But you know, it hasn't really always

0:15:34.840 --> 0:15:38.480
<v Speaker 1>been that way. Um. There are many, many, many languages,

0:15:38.840 --> 0:15:42.040
<v Speaker 1>some of which are are now famous, um, some of

0:15:42.080 --> 0:15:44.760
<v Speaker 1>which people still need to know because their legacy systems

0:15:44.760 --> 0:15:47.440
<v Speaker 1>out there that still run on these languages. Uh. Yeah.

0:15:47.440 --> 0:15:50.600
<v Speaker 1>I I have a friend who uh um works for

0:15:50.640 --> 0:15:55.440
<v Speaker 1>as a programming uh programmer, and she basically said, yeah,

0:15:55.480 --> 0:15:58.560
<v Speaker 1>I work with a language that not only is it

0:15:58.600 --> 0:16:03.320
<v Speaker 1>older than I am, but it has been mothballed for

0:16:03.400 --> 0:16:06.480
<v Speaker 1>almost as long as I've been alive. Uh And the

0:16:06.480 --> 0:16:09.360
<v Speaker 1>only reason they use it is because we're using these

0:16:09.400 --> 0:16:12.120
<v Speaker 1>computers and this is the language they understand. You happen

0:16:12.200 --> 0:16:14.600
<v Speaker 1>to know which one it was? No, I don't, Well,

0:16:14.640 --> 0:16:17.680
<v Speaker 1>I mean there's not There are thousands of programming languages

0:16:17.720 --> 0:16:19.080
<v Speaker 1>out there, which is one of the reasons why we

0:16:19.080 --> 0:16:22.400
<v Speaker 1>can't really do a full episode on programming languages period

0:16:22.920 --> 0:16:25.520
<v Speaker 1>because there are a lot of flavors, and they don't

0:16:25.880 --> 0:16:30.040
<v Speaker 1>you know, they take a lot of different approaches to programming. Now,

0:16:30.760 --> 0:16:33.560
<v Speaker 1>their goal is pretty much the same across the board.

0:16:33.760 --> 0:16:37.040
<v Speaker 1>The goal is to create a language that is easy

0:16:37.160 --> 0:16:39.440
<v Speaker 1>for humans to program in in such a way that

0:16:39.480 --> 0:16:43.080
<v Speaker 1>they can build applications for computers. But some of these

0:16:43.160 --> 0:16:46.360
<v Speaker 1>are designed with specific applications in mind. Some of them

0:16:46.400 --> 0:16:50.120
<v Speaker 1>are things like business applications or banking applications, and or

0:16:50.200 --> 0:16:54.120
<v Speaker 1>air traffic control systems. Systems that have a very specific

0:16:54.160 --> 0:16:56.400
<v Speaker 1>set of parameters that you would want to program for,

0:16:57.000 --> 0:17:00.920
<v Speaker 1>and then the others are more free form, right that

0:17:01.080 --> 0:17:05.080
<v Speaker 1>the designed for programs that maybe don't have as specific

0:17:05.200 --> 0:17:08.960
<v Speaker 1>a use scenario. And uh, it's kind of interesting to

0:17:08.960 --> 0:17:13.040
<v Speaker 1>talk about the history of these. UM there's actually I

0:17:13.080 --> 0:17:15.080
<v Speaker 1>wanted to mention before we really get into it. I

0:17:15.119 --> 0:17:18.800
<v Speaker 1>found a kind of neat timeline. It's an interactive timeline

0:17:20.040 --> 0:17:23.720
<v Speaker 1>that um you can move your cursor around the timeline.

0:17:23.760 --> 0:17:26.159
<v Speaker 1>The timeline itself is miniaturized, so when you look at

0:17:26.200 --> 0:17:28.800
<v Speaker 1>it just looks like a white bar with some gray

0:17:28.920 --> 0:17:31.399
<v Speaker 1>shading in it. And it turns out the reason for

0:17:31.440 --> 0:17:34.280
<v Speaker 1>that is because it's an enormous timeline and so when

0:17:34.280 --> 0:17:37.160
<v Speaker 1>you move your cursor it zooms in. I don't know,

0:17:37.280 --> 0:17:39.320
<v Speaker 1>it's got to be like twenty times or something. And

0:17:39.440 --> 0:17:43.040
<v Speaker 1>or if you to actually read what the the the

0:17:43.119 --> 0:17:45.919
<v Speaker 1>various languages are, but it said you can find that

0:17:46.040 --> 0:17:50.960
<v Speaker 1>at www dot l e V E n e Z

0:17:51.520 --> 0:17:56.120
<v Speaker 1>dot com, slash l A n G so Levinez dot com,

0:17:56.200 --> 0:18:00.200
<v Speaker 1>slash lang and it's a neat it's a neat time line.

0:18:00.240 --> 0:18:01.960
<v Speaker 1>I really do recommend you checking out out if you're

0:18:01.960 --> 0:18:05.760
<v Speaker 1>interested in seeing sort of the development of programming languages,

0:18:05.840 --> 0:18:08.240
<v Speaker 1>especially if you want to see which ones were descended

0:18:08.440 --> 0:18:11.919
<v Speaker 1>from the earliest languages, because that's it's kind of like

0:18:11.920 --> 0:18:15.159
<v Speaker 1>a family tree, except it's it's laid out horizontally as

0:18:15.160 --> 0:18:20.160
<v Speaker 1>opposed to vertically. Right now, Um, when i i'm I'm

0:18:20.200 --> 0:18:22.439
<v Speaker 1>old enough to remember when people used some of the

0:18:22.480 --> 0:18:25.280
<v Speaker 1>older languages, and so do you know the oldest one

0:18:25.359 --> 0:18:29.680
<v Speaker 1>is UM? The the oldest one. The on is credited

0:18:29.720 --> 0:18:32.280
<v Speaker 1>as the oldest language, even though it was not implemented

0:18:32.480 --> 0:18:40.199
<v Speaker 1>until for for computer programming. Yes, it is called plunk

0:18:40.200 --> 0:18:43.880
<v Speaker 1>a cool. Wow, what a catchy name. Plank a cool.

0:18:44.000 --> 0:18:47.159
<v Speaker 1>It was developed by Conrad Zuza. It was for the

0:18:47.320 --> 0:18:51.760
<v Speaker 1>Z three computer. Yeah, so program It was created back

0:18:51.800 --> 0:18:56.560
<v Speaker 1>around so in the so this is a German computer

0:18:56.680 --> 0:19:01.439
<v Speaker 1>in the forties. It was created but not implemented, so

0:19:01.560 --> 0:19:06.080
<v Speaker 1>the language was never actually used until two thousands somewhere

0:19:06.119 --> 0:19:08.240
<v Speaker 1>around there. This is the Z three came up on

0:19:08.320 --> 0:19:11.320
<v Speaker 1>in a way earlier podcast that that was before the

0:19:11.359 --> 0:19:14.040
<v Speaker 1>three hundreds. Oh wait, this is the first of the

0:19:14.040 --> 0:19:16.520
<v Speaker 1>three hundreds. So if you're talking about the first you know,

0:19:16.600 --> 0:19:21.120
<v Speaker 1>sort of commercially available UM programming language that wasn't just

0:19:21.280 --> 0:19:25.199
<v Speaker 1>for a very specific proprietary device, and that's all it

0:19:25.280 --> 0:19:28.640
<v Speaker 1>was for, because there were some things they're programming languages

0:19:28.680 --> 0:19:31.960
<v Speaker 1>that are unique to a specific piece of hardware. Yeah,

0:19:32.359 --> 0:19:34.919
<v Speaker 1>but you were talking about a different one. I was

0:19:35.040 --> 0:19:37.480
<v Speaker 1>the first one that that comes to mind when I

0:19:37.480 --> 0:19:40.080
<v Speaker 1>think of historical languages is for Tran, right, which was

0:19:40.320 --> 0:19:42.360
<v Speaker 1>we talked about that a little bit in our our

0:19:42.480 --> 0:19:46.520
<v Speaker 1>epic series on IBM. Yeah. John Bacchus actually helps create

0:19:46.520 --> 0:19:50.400
<v Speaker 1>the language in nine in n so Actually it wasn't

0:19:50.400 --> 0:19:52.760
<v Speaker 1>that long after the Z three. I think they actually

0:19:52.760 --> 0:19:56.680
<v Speaker 1>started developing it even earlier, like in the early fifties.

0:19:56.680 --> 0:20:00.920
<v Speaker 1>But but yeah, fifty seven was the introduction to the market. Yep, yep.

0:20:01.080 --> 0:20:03.600
<v Speaker 1>And it's you know, there are still people who program

0:20:03.600 --> 0:20:06.280
<v Speaker 1>in FORTRAN. I would imagine, Yeah, there's some legacy systems

0:20:06.280 --> 0:20:08.640
<v Speaker 1>out there running on for trend. Yeah, you know. I mean,

0:20:08.960 --> 0:20:11.439
<v Speaker 1>here's the other thing is that if you create a

0:20:11.480 --> 0:20:15.080
<v Speaker 1>business or any really if you create any system that's

0:20:15.119 --> 0:20:18.440
<v Speaker 1>dependent upon a legacy system, it's really hard to move

0:20:18.560 --> 0:20:21.560
<v Speaker 1>off of that system because you know, the modern systems

0:20:21.600 --> 0:20:24.080
<v Speaker 1>may not be able to emulate the old system, and

0:20:24.160 --> 0:20:27.119
<v Speaker 1>so you have to keep supporting something that is otherwise

0:20:27.240 --> 0:20:32.040
<v Speaker 1>obsolete and perpetually unless you just completely revamp the way

0:20:32.080 --> 0:20:35.600
<v Speaker 1>you do things. And that's that's intimidating. It's a tough

0:20:35.640 --> 0:20:39.239
<v Speaker 1>thing to do. Yeah, I can't imagine anyone booting up

0:20:39.240 --> 0:20:44.040
<v Speaker 1>their IBM system Stroke three sixty and uh starting to

0:20:44.119 --> 0:20:47.200
<v Speaker 1>run a Java app on it. I just don't think

0:20:47.240 --> 0:20:50.240
<v Speaker 1>it's gonna happen. Probably not. UM another one of the

0:20:50.320 --> 0:20:53.520
<v Speaker 1>languages I was thinking about. UM. There are three really

0:20:53.520 --> 0:20:55.359
<v Speaker 1>that come to mind, Like when I think of old

0:20:55.400 --> 0:20:58.760
<v Speaker 1>programming language is tons of others. COBALL is another one,

0:20:58.840 --> 0:21:02.480
<v Speaker 1>which is the common business oriented language, which is very

0:21:02.600 --> 0:21:06.520
<v Speaker 1>business heavy. It was a procedural language that was designed

0:21:06.520 --> 0:21:10.800
<v Speaker 1>for programming business applications. Uh. And actually COBAL was one

0:21:10.840 --> 0:21:14.440
<v Speaker 1>of those programming languages that that came into demand again

0:21:14.840 --> 0:21:17.159
<v Speaker 1>about a little over a decade ago. Do you know

0:21:17.200 --> 0:21:20.840
<v Speaker 1>why what happened a little over a decade ago? M M.

0:21:20.960 --> 0:21:26.120
<v Speaker 1>I'm thinking you're probably talking about the major world shaking

0:21:26.119 --> 0:21:29.680
<v Speaker 1>event that was the Y two K problem exactly. There

0:21:29.680 --> 0:21:32.240
<v Speaker 1>were a lot of legacy systems that were running Cobal.

0:21:32.400 --> 0:21:34.720
<v Speaker 1>They were running Cobal programming, you know, it was it

0:21:34.800 --> 0:21:38.679
<v Speaker 1>was the systems themselves were programmed in Cobal. And we

0:21:38.680 --> 0:21:41.280
<v Speaker 1>were coming up on the Y two K problem, which,

0:21:41.320 --> 0:21:44.440
<v Speaker 1>if you guys don't remember, was the issue of the date,

0:21:44.600 --> 0:21:48.239
<v Speaker 1>not it was only the date was being expressed as

0:21:48.240 --> 0:21:50.800
<v Speaker 1>a two digit numbers, which meant that when nine nine

0:21:50.840 --> 0:21:54.800
<v Speaker 1>became zero zero, that some of these systems might interpret

0:21:54.880 --> 0:21:57.159
<v Speaker 1>that to mean that the years no longer. It's not

0:21:57.240 --> 0:22:00.919
<v Speaker 1>two thousand, but is nineteen hundred. But it presupposes the

0:22:00.920 --> 0:22:03.520
<v Speaker 1>first two digits were one nine. And that's actually sort

0:22:03.560 --> 0:22:07.480
<v Speaker 1>of important because, um, you know, not only do programmers

0:22:07.520 --> 0:22:11.159
<v Speaker 1>look for ways to be very concise. When a lot

0:22:11.240 --> 0:22:13.720
<v Speaker 1>of people were programming in Cobal when it was first

0:22:13.720 --> 0:22:19.840
<v Speaker 1>released in ninety nine, Um, you had to be as

0:22:19.880 --> 0:22:24.240
<v Speaker 1>simple and precise as possible because, uh, you know, a

0:22:24.359 --> 0:22:28.960
<v Speaker 1>thumb drive, a flash drive has more memory than those

0:22:29.000 --> 0:22:31.480
<v Speaker 1>machines had at that point. Yeah, you're super computers back

0:22:31.520 --> 0:22:37.280
<v Speaker 1>then were pitiful compared to the handheld devices we have today. Yeah,

0:22:37.320 --> 0:22:39.440
<v Speaker 1>so they had to you know, lopping off the first

0:22:39.440 --> 0:22:42.240
<v Speaker 1>two digits of the year. Uh, you don't need them,

0:22:42.320 --> 0:22:45.080
<v Speaker 1>that's two extra digits I don't have to worry about. Well. Yeah,

0:22:45.119 --> 0:22:48.080
<v Speaker 1>and you gotta remember also, these guys when they were programming,

0:22:48.160 --> 0:22:50.719
<v Speaker 1>they knew that the field they were in. And when

0:22:50.760 --> 0:22:54.359
<v Speaker 1>I say these guys, there were female programmers to back

0:22:54.400 --> 0:22:56.720
<v Speaker 1>in the day. But all of these people they knew

0:22:57.040 --> 0:22:59.040
<v Speaker 1>back when they were getting into it that this was

0:22:59.080 --> 0:23:03.040
<v Speaker 1>a field that was evolving rapidly. Um, there were a

0:23:03.080 --> 0:23:06.159
<v Speaker 1>lot of different people working on programming languages and and

0:23:06.440 --> 0:23:09.160
<v Speaker 1>operating systems, and the sky was the limit. I mean,

0:23:09.200 --> 0:23:11.960
<v Speaker 1>there was nowhere to go but but up and out.

0:23:12.040 --> 0:23:15.439
<v Speaker 1>I mean it was just brand new frontier. And I

0:23:15.480 --> 0:23:18.600
<v Speaker 1>don't think anyone thought we're still going to be dependent

0:23:18.680 --> 0:23:21.919
<v Speaker 1>upon this old system, you know, three or four or

0:23:21.960 --> 0:23:24.480
<v Speaker 1>five decades from now, where this will be a problem.

0:23:24.480 --> 0:23:26.520
<v Speaker 1>By then will be on totally different systems and this

0:23:26.520 --> 0:23:29.000
<v Speaker 1>stuff will be a long forgotten memory. It's just this

0:23:29.080 --> 0:23:32.199
<v Speaker 1>is the stepping stone for us to get there. Not thinking, no,

0:23:32.440 --> 0:23:35.880
<v Speaker 1>there's gonna be companies out there. You still using these

0:23:35.880 --> 0:23:39.879
<v Speaker 1>old systems because the business, the business reality is that

0:23:39.920 --> 0:23:45.840
<v Speaker 1>you can't revamp every with every new development, new technological development.

0:23:46.240 --> 0:23:49.360
<v Speaker 1>Was the old folks, he saying, says, if it ain't broke,

0:23:49.720 --> 0:23:54.400
<v Speaker 1>don't fix it. And even if it is broken, I'm

0:23:54.400 --> 0:23:57.359
<v Speaker 1>looking at my laptop, all right. Yeah. The other one

0:23:57.400 --> 0:24:00.400
<v Speaker 1>I was thinking about is Pascal episode three. I still

0:24:00.440 --> 0:24:04.360
<v Speaker 1>have a broken laptop well, which came around around nineteen.

0:24:05.240 --> 0:24:09.080
<v Speaker 1>I'm just saying it's not working at all. Oh, Pascal,

0:24:09.119 --> 0:24:11.200
<v Speaker 1>I'm sorry, we're on Pascal. Well. I was just mentioning.

0:24:11.240 --> 0:24:14.720
<v Speaker 1>I mean, I'm leaving out tons and tons of languages UM,

0:24:15.200 --> 0:24:17.880
<v Speaker 1>which was very popular in the seventies and eighties, which

0:24:17.920 --> 0:24:19.560
<v Speaker 1>you know, as I was growing up, I just heard

0:24:19.560 --> 0:24:22.800
<v Speaker 1>a lot of people programming in pascal UM and it

0:24:22.920 --> 0:24:25.320
<v Speaker 1>was just a very very It was actually sort of

0:24:25.320 --> 0:24:31.640
<v Speaker 1>a descendant UM of four tran and in some ways UM.

0:24:31.680 --> 0:24:34.280
<v Speaker 1>But you know, also in the seventies, I have this

0:24:34.320 --> 0:24:36.840
<v Speaker 1>feeling we need to to start tightening up because we're

0:24:36.840 --> 0:24:42.040
<v Speaker 1>probably getting shorter on time. Uh see the the snow

0:24:42.320 --> 0:24:48.000
<v Speaker 1>seat not see um. Yeah see that just a letter

0:24:48.160 --> 0:24:52.680
<v Speaker 1>c UM started to enter usage. And I remember when

0:24:52.680 --> 0:24:54.560
<v Speaker 1>I got my Amiga that a lot of people were

0:24:54.560 --> 0:24:56.960
<v Speaker 1>starting to get into a descendant of C. You know,

0:24:57.000 --> 0:25:01.520
<v Speaker 1>C plus you got C plus plus yeah. Yeah. See

0:25:02.240 --> 0:25:05.240
<v Speaker 1>see we're having around types of language. But yeah, the

0:25:05.280 --> 0:25:07.960
<v Speaker 1>C language was one of those that was kind of

0:25:08.000 --> 0:25:11.679
<v Speaker 1>intended as a system programming language for uh, for the PDP,

0:25:11.840 --> 0:25:14.040
<v Speaker 1>and then it ended up kind of exploding beyond that

0:25:14.119 --> 0:25:16.880
<v Speaker 1>and some programmers will tell you that it got out

0:25:16.880 --> 0:25:19.280
<v Speaker 1>of control, that people were using it well beyond what

0:25:19.320 --> 0:25:20.880
<v Speaker 1>it was supposed to be used for. And that's kind

0:25:20.880 --> 0:25:22.760
<v Speaker 1>of why we have the development of C plus and

0:25:22.800 --> 0:25:25.680
<v Speaker 1>then C plus plus. These were enhancements to that C

0:25:25.880 --> 0:25:30.320
<v Speaker 1>programming language to take into account new capabilities of machines

0:25:30.440 --> 0:25:33.359
<v Speaker 1>that CE just did not support. And you know, you

0:25:33.359 --> 0:25:36.159
<v Speaker 1>could program and see if you wanted to for these

0:25:36.200 --> 0:25:39.560
<v Speaker 1>these capabilities, but it would mean that your program would

0:25:39.600 --> 0:25:42.480
<v Speaker 1>have to be that many more lines of code to

0:25:42.520 --> 0:25:45.000
<v Speaker 1>be able to incorporate all the stuff that you could

0:25:45.040 --> 0:25:47.360
<v Speaker 1>do now. And C plus and C plus plus meant

0:25:47.440 --> 0:25:49.439
<v Speaker 1>to try and make that a little more elegant. But

0:25:49.520 --> 0:25:53.400
<v Speaker 1>even then you still have programmers saying that's out of control. Um,

0:25:53.440 --> 0:25:55.000
<v Speaker 1>I do want to backtrack just one second. I want

0:25:55.000 --> 0:25:58.560
<v Speaker 1>to mention one major programming language that was never really

0:25:58.560 --> 0:26:00.679
<v Speaker 1>meant to be a big programming which was meant to

0:26:00.680 --> 0:26:05.000
<v Speaker 1>be a teaching tool. Basic. Yeah. I was going to

0:26:05.200 --> 0:26:08.640
<v Speaker 1>mention that I did some of my research UM from

0:26:08.640 --> 0:26:14.439
<v Speaker 1>Britannica and uh it had listed UM fortran and see

0:26:14.600 --> 0:26:19.480
<v Speaker 1>as UM algorithmic languages and COBAL as a business oriented language.

0:26:19.480 --> 0:26:23.200
<v Speaker 1>But Basic was definitely and Pascal too, were both education

0:26:23.400 --> 0:26:28.000
<v Speaker 1>oriented languages. Yeah. Basic stands for beginners all purpose symbolic

0:26:28.080 --> 0:26:34.720
<v Speaker 1>instruction code. Yeah, this is this is old by today's standards. Yeah. Yeah.

0:26:34.760 --> 0:26:38.120
<v Speaker 1>And I found a great quote. It's an anonymous quote,

0:26:38.119 --> 0:26:40.359
<v Speaker 1>so I don't you know, it's kind of hard to

0:26:40.480 --> 0:26:42.080
<v Speaker 1>call it a quote in that case. This is the

0:26:42.080 --> 0:26:44.400
<v Speaker 1>one you're gonna did you already shared with me? Yeah? Yeah,

0:26:44.440 --> 0:26:47.840
<v Speaker 1>I love this this quote. Though Basic is two computer languages,

0:26:48.000 --> 0:26:51.720
<v Speaker 1>what Roman numerals are too arithmetic? The idea of being

0:26:51.720 --> 0:26:56.480
<v Speaker 1>the Basic teaches you the basic principles of programming, but

0:26:56.640 --> 0:27:01.679
<v Speaker 1>was not meant to actually design complex programs, right. It

0:27:01.720 --> 0:27:04.840
<v Speaker 1>was just meant to give you the the the basic essentials.

0:27:06.000 --> 0:27:09.359
<v Speaker 1>But that didn't stop people from actually programming fairly complex

0:27:09.960 --> 0:27:14.200
<v Speaker 1>applications in Basic, which meant that you had to create

0:27:14.280 --> 0:27:16.240
<v Speaker 1>lots and lots of lines of code in order to

0:27:16.440 --> 0:27:19.879
<v Speaker 1>create these, um, these these programs. Yeah. My my first

0:27:19.880 --> 0:27:23.760
<v Speaker 1>experience in computer programming, actually writing computer programs myself, was

0:27:24.000 --> 0:27:26.640
<v Speaker 1>in Amiga Basic, which I used on my Amigo one thousand,

0:27:27.240 --> 0:27:29.880
<v Speaker 1>UM and I remember it was. It was every bit

0:27:29.880 --> 0:27:32.800
<v Speaker 1>as tedious as you might imagine. I did have a

0:27:32.800 --> 0:27:36.639
<v Speaker 1>lot of friends who coded on Commodore sixty four's and

0:27:36.760 --> 0:27:40.240
<v Speaker 1>Vick twenties for that matter. Um, and they were pretty

0:27:40.320 --> 0:27:43.159
<v Speaker 1>much using Basic too. It's a matter of factored. I

0:27:43.160 --> 0:27:45.679
<v Speaker 1>also can remember the days when you would find basic

0:27:45.720 --> 0:27:48.560
<v Speaker 1>code in the back of computer magazines. Oh yeah, here's

0:27:48.560 --> 0:27:49.960
<v Speaker 1>a great program, and I will teach you how to

0:27:50.000 --> 0:27:51.840
<v Speaker 1>do this, and this is this is one that will

0:27:51.880 --> 0:27:56.399
<v Speaker 1>project your birthday indefinitely. Yes, you know stuff like that,

0:27:56.440 --> 0:27:58.280
<v Speaker 1>you test handy like it would tell you like what

0:27:58.440 --> 0:28:00.880
<v Speaker 1>day of the week your birthday would fall on from

0:28:00.920 --> 0:28:03.040
<v Speaker 1>that point forward. That kind of stuff. I mean, that's

0:28:03.359 --> 0:28:05.240
<v Speaker 1>you know, it sounds kind of silly, but it was

0:28:05.359 --> 0:28:09.240
<v Speaker 1>teaching people to the basics of computer programming. Yeah. Absolutely,

0:28:09.280 --> 0:28:13.200
<v Speaker 1>And there are people who are I've read several accounts

0:28:13.200 --> 0:28:14.919
<v Speaker 1>that there are many people who are in who are

0:28:14.960 --> 0:28:19.280
<v Speaker 1>programmers today who write amazing stuff, right that the video games,

0:28:19.359 --> 0:28:21.680
<v Speaker 1>the three D video games that everybody loves so much.

0:28:21.960 --> 0:28:26.159
<v Speaker 1>And they started writing basic on their home computer, which was,

0:28:26.240 --> 0:28:28.760
<v Speaker 1>you know, a tiny little machine, you know, like an

0:28:28.800 --> 0:28:32.919
<v Speaker 1>Apple to E or something six four. You've got, Um,

0:28:33.000 --> 0:28:35.320
<v Speaker 1>you gotta start somewhere, just start somewhere, and it's kind

0:28:35.359 --> 0:28:38.360
<v Speaker 1>of it's it is pretty fascinating. Did you have a

0:28:38.520 --> 0:28:40.720
<v Speaker 1>p L on your list. A p L. Yeah, it

0:28:41.000 --> 0:28:45.480
<v Speaker 1>stands for a programming language. I'm not joking. You know

0:28:45.560 --> 0:28:49.040
<v Speaker 1>the computer people really like those those uh yeah, those

0:28:49.080 --> 0:28:52.160
<v Speaker 1>those acronyms that when you when you break it down,

0:28:52.200 --> 0:28:54.520
<v Speaker 1>you're like, come on, it's it's late in the day

0:28:54.520 --> 0:28:57.000
<v Speaker 1>on Friday, and I can I forgot what that. Technically,

0:28:57.040 --> 0:28:58.600
<v Speaker 1>it's not an acronym. We're going to get someone to

0:28:58.640 --> 0:29:00.920
<v Speaker 1>write in because acronym has to no, it has it

0:29:00.960 --> 0:29:03.400
<v Speaker 1>has a name. And I'm because I'm hungry and it's

0:29:03.440 --> 0:29:05.080
<v Speaker 1>the end of the day, I can't remember what it is. Yeah,

0:29:05.080 --> 0:29:07.280
<v Speaker 1>we usually do this in the morning, but because this

0:29:07.360 --> 0:29:10.040
<v Speaker 1>is Madness and episode three hundred, we're actually doing this

0:29:10.080 --> 0:29:12.200
<v Speaker 1>in the afternoon. Also, I had something else I had

0:29:12.240 --> 0:29:15.160
<v Speaker 1>to do this morning, so anyway, but yeah, a programming language.

0:29:15.200 --> 0:29:18.200
<v Speaker 1>It was mostly used for accounting packages and air traffic

0:29:18.200 --> 0:29:22.000
<v Speaker 1>control systems. But the thing about a p L is

0:29:22.000 --> 0:29:25.280
<v Speaker 1>that it had an enormous character set. Now, most programming

0:29:25.320 --> 0:29:29.920
<v Speaker 1>languages use your basic letters, numbers, and symbols for like

0:29:29.960 --> 0:29:32.200
<v Speaker 1>the things you find on the keyboard basically as key

0:29:32.320 --> 0:29:35.640
<v Speaker 1>character exactly. A p L is not like that. It

0:29:35.800 --> 0:29:38.240
<v Speaker 1>is a whole set of characters that you're not You

0:29:38.240 --> 0:29:41.000
<v Speaker 1>can look at that keyboard all day long, you are

0:29:41.080 --> 0:29:43.520
<v Speaker 1>not going to find the symbols that appear in an

0:29:43.840 --> 0:29:46.720
<v Speaker 1>line of ap L code. But because it has this

0:29:46.920 --> 0:29:51.600
<v Speaker 1>enormous character set, it also is able to uh incorporate

0:29:51.640 --> 0:29:55.800
<v Speaker 1>lots of different operations into a single character. So a

0:29:55.840 --> 0:30:00.280
<v Speaker 1>program that might take five thousand lines of code mode

0:30:00.360 --> 0:30:02.680
<v Speaker 1>in some other programming language may only have to take

0:30:02.720 --> 0:30:04.960
<v Speaker 1>a couple of dozen lines of code in a p

0:30:05.240 --> 0:30:08.400
<v Speaker 1>L if you know the character set. But that character

0:30:08.440 --> 0:30:10.960
<v Speaker 1>I mean, it's a huge learning curve, right, I mean,

0:30:11.360 --> 0:30:15.080
<v Speaker 1>with this it's almost as difficult, not really, but from

0:30:15.080 --> 0:30:17.520
<v Speaker 1>a layman's perspective, it's almost as difficult as programming in

0:30:17.600 --> 0:30:21.360
<v Speaker 1>machine code itself, just because it's so dense. Um. I

0:30:21.400 --> 0:30:24.880
<v Speaker 1>actually looked at some code for a program that was

0:30:24.920 --> 0:30:28.080
<v Speaker 1>an early basic program and I and it. I forget

0:30:28.120 --> 0:30:29.959
<v Speaker 1>how many lines it was, but it was. It was.

0:30:30.720 --> 0:30:32.640
<v Speaker 1>It was a lot like a hundred lines and it

0:30:32.640 --> 0:30:35.120
<v Speaker 1>had been summarized into a single line of a p

0:30:35.320 --> 0:30:39.800
<v Speaker 1>L code. Yeah, it was. It was. No, I had

0:30:39.840 --> 0:30:43.480
<v Speaker 1>to take the word for it because I don't read

0:30:43.480 --> 0:30:45.600
<v Speaker 1>a p L code, so I can't really tell. Also,

0:30:45.640 --> 0:30:48.480
<v Speaker 1>this was making me think of Jonathan Coulton's song code

0:30:48.480 --> 0:30:53.560
<v Speaker 1>Monkey because his his code is not functional or elegant. Well,

0:30:54.840 --> 0:30:56.920
<v Speaker 1>this is also where hackers come from, right, I mean,

0:30:57.280 --> 0:31:00.440
<v Speaker 1>besides the physical hacking of machine, usually had actors who

0:31:00.440 --> 0:31:02.720
<v Speaker 1>would say, I want to make a program that does

0:31:03.560 --> 0:31:07.120
<v Speaker 1>desired outcome number one, and in order to do that,

0:31:07.160 --> 0:31:10.040
<v Speaker 1>I'm gonna code it this way. And it may not

0:31:10.120 --> 0:31:13.160
<v Speaker 1>be the most direct or elegant route. It may be

0:31:13.320 --> 0:31:16.160
<v Speaker 1>kind of cluji that you make your way through there

0:31:16.160 --> 0:31:17.760
<v Speaker 1>and you finally get to where you're going, but you

0:31:17.800 --> 0:31:20.800
<v Speaker 1>took the path less traveled. Robert Frost would have loved

0:31:20.800 --> 0:31:24.480
<v Speaker 1>your computer program. But uh yeah, you know that a

0:31:24.480 --> 0:31:26.520
<v Speaker 1>lot of hackers learned how to program this way. They

0:31:26.520 --> 0:31:28.840
<v Speaker 1>would have their their set outcome and they would program

0:31:28.840 --> 0:31:30.520
<v Speaker 1>their way to it, but the code might not be

0:31:30.600 --> 0:31:34.840
<v Speaker 1>the most elegant. So uh yeah, we we should mention

0:31:34.920 --> 0:31:39.440
<v Speaker 1>to the object oriented type programming languages, which is one

0:31:39.480 --> 0:31:42.640
<v Speaker 1>of the more modern I would say phases of programming

0:31:42.640 --> 0:31:46.280
<v Speaker 1>and more common today. Um not just to skip over

0:31:46.280 --> 0:31:48.360
<v Speaker 1>any others, I know there's probably other a couple other

0:31:48.680 --> 0:31:50.720
<v Speaker 1>of the earlier variety that you would like to mention.

0:31:50.920 --> 0:31:52.800
<v Speaker 1>I've got one that I'll talk about at the end.

0:31:53.080 --> 0:31:54.960
<v Speaker 1>But um, but that's but it sort of builds on

0:31:55.000 --> 0:31:58.640
<v Speaker 1>that idea basically that you are. It's a way to

0:31:58.680 --> 0:32:03.280
<v Speaker 1>manage how complex your programming is getting. Yeah, Usually if

0:32:03.320 --> 0:32:06.080
<v Speaker 1>you were to create let's say you create a program

0:32:06.280 --> 0:32:10.120
<v Speaker 1>in some and one that's not an object oriented programming language,

0:32:10.800 --> 0:32:12.880
<v Speaker 1>you have this for example, Yeah, you have the set

0:32:12.920 --> 0:32:15.880
<v Speaker 1>of data, and the entire program has access to that

0:32:15.960 --> 0:32:20.000
<v Speaker 1>same set of data. With object oriented programming, you actually

0:32:20.040 --> 0:32:24.760
<v Speaker 1>specify in which cases certain certain data gets used and

0:32:24.800 --> 0:32:28.440
<v Speaker 1>how it is used. So you have very specific methods

0:32:28.600 --> 0:32:30.959
<v Speaker 1>of dealing with that data and they can only be

0:32:31.040 --> 0:32:36.040
<v Speaker 1>used in that in that scenario within a program. And

0:32:36.120 --> 0:32:39.440
<v Speaker 1>this kind of cuts down on the possibility of having

0:32:39.600 --> 0:32:43.200
<v Speaker 1>these weird coding errors because you you know, because of

0:32:43.200 --> 0:32:46.880
<v Speaker 1>the rules of the programming language, you cannot misuse data

0:32:47.880 --> 0:32:52.200
<v Speaker 1>at least in theory. Give a person enough time and

0:32:52.240 --> 0:32:55.880
<v Speaker 1>there will find a way, right. But you might be

0:32:55.920 --> 0:32:57.480
<v Speaker 1>able to speak more to it than I can. Like,

0:32:58.040 --> 0:33:02.200
<v Speaker 1>my knowledge of programming is really from an academic standpoint,

0:33:02.240 --> 0:33:04.120
<v Speaker 1>but I don't have a lot of experience with it.

0:33:04.240 --> 0:33:07.480
<v Speaker 1>So did you want to elaborate anymore? I honestly, that's

0:33:07.480 --> 0:33:09.240
<v Speaker 1>about as far as I can get in depth for

0:33:09.320 --> 0:33:13.000
<v Speaker 1>object oriented programming, right right, Well, it's it's hierarchical and

0:33:13.080 --> 0:33:17.280
<v Speaker 1>it it basically it's a lot more elegant simply because

0:33:17.320 --> 0:33:18.720
<v Speaker 1>and I don't want to get the idea that I'm

0:33:18.760 --> 0:33:21.640
<v Speaker 1>a master program or anything like that, but it is

0:33:21.680 --> 0:33:24.800
<v Speaker 1>fascinating to be able to build this yourself. It's it does,

0:33:24.920 --> 0:33:28.840
<v Speaker 1>as you said, get into that hacker uh philosophy, it's not.

0:33:29.080 --> 0:33:31.480
<v Speaker 1>It's about taking things apart and trying to make something

0:33:31.760 --> 0:33:35.800
<v Speaker 1>better with it. And of course those the people who

0:33:36.120 --> 0:33:40.480
<v Speaker 1>hack into networks are doing using the same kinds of

0:33:40.480 --> 0:33:43.960
<v Speaker 1>tools for purposes that may or may not be illegal,

0:33:45.120 --> 0:33:49.600
<v Speaker 1>probably are not necessarily moral, all infiltration and manipulation, but

0:33:49.680 --> 0:33:52.400
<v Speaker 1>of course you know they're the ones who get all

0:33:52.440 --> 0:33:55.080
<v Speaker 1>the pressed, so that that that's where the negative connotation

0:33:55.080 --> 0:33:57.600
<v Speaker 1>for hacker gets in. But yeah, I mean this is

0:33:57.920 --> 0:34:01.800
<v Speaker 1>these these are the more sophisticated languages it you see today, Um,

0:34:01.920 --> 0:34:05.080
<v Speaker 1>you know, stuff like C plus plus uh. Simula actually

0:34:05.120 --> 0:34:08.240
<v Speaker 1>was the first, according to Britannic in nineteen sixty seven.

0:34:09.680 --> 0:34:12.160
<v Speaker 1>But you know there are others. You know, Java, Let's

0:34:12.200 --> 0:34:15.719
<v Speaker 1>say I thought Java was at least a semi object oriented. Yeah,

0:34:15.760 --> 0:34:19.120
<v Speaker 1>programming language and Python. There are many many others. I

0:34:19.160 --> 0:34:21.480
<v Speaker 1>know that you are interested in one of them, just

0:34:21.560 --> 0:34:25.520
<v Speaker 1>as from a historical standpoint, it's a it's a governmental language,

0:34:25.600 --> 0:34:27.320
<v Speaker 1>is A yes, it is. That was the one that

0:34:27.360 --> 0:34:29.720
<v Speaker 1>was going to mention. Yeah. Ada is the programming language.

0:34:29.719 --> 0:34:31.719
<v Speaker 1>It was commissioned by the Department of Defense in the

0:34:31.800 --> 0:34:34.879
<v Speaker 1>nineteen eighties, and the reason for commissioning it was they

0:34:34.920 --> 0:34:39.200
<v Speaker 1>wanted to have, uh, their own computer programming language for

0:34:39.280 --> 0:34:42.560
<v Speaker 1>their their systems. And Ada is kind of a descendant

0:34:42.680 --> 0:34:50.480
<v Speaker 1>of the Pascal language. Um, you, miss Lovelace. It's not

0:34:50.800 --> 0:34:53.680
<v Speaker 1>a lot of people's favorite language. I understand it can

0:34:53.719 --> 0:34:57.839
<v Speaker 1>be a little tricky at times, um, but you know,

0:34:58.560 --> 0:35:01.399
<v Speaker 1>it's it's funny shifting between languages. Uh. You know, I'm

0:35:01.440 --> 0:35:04.759
<v Speaker 1>also trying to learn Php at the same time, and

0:35:05.400 --> 0:35:09.120
<v Speaker 1>some of the constructs in PHP are completely removed in

0:35:09.160 --> 0:35:12.239
<v Speaker 1>Python as I'm learning, and that makes trying to learn

0:35:12.239 --> 0:35:15.160
<v Speaker 1>two languages simultaneously a little daunting. It's kind of like

0:35:15.239 --> 0:35:20.240
<v Speaker 1>learning two languages that are related but not perfectly in sync.

0:35:20.280 --> 0:35:23.640
<v Speaker 1>Like if you were learning say, French and Italian, that

0:35:23.680 --> 0:35:25.880
<v Speaker 1>would be fairly easy. The rules, the rules are very

0:35:25.920 --> 0:35:31.160
<v Speaker 1>similar and right right, but French and Latin might be

0:35:31.200 --> 0:35:35.000
<v Speaker 1>a little more challenging because you have cases in Latin

0:35:35.120 --> 0:35:40.040
<v Speaker 1>that are no longer used in modern French speech. So yeah,

0:35:40.160 --> 0:35:43.399
<v Speaker 1>the further away you get from that common well, in

0:35:43.400 --> 0:35:46.560
<v Speaker 1>this case, Latin is the common ancestor, Latin is the

0:35:46.600 --> 0:35:49.839
<v Speaker 1>ancestor to French. But then you can go uh all

0:35:49.880 --> 0:35:52.359
<v Speaker 1>the way out and say French and Chinese, in which

0:35:52.360 --> 0:35:55.520
<v Speaker 1>case there's no, there's no common ground. No, you don't

0:35:55.560 --> 0:35:58.280
<v Speaker 1>even you're not even using the same symbols to represent

0:35:58.360 --> 0:36:02.279
<v Speaker 1>words Latin and old fresh in for example, that's for

0:36:02.400 --> 0:36:04.879
<v Speaker 1>my that's for my old English peeps. I was gonna say,

0:36:04.880 --> 0:36:06.720
<v Speaker 1>you had to bring the Frissian in it. That loss

0:36:06.800 --> 0:36:12.600
<v Speaker 1>god kinning, y'all, that's how I roll Old English style.

0:36:13.080 --> 0:36:15.879
<v Speaker 1>Um so, so how are we doing on time? Where

0:36:15.960 --> 0:36:17.920
<v Speaker 1>we need to wrap this up? So yeah, this is

0:36:17.960 --> 0:36:21.160
<v Speaker 1>a This was our overview, and we will probably at

0:36:21.200 --> 0:36:24.719
<v Speaker 1>some point go into more depth on specific programming languages,

0:36:24.760 --> 0:36:28.120
<v Speaker 1>maybe talk about their development and and one exactly it

0:36:28.200 --> 0:36:32.120
<v Speaker 1>means to program in those languages. Yeah, yeah, that was that.

0:36:32.239 --> 0:36:34.680
<v Speaker 1>This is another one's topics that's kind of difficult for

0:36:34.800 --> 0:36:37.359
<v Speaker 1>us to tackle in a lot of depth because there

0:36:37.480 --> 0:36:40.400
<v Speaker 1>is a lot of there's a lot of breadth to it.

0:36:40.840 --> 0:36:43.239
<v Speaker 1>There's a wide for I mean even stuff like HTML,

0:36:43.719 --> 0:36:46.960
<v Speaker 1>which which is isn't really a programming language, a markup

0:36:47.239 --> 0:36:51.120
<v Speaker 1>markup language, but it shares some similarities to programming languages

0:36:51.160 --> 0:36:54.080
<v Speaker 1>because it has sets of instructions that tell a computer

0:36:54.239 --> 0:36:57.480
<v Speaker 1>how to do certain things right. And it's for somebody

0:36:57.480 --> 0:37:00.360
<v Speaker 1>who might be tempted to try programming but be afraid

0:37:00.360 --> 0:37:03.160
<v Speaker 1>of it, and he really shouldn't be, uh, but it

0:37:03.280 --> 0:37:04.680
<v Speaker 1>might be a way to get your feet wet, to

0:37:04.719 --> 0:37:06.640
<v Speaker 1>at least get an idea that, hey, this is what's

0:37:06.640 --> 0:37:08.920
<v Speaker 1>going on in the back end, but when it's on

0:37:08.960 --> 0:37:12.040
<v Speaker 1>the front end, it looks completely different. It looks polished.

0:37:12.080 --> 0:37:14.359
<v Speaker 1>You don't see any of this stuff. What's that's a

0:37:14.360 --> 0:37:18.880
<v Speaker 1>lot like what actual computer programming is. Like. Yeah, so yeah,

0:37:18.920 --> 0:37:20.520
<v Speaker 1>I'll tell you what. Why don't you let us know

0:37:20.640 --> 0:37:23.480
<v Speaker 1>on Twitter or Facebook if you have specific languages or

0:37:23.480 --> 0:37:27.719
<v Speaker 1>touch languages, maybe we can revisit it in more detail. Um,

0:37:27.760 --> 0:37:29.759
<v Speaker 1>but yeah, I would encourage people to at least try

0:37:29.760 --> 0:37:31.839
<v Speaker 1>it out because it's it can be a lot of fun,

0:37:31.840 --> 0:37:33.840
<v Speaker 1>and it could be extremely frustrating. But if you like

0:37:34.600 --> 0:37:37.200
<v Speaker 1>frustrating things, that are fun, programming might be for you. Yeah,

0:37:37.280 --> 0:37:39.080
<v Speaker 1>just just remember, at least you don't have to worry

0:37:39.080 --> 0:37:42.160
<v Speaker 1>about punch cards and getting punch cards out of order.

0:37:42.320 --> 0:37:44.239
<v Speaker 1>But we talked about punch cards in the past, so

0:37:44.400 --> 0:37:46.440
<v Speaker 1>that's why I felt good about We felt all right

0:37:46.480 --> 0:37:49.640
<v Speaker 1>about skipping over that. We didn't talk about compilers either. No, no, no,

0:37:49.719 --> 0:37:52.360
<v Speaker 1>But there's so much. I mean, there are entire college

0:37:52.400 --> 0:37:55.719
<v Speaker 1>courses that are based around just the principles of programming

0:37:55.760 --> 0:38:00.600
<v Speaker 1>language and college degrees exactly. So coming it all up

0:38:00.600 --> 0:38:02.640
<v Speaker 1>in a half hour podcast or in this case, a

0:38:02.760 --> 0:38:06.160
<v Speaker 1>thirty eight minute podcast is a little challenging. So if

0:38:06.200 --> 0:38:08.640
<v Speaker 1>you guys want to know more about specific programming languages,

0:38:08.680 --> 0:38:10.840
<v Speaker 1>like let's said, let us know on Twitter or Facebook

0:38:10.880 --> 0:38:13.560
<v Speaker 1>that are handled. There is text stuff h s W,

0:38:14.000 --> 0:38:16.400
<v Speaker 1>or you can send us an email and address is

0:38:16.560 --> 0:38:19.839
<v Speaker 1>tech stuff at how stuff works dot com. Happy three

0:38:19.920 --> 0:38:23.960
<v Speaker 1>hundred episode Chris, Happy three hundred to you too, Jonathan,

0:38:24.280 --> 0:38:26.640
<v Speaker 1>and we hope to talk to you guys again three

0:38:26.680 --> 0:38:32.360
<v Speaker 1>hundred more times really soon for moral news and thousands

0:38:32.360 --> 0:38:34.600
<v Speaker 1>of other topics. Is it how stuff works dot com.

0:38:34.800 --> 0:38:37.480
<v Speaker 1>To learn more about the podcast, click on the podcast

0:38:37.640 --> 0:38:41.160
<v Speaker 1>icon in the upper right corner. Of our homepage, The

0:38:41.239 --> 0:38:44.240
<v Speaker 1>How Stuff Works iPhone app has arrived. Download it today

0:38:44.480 --> 0:38:51.760
<v Speaker 1>on iTunes, brought to you by the reinvented two thousand

0:38:51.760 --> 0:38:53.960
<v Speaker 1>twelve camera. It's ready, are you