Main Points

Computers are a broad field, and only certain programming / coding languages are relevant for the internet. Here is a look at some of them and where a comparison of their characteristics compared with other languages.

Internet Language Chart

ABSTRACT

Language Type Examples of the Type Samples of the Language Used for...
Machine Language Binary 110010010000101 CPU (microchips)
Assembly and TPs Assembly, TCP/IP, SMTP, etc. LOAD R1,Y
netmask 255.100.255.0
fundamental programming, internet communications
Higher Level Languages C++, Java, Perl, etc. Let I=1 to 100.
X=X+1
writing programs for computers or the internet
Markup Languages (MLs) HTML, XML, DHTML, etc. <u>Underline this.<u>
<b>This appears in bold.</b>
writing webpages
Human Languages English, French, etc. I am.
Merci.
speaking in the US, UK, France, etc.

PRACTICAL

Machine Language

Computer chips recognize one and only one thing, binary numbers. It looks like a string of 1s and 0s, e.g. 110010011100001011000. There is no more abstracted language, pure math, which we humans now use.

On the few occasions that I saw my father, a programmer, work with Binary it was not to write programs but to fix errors in Assembly programs. This is actually a very important idea that will be useful for us later. While my dad was not comfortable enough to write programs in binary, he could look at the programs. By picking out bits and pieces that he understood, he could make sense and fix errors, in the small portions of code that he needed to. While the rest of us will never work in binary, that process will come up in HTML.

Assembly and TPs

Despite the romantic musings of some science fiction writers, no one programs in binary. For one thing, it’s ridiculously time consuming. The most "primitive" language that computer programmers might tangle with is called assembly language. Assembly uses words to describe each binary command, but you have to write out every baby step the computer chip will do. This is how you add two numbers in assembly. It does make sense but... yuck. We have more on Assembly if you're interested.

LOAD R1, X (Loads X into register 1)
LOAD R2, Y (Loads Y into register 2)
ADD R1, R2 (Adds register 2 to register 1)
STOR R1, X (Stores register 1 as X)

Transfer Protocols (TPs) are the most basic languages of the internet, the languages that let computers talk to one another. A line of TCP/IP, Transfer Control Protocol/Internet Protocol, might look like...

