The History of Programming Languages Part Two - podcast episode cover

The History of Programming Languages Part Two

Aug 02, 201742 min
--:--
--:--
Download Metacast podcast app
Listen to this episode in Metacast mobile app
Don't just listen to podcasts. Learn from them with transcripts, summaries, and chapters for every episode. Skim, search, and bookmark insights. Learn more

Episode description

How have programming languages evolved over time? What was wrong with the old ones? How are more recent languages different from the ones first developed?

Learn more about your ad-choices at https://www.iheartpodcastnetwork.com

See omnystudio.com/listener for privacy information.

Transcript

Speaker 1

Text with technology with tech Stuff from stuff works dot com. Hey there, and welcome to tech Stuff. I am your host, Jonathan Strickland. I'm a senior writer with how stuff works dot com, where we try to demystify the universe one topic at a time, and we are going to continue our story about the history of programming languages. In our previous episode, we looked at the history of computers leading up to the development of two of the earliest programming languages,

for Tran and Kobol. Technically there was another language that is considered to be the earliest or the second earliest um and really one more that's technically earlier than both of those as well, but it wasn't known about outside of Germany for the longest time. We'll cover all of that in this episode, but I'll have a slightly different

structure from the last one. So in the last one, I try to stay on a roughly chronological path, going year by year talking about developments as they happened in

actual history. But with programming languages that can get really confusing, and it also requires lots of jumping back and forth between the different families of programming languages because while certain new ones were starting to emerge, older ones were continuing to evolve, So I might end up saying, well, in nineteen seven, de Bah this programming language hit its fifth version, whereas this other one came out for the first time, and this other one stopped being used, and it just

gets really messy. So I'm going to probably concentrate more on specific programming languages and specific groups and follow their paths down before making a jump back to a different language. I'll also do my best to explain some of the general concepts in programming. Um. There are way too many individual programming languages to go into detail in a single episode.

It would take lots of episodes to talk about all the different programming languages, and also considering that most of them have multiple versions or generations of the programming language, some of which are radically different from preceding versions, it just would be too difficult for me to go in for each one. So we're gonna We're gonna do our

best and cover it from a more high level perspective. Now, in the last episode, I did mention a guy named Conrad Zeus who developed his own computers in Germany independently of any of the work going on anywhere else. He also independently made his own programming language called plunka Cool, but this was virtually unknown outside of Germany for several decades.

The programming language is remarkably prescient, but had no real effect on the rest of the evolution of programming languages because no one in the Western world, and really Germany's in the western world, no one in that North America knew about it, and that was where a lot of this early work in programming languages was coming from. No One in the UK knew about either, and that's where

a lot of the other work was coming from. So it was an amazing achievement and I want to make sure that we acknowledge it, but it's not something that ties into the rest of our story directly. One other thing I should mention is that in the last episode are really led up to the development of four Tran and Cobal, which were two important early programming languages. Four Trand was and is still used in scientific applications, while

Cobal became the programming language of choice for businesses. But there are other languages that also popped up around that same time that are unrelated to either of those, so they don't branch off from four tran or COBAL. They

are independent programming languages, and one of those is Lisp. Technically, it was, at least by most accounts, the second programming language if you put aside Zeus's work and you look at four trand as being the first programming language, LISP if you're looking at pure publication years is the second one, and the name stands for List Processor Lisp l I s P. It was developed by John McCarthy at Dartmouth

and M I. T in the mid nineteen fifties. The first reference manual was published in nineteen sixty and it's a programming language that is based on recursive functions, which is a function that appears in its own definition, and this sets it apart from four trand. In the Ford Trend programming language, you can view a program as a sequence of steps that a computer is supposed to take, sort of like a to do list, like do this, then do that, then do that, etcetera, etcetera, all the

way down the line. A Lisp program is a function

applied to data. It can also use its parenthetical notation to represent actual data, which meant Lisp programs could operate on other programs as data and it would become one of the most important programming languages for artificial intelligence, partly because uh, it was a a learning program that a lot of people were using in order to do research and development in ai UM and it was a computer program capable of learning things that could be based on

