interactive.gif (47998 bytes)
3. History of HTML through version 3.0

Termwrld.gif (5559 bytes)The Web was originally created to speed communication between scientists.

The language of the Web, HTML (hypertext markup language), allowed them to publish research papers electronically, and afforded simple tags like <H1> and <H2>, or <B> and <I>, to dictate a page's structure and some formatting. Other tags, like the <A> anchor markup, allowed documents to contain links to other documents and planted the seed for interactivity on the Web. But hyperlinks fell far short of providing full two-way communication.

Before long, CGI (common gateway interface) and <INPUT> tags improved the quality of this dialogue, providing a means for users to pass data back and forth to a Web server. While a major step forward, this form of interactivity has one big drawback: It's slow and often requires multiple data trips across the Web from user to server before a transaction is complete.

The 3.0 versions of Internet Explorer and Netscape Navigator showed early signs of true user interactivity with added support for the <SCRIPT>  tag. Commonly referred to as client-side scripting,  this innovation allows Web pages to contain small programs written in JavaScript (IE also supports VBScript) that, like CGI, provide gateways between the user and the Web server. But scripting also provides client-side support for error messaging via pop-up dialog boxes or messages in the browser's status line. Scripts can also contain special subroutines, called event handlers, which the browser automatically executes when a user performs a keyboard or mouse action.

But client-side scripting has its own problems and limitations. Scripts can't access data stored on a server, so they can't perform data validation that requires access to customer or inventory files. Nor can they modify a Web page once it's been displayed.

Microsoft thought it had solved that last problem when it enhanced IE with support for embedded ActiveX controls. These embedded controls can take over a region of the browser's window and display information within it, respond to user input (and commands from scripts embedded in the Web page) and update an assigned portion of the page almost instantly. Unfortunately, ActiveX is limited by a number of factors, including file size, Wintel platform dependence, security concerns and lack of integrated support in Navigator (NCompass Labs' ScriptActive plug-in, however, can add ActiveX support to Navigator)

yellowsphere3.gif (1033 bytes)Isn't plain old HTML enough? Why do I need scripts or applets?

One of the most common misconceptions about Web design is that once you've learned HTML, you can create state-of-the-art Web pages. While a fundamental knowledge of HTML is essential (or how to use a WYSIWYG HTML editor), HTML itself was not created to build dynamic Web sites. HTML was designed to permit authors to mark up text to include word processing features (bold, italic, etc.) to overcome ASCII text limitations, add hypertext links to other documents or within documents, and to embed graphics or other multimedia components. As HTML has progressed, additional features have been added to the mark-up language, allowing more precise placement of tables, more use of colors and other design elements, etc., but the language itself does not allow true interactivity. The initial goal was simple: to create a proto-language for displaying documents that could be accessed on all computers (UNIX, IBM PC clones, Macs) by using one tool, a Web browser. If this sounds a bit like the promises now made by Java to offer a universal operating system that will run on any computer platform, it is. The holy grail of networked computing is the creation and adoption of an open standard that will allow all computer users to interact via the Internet, just like anyone with a telephone can call and talk to any other telephone user anywhere in the world.

An ongoing attempt to add greater flexibility to HTML is the use of plug-ins. With plug-ins software designers can create in formats not supported by HTML. However, the process requires downloading and installing potentially hundreds of plug-ins, all of which are periodically upgraded. Finally, most of these are various graphics, animation, and sound formats, intended to add multimedia support but not true interactivity.

To allow interactivity under a client-server model required the use of programming code (scripts). The generic name adopted for these scripts was Common Gateway Interface (CGI).

CGI scripts must be written in a language the server understands, allowing such functions as sending email, submitting forms, querying databases, credit card use, counting page visitors, etc. One of the most frequently used languages is PERL. PERL was originally written by Larrry Wall for the purpose of extracting data from text files, thus the name Practical Extraction and Report Language (i.e. PERL).   Perl is a cross between C and Basic since it uses some of both methods, i.e. some things that work in C will work in Perl and some things that work in basic will work in Perl but some things that work in Perl will work in neither C nor Basic. Actually, a CGI program can be written in any language that allows it to be executed on the system, such as:

CGI scripts allow a user to directly access a server, creating potential security issues.

