[good web] | [good process]

By William Paul Fiefer (home)

[main menu]

Image: man working with machinery

  
 

The Good Toolchain

This story is about giving your programmers the tools they need.
You can read other stories about giving your people the Web they want
and giving your Web the process it deserves.

Languages   |   Language tools   |   Internet runtime   |   File-handling tools

You don't have to pay a lot for your development tools unless you want to. Free and inexpensive products often work better and the skills required to use them are more portable. Commercial Java IDEs (integrated development environments) are particular offenders in this respect: learn one and you learn nothing about any other one. What would you think if you had to learn to drive all over again when you switched the make of your car? (The Java Swing might address some of this, making it possible to move your source, including graphical code, from IDE to IDE.)

If you run a small shop and want a solid development operation, or you run a large shop and would rather spend your money on your people, use these lists as starting points. These tools are free, except where noted, and reasonably priced otherwise. All adhere to open standards for their input and output, which helps protect your coding investment. If you run Linux, you'll find similar tools for that platform and your software costs will drop further. You get a bonus, regardless, because programmers who know how to use these tools are smarter, more affordable, and more creative than their commercially grounded peers.

Development tools are links in a chain. Text tools pass work to compilers, which pass work to debuggers and your runtime environment. Weak links freeze your operation. The major links in this toolchain are languages and language tools, an Internet runtime to simulate the runtime network, and file-handling tools to pick up, put down, and change the format of data.

The languages

  • HTML
  • XML
  • JavaScript
  • PerlScript
  • Perl
  • Tcl/Tk/Expect
  • Sun Java

HTML and XML are axiomatic. You can't work without them. They dictate the display of content in a browser. HTML tells the browser how page elements will be displayed. XML tells the browser and XML-aware programs what type of content a page contains. For example, while HTML governs whether a typeface displays a particular term in italic or boldface, XML says the term is, say, a price or a credit card number. XML tells you what things in a document are. Because database records contain fields labeled with what they are, XML lets you express the ideas needed to put database records on the Web. If you standardize your XML labels across your business, programs can search and sort your Web data, run SQL against it, and extract the results as new views. E-commerce and EDI should come to mind.

JavaScript and PerlScript let you program the browser, letting you offload processing jobs to client machines. JavaScript is the standard, with interpreters built right into most Web browsers. (PerlScript needs supplemental client software to run on most browsers.) Microsoft and Netscape implement their JavaScript interpreters at odds with the language definition so identical code does not necessarily work the same on both browsers. This hasn't killed JavaScript, but it does mean programmers must write smarter code to make it run cross-platform. If you are reluctant to run JavaScript because of these incompatibilities, keep in mind that Microsoft and Netscape implement HTML differently, too.

Both Perl and Tcl/Tk/Expect are ideal for CGI and Fast-CGI scripts, systems maintenance work and prototyping. CGI code executes on your server on behalf of a client whose request arrives from a Web browser. Perl is the standard here. But CGI gets sluggish under load, a problem addressed by Fast-CGI. Use Fast-CGI scripts if you go the CGI route for server execution. Perl and Tcl use large regular expression libraries so they excel at text manipulation, which is central to Web programming since Web content is text. Perl gets heavier rotation than Tcl; it is a robust, versatile language. But Tcl handles Web text just as well and has a simple syntax. Tk creates graphical front ends for Perl and Tcl. Expect is a different product, harder to learn, but excellent at automating interactive work such as testing login routines.

Sun's Java is the standard flavor for this general purpose language good for servlets, applets, and applications. Servlets are Java programs that perform in place of CGI scripts. Applets are Java programs that run in a browser; most people first used Java as a Web applet. Applications are major software products, usually built with full-powered languages.

Servlets execute faster than CGI code, and along with applications represent the niches Java will dominate. The jury is out on applets. Java loads slowly across a network and executes slowly on the machines commonly used. Until processing power and network bandwidth increase sufficiently, Java's applet potential will go untapped.

[header]

The language tools

  • The Perl CPAN
  • Kawa integrated development environment (commercial product)
  • The GNU tools
  • PGP and the PGP software developer's kit (commercial product)
  • RCS/CVS

Language is a construction material. You shape it with tools. If these tools consume and produce standard, portable input and output, you encounter less difficulty changing vendors and reusing code.

The Perl CPAN (Comprehensive Perl Archive Network) is a massive collection of useful routines collected into libraries. Getting to know and use CPAN pays off in the time saved reusing rather than writing and debugging code from scratch.