on Lisp as a self modifying program because I had that recursive nature. That's what allows it to be self modifying. One interesting aspect of Lisp is that when you type out the code, you nest functions inside of parentheses, So you might end up having a whole mess of parentheses housing a series of functions that would be performed on a specific data set. And it sounds very similar to the way I tend to write. I like parenthetical asides, perhaps a bit too much. Lisp was a more specialized

language and more abstract than other high level languages. And remember a high level language is one that is easier for humans to comprehend. It is further removed from the machine code that's actually running on the computer hardware itself, and then you have some sort of process in between the high level language and the machine code that makes it understandable to the machines. So humans are not great

and understanding machine code. It is pretty hard to program and not impossible, but very challenging, and machines can't understand high level languages. Uh. The languages are our way of making it easier for us to work with computers. Now, LISP sees a great deal of application in the world of artificial intelligence, but it's not used extensively outside of that field. That doesn't mean that no one else uses it, it's just not as common as other forms of programming

languages for other applications besides AI. Lisp would inspire Seymour, Papert and m I. T Research, a researcher rather to develop another language called Logo l O g O and that was meant to be an accessible programming language that kids could learn to code in. It used graphics and a simple set of rules to encourage learning. Another offshoot of LISP was Scheme, which is frequently used in college level coding classes to teach some of the basic on

steps of programming. So you'll find that among programming languages there are several that were invented specifically to help people understand the concepts that go into various coding philosophies or paradigms. There are different approaches to coding, and some programming languages are are more appropriate for certain philosophies than others. Uh, there are a lot of languages that you can use various approaches to programming. You don't have to, you're not

nailed down to a very specific approach. But there are some that just lend themselves better to a certain process versus another, And a lot of them were designed by educators who wanted to encourage people to start thinking in ways that would develop into good programming practices, and then they would graduate on to using more robust programming languages. There are actually some programming languages that aren't really meant

for real world use. They're really meant just as a means of understanding the basics of programming itself and getting a grasp on computer science. Another programming language that emerged shortly after Lisp for Trand and cobol was a p L. And a p L is an acronym, and it or initialism if you prefer. Really it's an initialism and it stands for a programming language. It seems pretty straightforward. You'll notice that some folks like to name their programming languages

very generic things. The creator of a p L was Kenneth e Iverson. A p L used symbols to represent functions and operators, and the nice thing about that is that it helped make the code more efficient and concise. You didn't need as much code to represent the functions you wanted to run with any given program. So one branch of a p L is sharp a p L. This was a variant that was designed by the company I P. Sharp Associates, and it added some more functional to a p L enough to be considered its own

programming language. So not just a variation, it's really its own language and its own right. Programmers would create other programming languages that did not depend directly on these early ones, but they served. These early languages served as the foundation for several others. In some cases they inspired people to make new programming languages, and in other cases they themselves actually were the foundation for specific uh new implementations of

programming language. There's so many variations that I can't list them all even in a series of podcasts unless I were just to rattle off names, and that would have no meaning whatsoever. So I'll focus on some of the more prominent languages and their variants, and we'll start with for TRAN, the programming language made it much easier to program calculations for computers, and it removed the need to work in machine code or assembly language. Four trans launched

in nineteen fifty seven. The basic language received several updates. For Tran two came out in nineteen fifty eight and introduced some new features, such as the ability of programmers to create subroutines and functions, which meant they could use the same code repeatedly in future programs or within the same program, and it saved a lot of time there was no need to reinvent the wheel with every implementation. Other updates would follow. The first truly machine independent version

of four trand came out in nineteen sixty one. It was four TRAN four. This was the first version that could run on different computer architectures, so that the same program created in four TRAN four would run across different machines. But this wasn't yet a standardized language unrelated to any

specific type of computer. It still was limited to a family of architectures, but that would change with the next version of four TRAN in nineteen sixty two, you had a group called the American Standards Association, and they created a set of standards for the next round of programming languages, and the goal was to make them architecture agnostic. They didn't want programmers to have to reinvent their programs with

every different architecture of computers out there. To do so would just mean that you would write the same program and then have to rewrite it and rewrite it again for every single different architecture you encountered. The language to emerge from that process was four TRANS sixty six. Meanwhile, other programming languages, including several I haven't mentioned yet, we're leaving for TRAND behind because really for TRAND was still

kind of limited in what it could do. It was good at what it could do, but it couldn't it was it was like a very relatively narrow band of applications. And over the course of several years, computer programmers work to build out more functionality into four TRAN, including creating the ability to make true block if statements and direct