An alternative to using scripts seemed impossible in 1995. However, there were some thinking about whether it is was possible to download interactive programs or applets via the Internet that would then run interactively on the user's computer. Given that only those on networks did not have bandwidth problems, any solution of this type would have to be simple and not require long download times. Sun Microsystems stepped forward with solution they named Java. At about the same time, Netscape was experimenting with adding support for a scripting language, Javascript, that would operate inside its browsers without an additional pull from the server. Microsoft had just discovered the Internet, but would soon offer next another alternative. It is to discussion of these innovations and their strengths and weaknesses that we now turn.

yellowsphere3.gif (1033 bytes)Is Java a true universal computer language?

Before discussing the emergence of Java, a short aside on the history of computer operating languages is required. While C and C++ became dominant programming languages, software creators faced growing problems trying to design programs which would run on multiple platforms. By the late 1980s, the computer world was split into a number of camps. These included IBM clone PCs running DOS, PCs build by Apple and Amiga running their own proprietary operating systems, workstations running various flavors of UNIX, and mainframes running a wide variety of operating systems but accessible to clients only by dummy terminals. In the 1990s, computer users would witness the emergence of a number of upgrades of Microsoft's GUI platform Windows, IBM's failed attempt to offer OS2 as an alternative to Windows, and continual upgrades of the Mac OS. While most of these platforms supported backwards compatibility, software developers struggled to keep up with all these changes.

The emergence of the Internet and HTML in the mid-1990s, offered the first real opportunity to reunite the computer world. However, HTML was never intended to be a software or development platform, only a document sharing mechanism. What Sun Microsystems envisioned was a programming language that could be supported by a stripped down operating system capable of being run on any platform from inside a Web browser. Sun struck a deal with Netscape to include Java support in version 3.0 of its browser and worked on their own browser, Hot Java. Installation of either browser set up the environment to run Java applets on your computer. The basic Java operating system files reside on your computer; when you hit upon a page which contains a Java applet, the computer uses both the downloading files and the residing Java files to execute the program.

The major change in using Java to write programs is its support for object-oriented programming.

Once an object has been designed it can be reused over and over again. This idea is now spelled out more fully in the use of JavaBeans to create complex reusable objects.    

 

The other stated advantages of Java are many:

Critics emerged rapidly. According to Jesse Berst, there are a number of myths about Java.

    1. Write once, run everywhere. Java's key promise. Fact: It's not true today and it may never happen. Applets that run fine on Windows 95 may not run at all on the Mac (or vice versa). And may run so slowly on 16-bit Windows, they become unusable. I'm still hoping we'll end up with Java virtual machines that are consistent across platforms, but right now we're still just wandering around.
    2. Businesses will rewrite their applications in Java. Of course not. Fact: We still have production applications running today in Fortran and Cobol. People hate to throw stuff away. And why should they?
    3. People will do everything new in Java. Every language has its strengths. Fact: Java will never be optimized for everything. Visual Basic, C++ and other languages will continue to thrive.
    4. Java is secure. Java is more secure than Microsoft's ActiveX. It is also more restrictive. Using the standard Java "sandbox," you can't cache downloaded Java applets on your local machine, forcing you to download the same Java applets over and over again. Fact: As Java is modified to allow local caching, local storage, and local printing, it will become less secure.
    5. Java is an open standard. Yes, Sun Microsystems has turned Java over to a standards body. But on a glacially slow timetable and in a manner that keeps all the control with Sun. Fact: Java is less open than Microsoft's ActiveX.

There is much confusion about Java. CNET's 20 questions piece is very useful in attempting to clarify things. For educators who want to use Java to add interactive elements important questions include "What is an applet?" and "How Can I Make an Applet?"

To date JAVA has not had the major breakthrough it needs. Corel aborted its attempt to create a suite of Word Perfect software tools in Java. IBM and Lotus will soon release eSuite, with the hope being it will find a market in the emerging world of NCs. Software to create Web sites entirely in Java such as Net-It-Now are appearing.

yellowsphere3.gif (1033 bytes)What's the difference between Java and Javascript?

A number of misunderstandings have emerged over whether Java and Javascript are the same thing. They are not:

Javascript is used on a number of Web pages today. Uses include automating the process of rotating graphics, embedding controls for virtual juke boxes or movie players, creating moving text, checking for errors in form submissions, etc. For example, Jason's JavaScript Archive contains scripts used for:

  1. JavaScript Alerts
  2. Status Bar Messages
  3. Retrieving user information
  4. Prompting For Information
  5. Opening New Windows
  6. Telling Time
  7. Changing Background Colors
  8. The Famous script for changing your web page depending on the time of day

yellowsphere3.gif (1033 bytes)What About ActiveX?

