STUDY GUIDE
FOR LEARNING MODULE VI
SURVEY OF PROGRAMMING
LANGUAGES
THAT ARE ASSOCIATED
WITH THE WEB
Under construction!
Will be developed throughout the Summer, 1999.
INTRODUCTION
The sixth learning module is a concise summary of programming languages
in general and Web development languages in particular. Programming
Language design and comparisons of modern programming languages are huge
subjects; the following treatment barely "scratches their surface".
The main purpose of this learning module is to give the student a feeling
for what languages are used in Web site development and how they add sophistication
to Web sites. Consequently, section
1 summarizes the field of programming languages with the specific
purpose of providing a context within which you can learn about Web development
languages in the subsequent sections.
COMMENTS:
-
Follow the standard sequence of study:
After reading the introduction to the learning module, read its summary,
scan through the section and subsection headings, read the SAQs and TPQs,
and, finally, read the comments below before actually beginning the study
of the learning module.
-
It is extremely important to remember the
obvious, simple (but often overlooked) fact that computers do not understand
human languages. Therefore, to get a computer to do something
for us we must give it instructions in the only language it understands,
it own, "machine language", a binary language. Thus, from a simple
point of view, programming a computer involves writing specific instructions
in a programming language and having them translated into machine language.
-
A computer's machine language is characteristic
of its processor. Therefore, computers having the same kind of
processor (e.g. PCs with "Intel Inside") all use the same basic language
although different versions of a processor (e.g. Pentium II and Pentium
III) have different versions of that language. Most processor families
(e.g. Intel processors) are upward compatible which means newer processors
can read programs of the older processors, but the reverse is, obviously,
not possible.
-
One might wonder why developers don't learn
machine language so they can communicate with a processor directly, without
translation. Well, they do, expecially in the old days when programming
efficiency was essential with slow processors and limited memory.
However, although it improves computer efficiency, machine language
programming is very inefficient use of a developers time because programming
with 1's and 0's is very tedius, time-consumming, and error prone.
Usually (but not always!) the disadvantages of developer inefficiency
far outweigh the advantages of machine language efficiency, so most
software development is performed using human-oriented "high level" and
"very high level" languages which are subsequently translated into machine
language before they are executed.
-
With the exception of Java, a high level language,
virtually
all Web site development involves very high level languages because
they do not require the programming expertise that the lower level languages
do. There are two basic categories of software development environments
that make it possible for nonprogrammers to create software applications:
-
Authoring languages now have editors,
like Netscape Composer, that allow developers to design output directly
without having to write the actual code (e.g. HTML code).
-
Most very high level languages, and many high
level languages, have "visual programming" environments which are designed
to minimize the need for actual coding (writing in a computer language);
developers can choose from a selection of "software components"
and, like engineers, construct their software by draging and dropping the
components into a "software architecture".