access input output functions. That result was four TRANS seventy seven, which became the most widely used programming language in the world, and there are still examples of code written in four trans seventy seven today. Forty years later, four Tran ninety

was the next version of Pure four Tran. It was created to again address some of the shortcomings of Fortran compared to other programming languages, such as the ability to allocate memory dynamically, and it was published as a standard by the International Standards Organization in n and there was one more version in N called four Tran I s

O for Tran also spawned a few other languages. One notable family was the al Goal series of languages a l G O L. Like four Tran, al Goal founded its greatest applications and scientific calculations, that's really where it was used for the most part. It introduced a block structure in which coders could insert a block of statements for the scope of variables within the code, and it also incorporated recursion, which is the ability of a procedure

to call upon itself. UH. It never really reached commercial success, but it had a profound impact on people developing their own programming languages. So in other words, it wasn't so compelling as to get universal adoption, but it definitely inspired a lot of programmers to give it a world and to then incorporate some of those elements into their own programming languages later on. Next, we've got pl slash one

PL one programming language. This was from George Raydon, a computer scientist who held degrees from Brooklyn College, Columbia University in the City University of New York. This was a real hybrid language. At borrowed elements from four TRAN, from cobol and from ALGOL. The name stands for programming language PL one. It's pretty straightforward. IBM would take PL one and mush mush mush it into p LS. This would remain ibm s programming language of choice until the C

programming langue wages came along a bit later. The PL one format allowed for more complex processes without the need to build up an enormous amount of code, So in other words, you could use the code to execute a bunch of different operations rather than building each of those operations up from more basic components. It was not only used in scientific and business applications, but also data processing, so we're starting to get into some more general purpose

computing at this point. Keep in mind, the computers well before the personal computing age. They tend to be very specific use machines. They weren't necessarily meant to do lots of different things. They were built for specific purposes, and therefore a lot of these programming languages were tuned to those specific purposes. You didn't have a lot of general purpose computing in those early days. But that's it for the direct For trend descendants, we'll talk about Cobal just

really briefly. Like for trand Cobal would evolve over time. There were versions like Cobal six D one and see Cobal seventy four and see cobalight five O O or object oriented Cobal. I'll talk about object oriented programming a bit later in this episode to explain what that actually means.

And Cobal two thousand fourteen. According to the Gartner Group, eighty per cent of the world's business runs off Cobal code, so very influential, and keeping in mind it was like the third big programming language to emerge, it's pretty impressive. So that's the basics for the foundation of programming languages early early on, and the next section I'm going to look at some of the big programming languages that followed

and what those are intended to do. Why are these programming languages in the first place, Once we established them, why did we need more? We'll look at that in the second but first let's take a quick break to thank our sponsor. You know, I I noticed that I've used the word basic to describe a lot of things in this podcast, so I guess it's a good time

to talk about the programming language Basic. Thomas E. Kurtz and John G. Kimeny, students at Dartmouth College that designed the programming language, and they had the intent to create one that was easier to code in the earlier languages. So before Basic, most languages required a pretty strong grasp on mathematics. So in fact, mostly early programmers and computer scientists like Grace Hopper, you know, the person who we credit with coining the term computer bug. She was a mathematician.

In fact, that was what her interest was in. She didn't want to be known as a programmer. She was interested in mathematics, and that's what a lot of the earlier programs were. They were mathematicians. But not everyone can have that sort of grasp on very complex mathematics. So basics design meant that you didn't have to be a math whiz to learn how to build a program. I'm personally thankful for it because that's the programming language I

have the most direct experience in. The language did have some hefty level limitations, but it wasn't designed to be the last language you'd ever need to learn. It was really to get you into programming. The name stands for something. It's not just a word, it's actually again, and it's an acronym. It's beginners all purpose symbolic instruction Code Basic. The initial version of Basic debut in nineteen sixty four.

A decade later, Bill Gates and Paul Allen would offer up a version of Basic as one of the first products from a little company they founded called Microsoft. Basic was also the language of the Apple too. That particular variant was integer Basic, but these were all from the same family. Basic taught students how to think in terms of logical progression to design code that would produce a

