Toolbox Philosophy
By Lincoln D. Stein
Today, while mulling over what to write for this annual "Web Tools" issue, I happened to get emails from two readers looking for particular tools. One was looking for something that would process thousands of image files in a batch fashion. The other was looking for a way to create a CGI interface to the WHOIS service so that users could check whether a domain name was already taken.
To the first reader, I suggested either the ImageMagick package or the NetPBM collection of image-manipulation utilities. To the second, I recommended she write a CGI wrapper around the whois utility.
This got me to thinking. What really is the most powerful, featureful, and flexible tool for Web development? In my opinion it's the command line. Those legions of small Unix and DOS command-line utilities, many written in the dark days before the Internet turned "e" into a prefix, aren't much individually, but when combined on the command line they're immensely powerful.
The Toolbox Philosophy
People used to talk a lot about Unix's "toolbox philosophy," which emphasizes having lots of small special-purpose applications available. None of the utilities does very much, but what each does, it does well. Although the toolbox philosophy is no longer a buzzword, it's still very much alive and well.
A typical Unix system has about a thousand command-line utilities, which do everything from manipulating text files to compiling programs. For example, there's a program called wc that does nothing but count words and lines in a text file, and another program called grep that searches for patterns in text files and prints out the matching lines.