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:

  1. 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.
  2. 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.
    1. 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.
    2. 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.
  3. 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:
    1. 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).
    2. 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".