desired result. Typically, you'd begin each line of code with a number to designate that line, to say what order that goes in as far as the order of operations. So for example, I might type one zero to mark the first line of code, and then I would follow that with some sort of command, so would be one zero space something for example cls, which would stand for a clear screen. Then I could follow that with the next line of code, which would begin with a new

number like to zero to zero. I might write print that tells the computer that the next thing I type in it will need to display or print out in some way, and I might put in quotation marks hello world. It's very common way of learning programming is doing your first Hello World. Then I could type in one more line of code, and I type in the number three zero's for our third line, and type in the word

end to end that program. So if I ran that program, it would clear the screen and then print the line hello world, and that's all it would do. Obviously, this is not the extent of what you can do in Basic. If it were, it would be a pretty useless language. You could add other elements, such as if then statements. You might ask for an input from the user, such as a line of code that prints the sentence would

you like to learn about tech stuff? And then another line that presents either a yes or no option to the user. You know, you could type a Y or an N. Your if then statement would then have a branching pathway. So within your code you would have different lines that would represent what happens depending upon what the user did. So, if the user typed in a why, you might then have a bit of information about tech stuff, saying it's a totally awesome podcast hosted by a groovy

dude named Jonathan Strickland. If you typed in and it would say, what's your problem? Man? You want to know about tech stuff? It's pretty awesome. I think you need to know more. If you typed anything else, you might get a message saying I'm sorry, man, I totally don't understand. What the heck are you trying to say? Those are those if then statements. If user types this, then go to this other line of code. Very basic idea, no pun intended. In programming in the late nineteen sixties, a

new programming language created a revolution in programming. And it's an important language, though one that I think most non programmers haven't really heard about. It's small Talk. That's something that any computer science major has likely studied at some time or another. But why was it so important? Well, small Talk created a new paradigm for programming. It was an object oriented programming language, and it began as a

project at Xerox Park. Now that's the same research and development branch of Xerox that brought us tons of other stuff like the graphic user interface, the Gooey or the virtual machine or the mouse. So what exactly does it mean to be an object oriented programming language? What is an object in programming? Well, an object can be many things, including a function, a data structure, a method, or a variable.

Small Talk incorporated this concept and also included a related one called inheritance, which allows you to make a subclass of an existing object. This is useful if you're working with variations on the same basic structure. An inherited subclass will initially be identical to its parent class. So let's say you've created an object and then you create uh and you know, use inheritance to create a subclass of

that object. At first, it's going to be identical, but then you can make changes to the subclass that will not change the parent class of object. And from a programming perspective, this makes it easier to build complex code because you don't need to rebuild the entire object each time. You just take that you make a subclass or you implement a subclass that you've already established. Objects have two facets to them. They have a state and they have

a behavior. So it's easier to think about this if we use an analogy and think about a physical object, which can be anything. Really, the analogy can be a little helpful. Let's let's think of a cat. First. Of all, cats would hate it if I called them objects, but for this purpose we're gonna refer to cats. So cats have numerous states. One state for a cat might be the breed of cats. So is it a tabby cat? Is it a Persian? Is it a Siamese? That is that cats state, and it also has a behavior like

purring or treating you with utter contempt. You can describe this object, the cat, by its state and by its behavior, so it is uh the same with objects and object oriented programming. You can describe them by their states and behavior. Objects store states and what are called fields or variables. These include all the possible states for that object. The behavior of objects is expressed as methods or functions, and um when they are applied to it. The methods operate

on an objects internal state. One of the big benefits of object oriented programming is the source code for any given object is independent of that of all other objects. They are their own entities. This makes objects modular, and you can easily pass an object around a system because it's not directly entwined with everything else. Now, in the real world, this is easy for us to imagine. Right,

Let's say that you've got a baseball and a baseball bat. Well, those two things are are related in the sense that they're both used in a baseball game. But you can pick up the baseball and leave the bat behind. You can pick up the bat and leave the baseball behind. They are not directly connected to each other in any physical way. If they were directly connected, let's say the ball is glued to the bat, then there's no way to separate them without breaking it. You pick up the bat,

the ball comes with it, or vice versa. Well, that's the way it is with certain types of code that you cannot easily pick up and move blocks of code

around without affecting everything else because they're entwined. And object oriented programming, everything is more or less self contained, and it cleans things up extensively as a result, And there are a lot of other details about object oriented programming we could get into, but honestly, I'm no expert in it, and I'd likely get as much about it wrong as I would get right if I were lucky. So I'm

