Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Speaker 1 (00:04):
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
(00:26):
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
(00:47):
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,
(01:11):
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,
(01:33):
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
(01:54):
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
(02:15):
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,
(02:39):
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
(03:01):
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
(03:24):
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,
(03:45):
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
(04:08):
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,
(04:30):
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
(04:51):
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
(05:12):
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,
(05:34):
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,
(05:54):
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
(06:15):
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,
(06:37):
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
(06:57):
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
(07:19):
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
(07:43):
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
(08:04):
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
(08:25):
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
(08:47):
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
(09:10):
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
(09:31):
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
(09:52):
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
(10:12):
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.
(10:36):
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,
(10:59):
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
(11:20):
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.
(11:42):
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,
(12:03):
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
(12:23):
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
(12:46):
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
(13:09):
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
(13:29):
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
(13:52):
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
(14:15):
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
(14:37):
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.
(14:58):
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,
(15:21):
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
(15:41):
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
(16:03):
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
(16:25):
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
(16:47):
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
(17:08):
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.
(17:30):
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
(17:52):
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
(18:12):
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
(18:34):
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,
(18:55):
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
(19:15):
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,
(19:38):
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.
(20:00):
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
(20:23):
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
(20:47):
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,
(21:09):
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
(21:30):
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
(21:51):
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
(22:14):
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?
(22:36):
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.
(23:00):
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
(23:22):
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,
(23:43):
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,
(24:04):
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
(24:27):
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
(24:49):
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
(25:12):
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
(25:36):
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.
(25:57):
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.
(26:19):
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
(26:42):
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
(27:03):
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,
(27:27):
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
(27:47):
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
(28:07):
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
(28:30):
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,
(28:54):
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
(29:16):
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
(29:37):
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,
(29:58):
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
(30:19):
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
(30:43):
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
(31:05):
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
(31:27):
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
(31:47):
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
(32:08):
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
(32:30):
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
(32:52):
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
(33:14):
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
(33:36):
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
(33:56):
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
(34:18):
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
(34:39):
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.
(35:01):
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
(35:21):
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,
(35:42):
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
(36:04):
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
(36:25):
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
(36:45):
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.
(37:08):
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.
(37:31):
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
(37:53):
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
(38:15):
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.
(38:39):
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
(39:01):
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
(39:21):
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
(39:42):
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
(40:03):
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
(40:23):
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
(40:46):
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
(41:09):
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
(41:31):
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
(41:53):
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.