If you can't resist using an integrated development environment (IDE) for Java development, use Kawa. It is priced fairly, has good ergonomics, uses the Sun Java debugger, and has an optional GUI builder. Commercial Java IDEs are overpriced, underpowered, and have bad ergonomics. Kawa won't waste your money.

The Unix heritage is strongly reflected on the Internet, and many Web development activities require Unix tools. The GNU tools fill the void for non-Unix shops, simulating a Unix environment on multiple platforms, including Windows. GNU tools are powerful, robust, widely used, and well-respected. Most university computer science departments use them in the classroom and for research. If you're not impressed with this quality and have money to burn, get the MKS Toolkit, a commercial package of nearly 300 Unix utilities.

Cryptographic software protects information and identifies who made the information. PGP is a powerful, full-featured, widely-used cryptographic package. The PGP development kit lets you incorporate the PGP algorithms into your code. PGP is well-tested and has no known security holes. Its key space runs to 1024 bits out of the box, which will remain uncrackable for decades. You must pay for the PGP development kit if you want to use it commercially, but it is free for other uses. Powerful cryptographic open source code is available but you are better starting off with the well-documented PGP kit before migrating to the more flexible open source solutions.

RCS/CVS protect your coding investment by tracking and recording the modifications your code undergoes. These tools track documentation changes, too. RCS and CVS are not only free, they also run over a network and are the archetypes of virtually every other revision control system. The RCS/CVS genes reside as algorithms used in similar commercial software.

[header]

The Internet runtime

  • Apache Web server
  • Internet Explorer
  • Netscape Navigator
  • Lynx
  • WS FTP Pro (commercial product)

Your developers need to control a Web server at their desktop to run binaries, check output, debug code, and to understand what Web servers do. Apache is the most widely used and robust Web server in the world. Apache's extensibility lends extreme versatility to its feature set. To view your Web output, use every browser you can lay your hands on. Each displays pages and runs code differently. Microsoft's Internet Explorer and Netscape's Navigator (part of the Netscape Communicator package) are the most widely used browsers. Lynx is a text browser that still commands an audience; it is superb for testing the behavior of pages on terminals used by the blind. Finally, to get files to and from the Web server (or anywhere on the network), use WS FTP Pro. WS FTP Pro is widely used, powerful and configurable, and has a free version featuring a cutdown feature set.

[header]

File handling tools

  • PFE programmer's file editor
  • GNU gzip and InfoZip compression and decompression tools
  • PrintSmart (commercial product; discontinued in November 1999)
  • Aladin Ghostview/Ghostscript Postscript viewer and printer
  • QuickView Plus file viewer (commercial product)

The flat-pitch 7-bit ASCII text editor, along with a compiler, constitutes the heart of software production. PFE is an ergonomically solid, full-featured, reliable text editor with a user base competitive with any similar product. You can buy fancier text editors but you won't use the extra features they sell you. Save the cash: PFE's feature subset is what programmers and HTML authors need to write code.

GNU Gzip and InfoZip's Zip and Unzip let you pack and unpack compressed files and file archives (files with extensions like "gz" or "gzip" or "zip"). Files are collected as a unit and compressed to a smaller size to conveniently and quickly move them over the network. The compression algorithms in the GNU and InfoZip tools are free of commercial restrictions and patent disputes. The source code and pre-built modules for both are freely available for use as compression/decompression constituents of larger software systems.

PrintSmart, from Hewlett-Packard, collects, stores, formats, and prints entire Web sites. HP discontinued PrintSmart in November 1999 but copies are still floating around. Make sure to get the full retail version and not the gutted, underpowered free version. Use it to page-proof sites and for client presentations. Ghostview and Ghostscript display, print, and produce Postscript files, which proprietary code does at ridiculous prices. QuickView Plus displays and prints most file formats, liberating you from the need to license the original products used to create these files.


[header] | [good web] | [good process]

Credit: The page-header dogear Concentration, by Tony Gocke, was captured on Ilford FP4 Plus with a Canon EOS 5.
© Copyright 1992-2008, William Paul Fiefer (yamada@prairienet.org), all rights reserved. You incur specific legal obligations under the terms of my copyright and little else under my privacy policy. This page is made possible by maple.sugar.buddha™ and translated into English by my Mom. Sweet enlightenment!™ Last updated 01 January 2008.