gonna leave off with this. Object oriented programming became very important, and his remains very important, and it was used in many different programming languages following small Talk, and there are plenty of programmers out there who will go so far as to say that no other programming language was as elegant in its implementation of object oriented programming as small

Talk was. Now, I am not qualified to confirm nor deny that assertion, but trust me, I read a lot of different research material for this episode, and whenever I came across anyone who considered themselves to be an expert in small Talk, they went on and on about how no one has ever done object oriented programming as elegantly as the original language did. Whether or not that's true or it's just nostalgia, I leave it for the experts

to decide, because honestly, it's beyond my understanding. Now. Another important programming language to mention is c that actually evolved from a language called CPL, which originally stood for a Cambridge programming language because it was developed at Cambridge University in the UK in the early nineteen sixties. But Cambridge

Programming Language eventually became Combined programming language. That was when Cambridge began to partner with programmers at the University of London and they began to collaborate on developing the language. So Cambridge became combined and it was still CPL. From CPL came B CPL, which was known as Bootstrap or Basic CPL. Then came the B programming Language in nineteen

sixty nine. That was a derivative of B CPL. So you had CPL, which spawned B CPL, which spawned B. But this one didn't come from Cambridge or the UK at all. Its home was Bell Labs and Ken Thompson and Dennis Ritchie created it. We actually did a tech Stuff episode about Dennis Ritchie a couple of years ago. He would go on to create C based on his work with B. The original purpose of the C programming

language was to re implement the Unix operating system. The language was robust enough to allow programmers to rewrite most of the Unix kernel in C, which was a remarkable thing. At the time, most OS kernels had to be written an assembly language, not in a programming language or a high level programming language. C also owes a lot to the al Ole family of languages, and C has influenced tons of other languages, including C plus plus, Java, JavaScript,

C Sharp, Pearl, PHB, and Python, among others. Now, in nineteen seventy, Nicholas Worth created a programming language as a teaching tool, and he wanted to create a language that students could easily grasp to get a handle on coding basics. He named his language after an inventor named Blaise Pascal, who is credited with inventing an early adding machine. So this language is of course known as Blaze. I'm kidding,

it's actually Pascal. If you've heard of the Pascal programming language, it's the one that Nicholas Worth made in nineteen seventy. His goal was to teach students to think in steps that would promote good efficient structured programming. Now, structured programming is a specific approach to programming and involves using subroutines and block structures to carry out instructions. It's intended to

help programmers build efficient, clean code. If you contrast this with the aproach of Basic, which creates lots of branching pathways with various go to statements, and in larger programs it can become a big, tangled mess that's difficult to follow. You know, you're tracing backward trying to find the line of code that leads you down a rabbit trail that eventually ends up with an error. It's tough to do

if you've got a really big program in Basic. So Worth wanted to have a programming language that avoided that sort of spaghetti style of coding and makes something much more clean and efficient. Uh. You don't want to make any mistakes when you're coding, but if you do make mistakes, you want to be able to track down where that mistake is so that you can correct it. And that was worth uh motivation. I guess I should say it's more difficult with programming languages that go all over the

place with their various jump commands structured programming approaches. Uh, end up discouraging that kind of that kind of thing. So in nineteen sixty three we get C plus plus, which I alluded to earlier. There's no C plus, just C plus plus. This is one also originated in Bell Labs. Yarn Strausstrop whose name I am certain I am Butchering built it by modifying the C programming language, and it became one of the most popular programming languages in the world.

It's the code behind some of the most popular software packages out there, like m S Office and Firefox Inn. We got the Pearl language p e r L. Larry Wall created it when he found limitations in the Unix operating system. Specifically, he wanted to extract some data from a report and discovered that Unix just couldn't really do what he needed it to do, so he decided to make his own programming language to make sure that sort of thing didn't happen, which seems perfectly reasonable to me.

PEARL stands for Practical Extraction Report Language and is also known for being utilitarian and practical. Pearl has evolved over time, even branching so that Pearl five and ROLL six are effectively two separate developing languages, both of which are evolving and both trace their history back. But they're different enough to be distinct languages. They're not not not like just