/etc/ifconfig ln0 `/bin/hostname'broadcast 240.66.42.105 netmask 255.100.255.0

If this is "easier" than assembly, the advantage is completely lost on me. The most important of these languages, TCP/IP, lets computers talk to one another. It's the foundation of the internet. There are many other TPs as well. One of the other most important tasks is sending email which is handled by SMTP (Send Mail or Simple Mail, depending on who you talk to). Retrieving email, confusingly is handled by a separate protocol, POP3, Post Office Protocol3. And sending files from one computer to another is handled by FTP, File Transfer Protocol. The list of transfer protocols goes on and on.

Higher Level Languages

Computer programmers spend their time programming in more sensible computer languages like BASIC or C++. While it’s difficult for a non-programmer to understand the program, it’s not hard to read. Most languages look like, Let I = 1 to 100. X = I + 3, which though simple, represent lines and lines of assembly code. Now exactly what that’s doing in the program, I’ve no clue but it does make sense to me as far as it goes. You can even learn to program them yourself, but it's as hard as picking up French or Spanish on your own. If you'd like to learn more about non-internet computer languages, click here.

There are also some internet programming languages that allow you to do interesting things over the web. Most webpages are written in HTML, described below, but anything that moves on a webpage or does something interesting has to be written in a higher level language. Java is the most common, but Javascript (surprisingly it's unrelated to Java) and Perl are also languages used on the internet. Java is used for small programs because the program is downloaded to your visitor's computer. (Depending on their security settings, some computers won’t let your website do this.)

People also have to have the Java plug-in downloaded to their browser to use it. This is a double edged sword, because it's an extra step your visitor has to do to see your webpage the way you want it, but in theory, your Java program will run on ANY computer PC, Mac, anything. That's pretty amazing for something as decentralized as the internet. On the other hand, Perl runs on your own computer, for example counters that tell how many people have been to a webpage are usually written in Perl. It takes up time on your own computer, but you don’t have to send as much data to your visitor making the page download faster. Both Java and Perl are written as separate programs; a line in your HTML webpage says to run the program. In contrast Javascript is just written in the middle of your HTML.

Markup Languages (MLs)

Almost all webpages are currently written in HTML (Hyper Text Markup Language). This is what we’ve been building up to. HTML is half way between the programming languages like C++, and human languages you use everyday. HTML looks like <b><u> this is underlined and in bold </u></b>. The things in brackets, < and >, are called tags; the tags are used to “mark up” what you want on your webpage. First, you write the text you want to appear on your webpage, and second, you add the tags you want to control how your webpage looks and where things go. Therefore, most of the HTML is just your normal written language. So if I want to say “This is my webpage.”, in HTML you start by writing out what you want to say...

This is my webpage.

Wait a second!? That’s it? How does the computer even know this is HTML? Most browsers would probalby get even this right, but since you asked. Now that you've written down all the words you want on your webpage, you start adding the tags necessary to make it appear the way you want it. The computer knows it's in html because you add...

<html> This is my webpage. </html>

These are the first and last tags in any webpage. A few HTML tags come by themselves, but just like most tags, these tags come in pairs; the second tag is the same as the first except for the "/" that's been added. HTML has only a little more structure. Here’s the simplest HTML webpage that actually says "This is my webpage."...

<html>
<head>
<title>
My Webpage
</title>
</head>
<body>
This is my webpage.
</body>
</html>

If you have more to say more than, "This is my webpage." You just keep writing. Anything between the <body> tags will appear on your webpage.

Spacing: Indenting the lines of code is the easiest way for me to keep track of my webpage and understand what I've written, but it's unimportant to HTML. You can just as easily write it this way...

<html> <head> <title>My Webpage</title> </head> <body> This is my webpage. </body> </html>

However in HTML, the tags need to be kept in sets or it may not display right, and indentation helps you keep track. The right way to organize tags and the wrong way look almost the same if you write them...

<head> <title> My Webpage </title> </head>

as opposed to...

<head> <title> My Webpage </head> </title>

However, lined up...

<head>
<title>
My Webpage
</title>
</head>

<head>
<title>
My Webpage
</head>
</title>

The first has tags that line up properly and the second immediately looks wrong. So since the computer doesn’t care, this is how I always do it. (MS Word and PageBuilder write pretty close to this kind of code.) Beyond this, if you're writing HTML yourself in Wordpad you don't NEED to know anything else. If you want what you've written to be displayed a certain way, then you can start learning extra tags that you want to use and gradually learn the little (or a lot) of HTML that you want to know. That's why HTML isn't too bad, because you don't have to care about 99% of the tags unless YOU CHOOSE to.

Now if you're using PageBuilder or Word, the story is a little different. You don't have to know ANY HTML, but there are certain things those programs don't do. The easiest thing to do is simply live with those limitations... However, like me you may decide you can't live without borders in PageBuilder, or HTML tables in Word. What MS Word calls a table is unfortunately totally different and causes problems if it gets too big. HTML tables are immensely powerful for building webpages; it's a critical flaw that Word can't use them.

They also throw a lot of garbage into your webpage: things you won't understand, things I don't understand, things you probably don’t want to understand. MS Word is especially bad. And while it's the first step into HTML programming you may decide you're willing to try just tweaking that page a little bit. (Be warned, as soon as you change a PageBuilder webpage outside of PageBuilder, you can never modify the page in PageBuilder again. Tables are the downfall of Word, THIS is the big problem with PageBuilder.)

Learning the little bit of HTML that you want to use is pretty easy. The hard part is finding where you should put it. (Especially in Word) Your entire webpage basically comes in between <body> </body> but beyond that you'll have to open the file in Wordpad and learn enough HTML to pick through the code that PageBuilder and Word have created. This is not as daunting as it sounds. Remember what I said about my dad fixing binary programs? You don't have to understand it. You just need to know enough to find the part you want to change, and if you have an HTML reference at your fingertips... like ours, you can muddle through. If writing webpages in HTML is like learning Spanish, this is like using a Spanish/English guide to ask where the bathroom is. It's something that's truly possible for you to do if you want to.

Human Languages

These are the languages that most naturally developed and which the human mind copes with best. Their use almost completely defines them; they are the languages created for their practicality. Parts of language that prove hard to use or aren't useful fall away, and parts that are easy or valuable are quickly assimilated by native speakers.