Other Choices
While there are a number of other choices for client-side scripting, JavaScript and VBScript offer the most seamless integration with the browser. Alternatives depend on adding plug-ins to the browser to support new languages. In this sense, they are more like Java than they are like the native client-side scripting languages. This section briefly discusses three alternative scripting languages: PerlScript, Tcl/Tk, and NetRexx.
Perl
Perl, the Practical Extraction and Reporting Language, is a language that is widely used for server-side scripting, especially on Unix platforms. PerlScript offers Perl developers a way to leverage their experience to client-side scripting. Unfortunately, PerlScript works through an ActiveX script interpreter, so it is primarily limited to browsers running on Microsoft Windows-based client systems. In addition, PerlScript has suffered from some serious security holes in the past, although recent implementations have gone far in addressing these.
Tcl/Tk
Tcl/Tk is another language that has its roots in the Unix world. Tcl, short for Tool Control Language, is an interpreted scripting language invented by Sun Labs. Tcl is supported in Web browsers via plug-ins for both Netscape Navigator and Internet Explorer. The Tk in Tcl/Tk stands for "toolkit" and traditionally has referred to an interface to the X Window GUI windowing system widely used on Unix machines. Tcl/Tk as a scripting language offers an integrated cross-platformcapable GUI development toolkit, similar to that offered by Java. The embedded client-side scripts that incorporate a Tk GUI are called "Tclets" because of their similarity to Java applets. Safe-Tcl is a variant that offers a safe mode of the Tcl interpreter to limit Tcl scripts from executing code that could harm the client machine.
REXX
Finally, there is a variant of REXX available for client-side scripting. REXX is a scripting language that was originally developed for IBM mainframes and was later distributed with IBM's OS/2 operating system. Called NetRexx, the product that provides this support is a REXX-to-Java translator. NetRexx allows developers to create applets using REXX syntax that are then converted to Java bytecodes, downloaded, and executed on the client by the Java Virtual Machine.
These plug-in alternatives enable developers with diverse backgrounds to leverage their experience and develop rich, interactive Web applications using client-side scripting.
The next article in this series concludes our introduction to client-side scripting. It presents a set of recommended guidelines for the structure and style of script code. These guidelines offer a basic foundation for building a set of project- or company-wide standards to help improve the maintainability and reusability of code.