variations on each other. In n Guido van Rossum created the Python language, named after the English comedy troupe known as Monty Python. And some of you guys know, I did a Monty Python reference a few episodes back, and I was amazed at the response of how many people immediately recognized the one I was I was making. Well on uh, you guys. I am very pleased that you all are Python fans, well that all the ones who wrote into me are Python fans. And my hat is

off to you. Literally, as it turns out, I have taken off my hat now. Van Rowsom says that Python was largely borne out of boredom. According to the story, he was looking for ways to fill up the time during a Christmas holiday from work, so he sat down create a programming language, which seems like overkill to me. I think I could probably find other things to do, but then again, I'm not an expert in programming by

any stretch of the imagination. Python is a general purpose language that uses indentation to denote code blocks, and this was to improve readability so that instead of a mass of brackets or parentheses, you could quickly pick out code blocks by looking at the white space that was in the code itself. You just look for that white space

that would indicate where the block would begin. It's not the only type of programming language that does this, but many programmers say that Python is one of the more readable programming languages and a good choice for beginners who want to get into coding. Another interesting thing about Python is that supports multiple programming philosophies, so you can code

using a procedural approach or functional programming, for example. And Python has within it the ability to express concepts in fewer lines of code then some other programming languages, which makes it a little simpler to use. Well, we've got one more block of programming languages that we need to talk about before I do that. However, let's take a

quick break to thank our sponsor. So in you had a fellow named Yokihiro Matsumoto who took several programming languages, including Lisp, Pearl, small Talk, and more and effectively put them all on a blender, hit that that super blend button. You know, he's really shaking him up, and created a new language he called Ruby. Now. Matsumoto said his guiding principle was to create a programming language that made sense

and was easy for programmers to work in. He wanted a true object oriented language and felt that Pearl four and Python weren't measuring up in his estimation, and he was worried that too many programming languages were being built with the machines in mind. He was saying, these programming languages are being designed by people who want to take the you know, the most advantage of a machine's processing power. They want code that's going to be fast to execute

and efficient. But he said that that kind of code is not always the most user friendly or programmer friendly, and that could be really difficult to program in. So he said, you should put the programmer in mind first, not the machine. Worry about how easy it is to use before you worry about how quickly a processor is going to be able to handle the programming language. Uh. He says that otherwise your priorities are all whackadoodle, which

is me paraphrasing. He didn't actually say whackadoodle as far as I know. Within Ruby, there is a framework that's been used for building websites, and it is now known by its own name. It is Ruby on Rails. This is a set of rules meant to allow for the quick construction of websites, and it was actually extracted by David heine Meyer Hanson in two thousand five from a project he had created for his work at a company

called thirty seven Signals. So there are a lot of similarities between Ruby and Ruby on Rails, but Ruby on Rails is typically reserved specifically for website implementations. In the mid nineties, there was a web developer named Rasmus lard Orf who was not happy about the Pearl scripts he had to use in order to maintain his personal web page.

So as the mid nineties, the web was not old at this point, and he was thinking that this this series of Pearl scripts he had to use in order to create the functionality he wanted, it just wasn't working the way he wanted to. So he decided he would make a replacement for it, and that became the PHP language, which stood for Personal Homepage language now need to learn off. There was never any intention on his part to make

PHP and actual programming language. It was meant to run scripts to make it easier to maintain a web page and that was it. But he kept on adding functionality to it. It would get bigger and more robust, over time, and eventually it got away from him, and he actually once said he didn't know how to stop it from evolving into a full programming language. So chances are it's sky Net now. Meanwhile, over at Sun Microsystems you had James gos Ling leading a team of programmers and developing

what would become the Java programming language. It was originally intended as a programming language for interactive television set top boxes, so essentially it was a web TV programming language. Now, Java is a right once run Anywhere or war RA programming language w o r A. That means you should be able to build a program in Java and have it run on any Java supported platform with out the need to recompile it. One thing I find fascinating is that Java is a programming language that does not get

translated into machine code. Typically that's the way these high level languages work. You have to translate it, you have to use a compiler translated into what a machine can actually understand. But instead Java runs on top of a virtual machine. Again, this was something that was first established way back with small talk. But a virtual machine is is what it sounds like. It's like a simulated computer.