Microsoft did not support Javascript as quickly as Netscape. Microsoft, which had somehow missed the importance of the Net--perhaps because of its dominance in operating system software--moved first to develop a better browser, add interactivity to it, and finally to integrate their application software and operating system with the Web. Given that there were a large number of program designers already using Microsoft's flagship design product, Visual Basic, Microsoft would attempt to create a Web version of it and rename it Active X. Using Active X controls, programmers could create dynamic Web pages (but only viewable in Microsoft's Explorer browser). Rather than support open standards, Microsoft attempted to create proprietary software. Such was also the case with Microsoft's use of Java, which it attempted to encase inside proprietary Microsoft code, ultimately resulting in a lawsuit with Sun Microsystems and a countersuit by Microsoft.

In 1998, Microsoft decided to downplay ActiveX in favor of "COM," for Component Object Model. Microsoft executives are quick to point out that ActiveX controls will survive, at least in name, to
describe Microsoft-specific COM components. ActiveX, despite Microsoft's claim that its million plus Visual Basic users would all transfer their talents to Web construction, failed to take hold with developers building wide-scale commercial applications because of security concerns and slow download times for its controls.

yellowsphere3.gif (1033 bytes)What do I really need to know to program scripts and applets?

Early HTML writers struggled to learn the required tags and add them to text documents by hand. The next generation used WYSIWYG design tools that kept code hidden from Web designers. However, knowing HTML allows the designer to more easily troubleshoot problems when the WYSIWYG tool fails (as Netscape Gold's editor does).

The same pattern holds true for both Java and JavaScript. Early Java applet designers took the time to learn the language; many were programmers. JavaScript is much more basic than Java and can be learned by those with little programming background. In 1996, WYSIWYG Java tools such as Visual J++, Symantec Visual Café for Windows 95/NT, Bongo, and Jamba emerged. In 1997, Netscape released Visual JavaScript.

Repositories of existing Java applets and Javascript archives now are commonplace. Some are freeware, other marketed as shareware. Non-programmers can now easily add active components to their Web sites, but knowledge of the syntax of these languages helps in being able to change parameters and troubleshoot problems. For example, once I downloaded the slideshow applet, I still had to figure out how to import my own graphics, set the transition effects, etc. As with all computer programming projects, try to find the most experienced person you can to assist you.

The segmentation of HTML writers from CGI script writers continued until around 1996, when script repositories started to appear. If you wanted to run a program on a certain UNIX server and you could find a script for it you did not need a programmer. In 1997, programs such as Microsoft's Frontpage 98, integrated Web design with server scripting for those running Windows NT Server and Internet Information Server. Without writing any scripts I created an on-line survey which dumped the results of a submittal to four places simultaneously: email message sent, update a Web page, new entry in Access database, and comma-delimited text file suitable for later database use.

yellowsphere3.gif (1033 bytes)What kinds of applets should I add to my Web pages?

Obviously, such choices are up to the instructor and should be based upon class needs. One way to approach this would be to use a class section as a focus group to help determine which class materials need to be developed in an interactive format. For example, if a self-administered and automatically graded quiz would assist students in retaining their knowledge in a particular subject area, scripts can be written or borrowed. Will a graphic, animation, or slideshow with audio be the best reinforcer? If the latter, which of the many slideshow applets available is best suited for the information module? You can comparison shop for applets at Sun's Gamelan site and other on-line Java repositories. As of 11/97, Gamelan contained over 900 educational applets, nearly 1400 games, over 500 multimedia applications, plus thousands of others. You can learn how to dance; even choreography can be taught on-line!

Since there are distance learning efforts going on worldwide, there are bound to be a number of similar applets and modules being developed. But, how do you find them? The Educom IMS Project is intended to help faculty locate existing educational applets anywhere on the Internet using metadata tags. In fact, it may soon be possible to construct an entire course by picking from a number of educational learning modules. Similar to paying by the number of plates piled up on the table at the end of a Chinese dim sum meal, students would pay a technology or site license fee based on the total number of modules adopted within the course. Each module would have a small cost and faculty authors would receive modest royalties if there materials were adopted by others. Publishers, software companies, and on-line information providers will also have on-line resources available for class adoption. These may include access to databases, on-line educational simulations, testing environments, etc. Having just returned from an academic conference in which I was approached by a number of faculty who have been asked to get their courses onto the Web while offered minimal support, a shared environment for cooperative distance learning is a much needed aid.


yellowsphere3.gif (1033 bytes)Go to Topic 4