5. Web Development Tools

twinIsles.dev >> Photography on the Web

5.1 Enhancing the Web
In its early days the web was a global hypertext system allowing documents containing text, graphics and links to be downloaded and viewed from servers located around the world. In this model a user requests a document (web page) from a server, the server then sends the document to the user's browser, which displays it. In order to provide users with a more interactive experience a number of tools have been developed. This section discusses some of the more popular tools currently in use.

5.2 Server Side Tools
Server side tools involve processing taking place on the web server.

5.2.1 CGI (common gateway interface)
CGI is a protocol allowing programs to be executed on a web server in response to a request made by a browser. CGI programs have a wide variety of uses including the processing of form input, searching an online database, maintaining access counters etc.

Typically a user calls a CGI program from a browser, e.g. by submitting a form. The program executes, processing any parameters it may have been sent (e.g. form data). It may update a database or send notification to the webmaster. Finally an HTML page is generated as output and returned to the user's browser.

CGI programs may be written in any language that may be executed on the web server. In practice, as they are often used to parse form input, they are commonly written in Perl due to its powerful built-in pattern matching capability.

CGI offers an inexpensive means of providing server side functionality. Perl interpreters are available for free and are often available as standard on web servers. Numerous free CGI scripts may be found on the web at sites such as The CGI Resource Index [15] and Matt's Script Archive [64]. However, because server side execution involves potential security risks some hosting services are reluctant to offer CGI facilities.

5.2.2 ASP (Microsoft Active Server Pages)
Active Server Pages (ASP) is a server side technology from Microsoft for the
dynamic creation of web pages. ASP "pages" are text files consisting of HTML code interspersed with ASP commands, which may be in one of several languages including VBScript, Jscript or PerlScript. The most common language for ASP pages is VBScript.

<% Language=VBScript %>
The current time is
<% Response.Write Time() %>

Fig 5.1 A simple ASP "page"; source Mitchell & Atkinson [68]

When a client requests an ASP page from the server the commands are executed by the server's scripting engine. The output is merged with the HTML part of the ASP file and sent to the client in the form of a standard HTML file. The client does not see the script.

ASP provides powerful features for accessing a server side database and is frequently used for this purpose e.g. in e-commerce solutions. ASP is supported by default on Microsoft web servers, including Personal Web Server, which is available for free with Windows 95, 98 and NT Workstation. Various third party products allow ASP to be run on other web servers (see 5.2.4 below).

Microsoft [65] recommends that, where possible, users of its IIS web server should "migrate CGI applications to ASP, to take advantage of improved performance and the simplified development environment".

5.2.3 Cold Fusion
Cold Fusion is an application server. Originally developed by Allaire the product is now part of the Macromedia portfolio. Cold Fusion works alongside the web server. When a request is received for a Cold Fusion (.cfm) file it is passed to Cold Fusion for processing. Cold Fusion outputs a pure HTML file, which is sent to the client by the web server. Description source: irt.org [48].

Like ASP, Cold Fusion allows script embedded in HTML to access a server side database and return the results in the form of dynamically generated HTML pages. However, according to ZDNet [99] Cold Fusion has the advantage of being similar to HTML due to it being a tagged language. It is, however, relatively expensive with Amazon.com quoting a price of : $4,911.99 for ColdFusion Server 4.5 Enterprise -- Macromedia; Windows 2000 / NT (June 19, 2001).

<!--- This query selects all members from the Members table in the irt datasource --->

FROM Members

<title>Members of irt.org</title>

<table border="1">

<!--- Here's all members output nicely into a table --->



Fig 5.2 An example of a Cold Fusion .cfm file; source irt.org [48]

5.2.4 PHP
PHP is a recursive acronym for PHP: Hypertext Preprocessor. PHP is a scripting language embedded within HTML documents and executed on the server side. To use PHP the web server must support PHP and be configured to pass all .php files to PHP.

PHP peforms a similar function to ASP and Cold Fusion. The PHP Group's FAQ (Frequently Asked Questions) list [84] provides a comparison.