It It in turn runs on top of actual hardware, so Java runs on this virtual platform, not on the hardware underneath, and the virtual platform takes care of everything. Java tends to be used on the back end of the web, and it powers website functionality, so it's on the server side of the web world. And it's also a popular programming language for Android apps. It was named

after Coffee, which I approve of. It was also designed to make it easier for programmers to spot errors when they happen, since mistakes are bound to be made, and making it easy to find them speeds up the programming process. Java is often compared to see sharp because both languages follow a strict set of rules to discourage mistakes, so

you don't have as much flexibility. The rules are very, very strict, but once you learn those rules and you follow them, you're less likely to make errors that are going to turn your program into a gigantic mess. Uh. See Sharp, by the way, as always referred to as or sometimes referred to rather as Microsoft's Java. It was developed by Microsoft. It's not quite as versatile as Java when it comes to the WARA approach. It doesn't run on as many different platforms, as Java does. However, it

does work very well within Microsoft environments. Now, not long after Java emerged, the world got a chance to use Java script. And the two names make it sound like JavaScript maybe came from Java, or that they are closely related in some way and maybe they follow the same rules or have the same syntax. But that's misleading. JavaScript and Java are actually unrelated and have very different semantics.

It's an enormous headache if you're trying to explain to someone who doesn't know anything about programming that these two things that are named so similarly have no real connection with one another. Now, originally JavaScript was called Mocha. Brendan Ikes developed it over at Netscape as a client based language, meaning this was a programming language that we run inside web browsers rather than on the server side like PHP wood.

JavaScript was intended to make websites more dynamic and interactive, and many web based games are programmed using JavaScript. In fact, it's considered a core technology for the web, along with HTML and CMS, so much so that all modern web browsers support JavaScript without the need for an additional plug in. So while you might need a plug in for something like Adobe Flash, you typically don't need a plug in for JavaScript. It's built into the web browsers themselves. That's

how important JavaScript is now. This is just a small selection of some of the more popular programming languages out there, and programmers are creating new ones all the time. For example, one young programming language is Swift, which is published in two thousand fourteen. That's an Apple based programming language intended so that programmers can develop applications for iOS, mac os,

and other Apple operating systems and products. It's a successor to Objective C, which is the programming language Apple had been relying upon for its OS ten products. But that's it. That's all I've got for today. That's it, as in that's all I have not that's it, as in that's all the different programming languages. Again, there are lots of other programming languages. I touched on some of the most popular ones, like Java and Python, but there are tons

of other ones out there. And while they can seem intimidating to a newcomer, if you're just staring ing at a sheet of code and you have no grounding in it whatsoever, it's gonna look incomprehensible to you. It might seem like, how how could this be any easier to understand than machine code is? But honestly, all it takes is some effort to learn the various rules and the semantics and the syntax of these languages, and pretty soon you're gonna be able to make your own code if

you're so inclined. So if you're interested in programming, you really should pick up a book or two, especially on languages that sound interesting to you, and just dive into it. You'll learn a lot more about the various approaches to programming and the strengths and disadvantages of each one. And most programmers they tend to specialize in maybe one or two or maybe maybe three languages, and beyond that they typically have heard of and maybe worked with a couple,

but they don't have a real grounding in them. So that's perfectly fine. It happens you you find what works for you, what speaks to you, and go and explore it. It's a good way to learn more about the ways that we interact with our machines. You'll find out what fits your style, and you'll understand all those awesome programmer jokes that I still have to have people explain to me now. Guys, even though that wraps up this episode, it's not not time for me to say goodbye yet

because I have a question for you. Do you have anything you want me to talk about, because if you do, you need to let me know. Send me an email. The address is tech stuff at how stuff works dot com, or drop me a line on the Facebook's or the twitters tex stuff hs W as the handle I use it both of those for this show. You can watch me live on twitch dot tv slash tech Stuff. I record on Wednesdays and Friday's. Just go to twitch dot

tv slash tech Stuff. You'll be able to find the schedule right there and see when you can tune in to watch. You join the chat room. I like to chat with my viewers and find out what's going on in their lives, so be part of the conversation. I look forward to seeing you and I'll talk to you again really soon for more on this and thousands of other topics. Because it how stuff works dot com.

Transcript source: Provided by creator in RSS feed: download file
For the best experience, listen in Metacast app for iOS or Android