
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)
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).
The Common Gateway Interface (CGI) is a standard for interfacing external applications with information servers, such as HTTP or Web servers. A plain HTML document that the Web daemon retrieves is static, which means it exists in a constant state: a text file that doesn't change. A CGI program, on the other hand, is executed in real-time, so that it can output dynamic information.
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 C
GI 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.
Since a CGI program is executable, it is basically the equivalent of letting the world run a program on your system, which isn't the safest thing to do. Therefore, there are some security precautions that need to be implemented when it comes to using CGI programs. Probably the one that will affect the typical Web user the most is the fact that CGI programs need to reside in a special directory, so that the Web server knows to execute the program rather than just display it to the browser. This directory is usually under direct control of the webmaster, prohibiting the average user from creating CGI programs.
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.
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.
Java is designed to be object oriented from the ground up. Object technology has finally found its way into the programming mainstream after a gestation period of thirty years. The needs of distributed, client-server based systems coincide with the encapsulated, message-passing paradigms of object-based software. To function within increasingly complex, network-based environments, programming systems must adopt object-oriented concepts. Java provides a clean and efficient object-based development environment.
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.
Behind all this good news is an ugly fact the Java promoters don't want you to know. Many of Java's key promises are myths. Here are the five fables that could lead you astray.
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.
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:
Java, developed under the Sun Microsystems brand, is a full-fledged object-oriented programming language. It can be used to create standalone applications and a special type of mini application, called an applet. Applets are downloaded as separate files to your browser alongside an HTML document, and provide an infinite variety of added functionality to the Web site you are visiting. The displayed results of applets can appear to be embedded in an HTML page (e.g., the scrolling banner message that is so common on Java-enhanced sites), but the Java code arrives as a separate file.
JavaScript, developed by Netscape, is a smaller language that does not create applets or standalone applications. In its most common form today, JavaScript resides inside HTML documents, and can provide levels of interactivity far beyond typically flat HTML pages -- without the need for server-based CGI (Common Gateway Interface) programs.
It is important to understand that a Java-enabled browser is not automatically a JavaScript-enabled browser: the two technologies require entirely separate interpreters (licensed from separate companies) to handle the languages. It is unlikely, however, that future browsers will incorporate one but not the other.
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:
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.
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.
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.
Go to Topic 4