ASP is easier to learn for Visual Basic programmers and is enabled by default on Microsoft's Internet Information Server (IIS), it is therefore likely to be more widely supported, or easier to get working if the developer is also the webmaster. However, ASP is native to IIS, thus limiting its availability (although products such as Halcyon Software's Instant ASP and Chili!Soft's Chili!ASP allow ASP to run on a variety of other web servers). Furthermore, according to the PHP Group FAQ, "ASP is said to be a slower and more cumbersome language than PHP", and "less stable as well".

Compared to Cold Fusion PHP is "commonly said to be faster and more efficient for complex programming tasks and trying out new ideas" and is "generally referred to as more stable and less resource intensive". Additionally "PHP runs on almost every platform there is; Cold Fusion is only available on Win32, Solaris, Linux and HP/UX". However Cold Fusion "has better error handling, database abstraction and date parsing", an "excellent search engine", and "has a better IDE and is generally easier to get started with". It should also be stated that PHP is Open Source (see OpenSource.org [80]) and free!

<html><head><title>PHP Test</title></head>
<?php echo "Hello World<p>"; ?>

Fig 5.3 A simple PHP file; source The PHP Group [83]

5.3 Client Side Tools
Client side tools involve processing taking place on the client (i.e. the user's computer). Client side tools offer faster execution, due to processing taking locally, and reduced server load.

5.3.1 JavaScript
JavaScript was developed by Netscape to "add dynamic capability to HTML". Originally called LiveScript it was renamed JavaScript by agreement with Sun. Source Woodger Computing Inc. [97].

JavaScript is a scripting language embedded within HTML documents and executed by the browser displaying the document. JavaScript has a variety of uses e.g. validating form input prior to submission, providing user feedback such as rollover effects and creating simple animation such as scrolling text banners to display latest news etc.

JavaScript may be used in conjunction with Cascading Style Sheets (CSS) to provide Dynamic HTML (DHTML), a means of changing the contents of a web page displayed in a browser in response to user interaction. DHTML is invaluable in providing user feedback e.g. on educational sites.

Such a vast amount of JavaScript scripts are available for free on the web at sites such as Dynamic Drive [23] that a resourceful web developer can, on many occasions, cannibalise the work of others.

One of the difficulties of using JavaScript results from the fact that different company's browsers, and indeed different versions of the same company's browser, recognise (or fail to recognise) different JavaScript features. The problem is particularly pronounced with DHTML as this feature is implemented in entirely different ways in the two major browsers, namely Microsoft Internet Explorer and Netscape. The developer is faced with the choice of developing different versions of pages for different browsers or, given that Internet Explorer is now hugely dominant (see Appendix A), developing only for Explorer.

5.3.2 Java applets
Java applets are programs written in Sun Microsystems' Java specifically for execution in a web browser. The Java language is designed to be cross-platform enabling applets to be run on any computer for which a Java Virtual Machine is available. Unlike JavaScript, Java applets reside in their own files and must be downloaded separately from the HTML before execution can begin.

5.3.3 Flash
In the words of its creator, Macromedia [63], Flash "is the key to designing and delivering low-bandwidth animations, presentations, and Web sites. It offers scripting capabilities and server-side connectivity for creating engaging applications, Web interfaces, and training courses".
Over the past year or so Flash movies have become an increasingly common vehicle for delivering sound, animation and interactivity on web sites. Its popularity among web developers is most likely due to two reasons:

  • its use of vector graphics results in very small file sizes meaning that Flash content can be downloaded with minimal delay;
  • latest generation browsers have the Flash player built-in, i.e. they are able to play Flash movies without the need for plug-in software.

Used intelligently Flash represents a powerful tool in the developer's armoury. The Showcase on Macromedia's website [63] provides some excellent examples of the effective deployment of Flash. However, web usability expert Nielsen [74] claims "About 99% of the time, the presence of Flash on a website constitutes a usability disease". This is because Flash movies cannot utilise familiar browser features such as the Back button and Find option. Furthermore, Nielsen considers Flash tends to make the user experience more passive by removing control from the viewer. Indeed, the fact that many Flash enabled sites now offer a "skip intro" option suggests they were created more to demonstrate the designer or technology's capabilities than to add value for the user.

5.3.4 Plug-ins
Plug-ins are programs that extend web browser functionality. Web browsers are designed to display files of a limited range of types, e.g. HTML, JPG and GIF images etc. When a browser encounters a file type it cannot display e.g. video or streaming audio, it calls the appropriate plug-in. Plug-ins can often be downloaded for free, but content requiring the use of a plug-in should be used judiciously as viewers will often not wish to be bothered with lengthy downloads and will simply move to another site. Some of the more common plug-ins are described below, descriptions are taken from Netscape [71].

  • Apple Quicktime for "QuickTime animation, music, MIDI, audio, video, and VR panoramas and objects"
  • Adobe Acrobat Reader for displaying Adobe PDF (Portable Document Format) files. This format is often used to ensure a document appears in exactly the format it was published, it is usually good practice to provide an HTML version for the benefit of users without the plug-in.
  • Macromedia Shockwave for "interactive games, multimedia, graphics, and streaming audio".
  • RealNetworks RealPlayer for "streaming audio, video, animations, and multimedia presentations".

5.3.5 ActiveX Controls
ActiveX is a Microsoft technology supporting the reusability of software components. ActiveX controls are ActiveX components designed to be contained within a web page. ActiveX controls may be created in a range of languages including Visual Basic, Visual C++ and Visual J++ (Microsoft's implementation of Java). Navarro and Khan [70] describe them as "a cross between a plug-in and a Java applet". Like Java applets ActiveX controls are downloaded and executed on the client computer, like plug-ins they are saved on the client's hard disk. ActiveX controls are supported by Internet Explorer versions 3.0 and higher. A plug-in is required to view ActiveX controls in Netscape browsers. Source: Web Developer's Virtual Library [1].

5.4 Web Site Utilities
Webmasters wishing to add features or functionality to their sites can choose from a vast range of ready made utilities that can simply be pasted into their HTML code, for free (in practice there is usually a requirement to display a small graphic linking back to the provider). Sites such as Bravenet [9] offer tools such as guest books, forums, live chat, CGI form processing, customized e-mail services, live news feeds, site-specific search engines and mailing lists.

Employed judiciously these utilities can provide added value to a site and give users an incentive to re-visit. As such they are a valuable resource for those starting a website on a low budget. Care should be taken to ensure that any such utilities used are both in keeping with the site's purpose and do not overshadow it.

5.5 XML (Extensible Markup Language)
HTML, the standard language for creating web pages, consists of tags such as <H1> (level 1 header), <P> (paragraph), <B> (bold) etc. These tags inform the browser how to display their content, however they provide no information about it.

One of the major difficulties in using the web is that of finding relevant information among the billions of pages it is composed of. XML (Extensible Markup Language) provides web authors with the capability to use, and define, more descriptive tags. For example, a website of photographs might include tags for <subject>, <location>, <author>, <format> etc.

<?xml version="1.0" ?>
<!-- Business letter formatted with XML -->
<!DOCTYPE letter (View Source for full doctype...)>
<contact type="from">
<name>John Doe</name>
<address1>123 Main St.</address1>
<address2 />
<flag id="P" />
<contact type="to">
<name>Joe Schmoe</name>
<address1>Box 12345</address1>
<address2>15 Any Ave.</address2>
<flag id="B" />
<paragraph>Dear Sir,</paragraph>
<paragraph>It is our privilege to inform you about our new database managed with XML. This new system will allow you to reduce the load of your inventory list server by having the client machine perform the work of sorting and filtering the data.</paragraph>
<paragraph>Sincerely, Mr. Doe</paragraph>

Fig 5.4 An example of an XML document; source Deitel et al. [20]

XHTML combines XML with HTML 4. It is likely that it will become the standard language of the web as developers endeavour to get their sites recognized by search engines and agents.

twinIsles.dev >> Photography on the Web

Next Search and Retrieval

e-mail me with your comments and suggestions | Home