Next: , Previous: Auxiliary Software, Up: Appendices


Appendix F History and Acknowledgements

Several of the GNU plotting utilities were inspired by Unix plotting utilities. A graph utility and various plot filters were present in the first releases of Unix from Bell Laboratories, going at least as far back as the Version 4 distribution (1973). The first supported display device was a Tektronix 611 storage scope. Most of the work on tying the plot filters together and breaking out device-dependent versions of libplot was performed by Lorinda Cherry. By the time of Version 7 Unix (1979) and the subsequent Berkeley releases, the package consisting of graph, plot, spline, and several device-dependent versions of libplot was a standard Unix feature. Supported devices by the early 1980's included Tektronix storage scopes, early graphics terminals, 200dpi electrostatic printer/plotters from Versatec and Varian, and pen plotters from Hewlett–Packard.

In 1989, Rich Murphey wrote the first GNU versions of graph, plot, and spline, and the earliest documentation. Richard Stallman further directed development of the programs and provided editorial support for the documentation. John Interrante, then of the InterViews team at Stanford, generously provided the idraw Postscript prologue now included in libplot, and helpful comments. The package as it stood in 1991 was distributed under the name `GNU graphics'.

In 1995 Robert S. Maier took over development of the package, and designed and wrote the current, maximally device-independent, standalone version of libplot. He also rewrote graph from scratch, turning it into a real-time filter that would use the new library. He fleshed out spline too, by adding support for splines in tension, periodicity, and cubic Bessel interpolation.

libplot now incorporates the X Window System code for filling polygons and drawing wide polygonal lines and arcs. The code is used when producing output in bitmap formats (e.g., PNG, PNM, and pseudo-GIF). It was written by Brian Kelleher, Joel McCormack, Todd Newman, Keith Packard, Robert Scheifler and Ken Whaley, who worked for Digital Equipment Corp., MIT, and/or the X Consortium, and is copyright © 1985–89 by the X Consortium. Affinely transformed text strings are now generated and displayed by a technique similar to that used by Alan Richardson in his xvertext package, for displaying rotated strings.

The pseudo-GIF support now in libplot uses the `miGIF' run-length encoding routines developed by der Maus and ivo which are copyright © 1998 by Hutchison Avenue Software Corporation. The copyright notice and permission notice for the miGIF routines are distributed with the source code distribution of the plotting utilities.

Most development work on ode was performed by Nick Tufillaro in 1978–1994, on a sequence of platforms that extended back to a PDP-11 running Version 4 Unix. In 1997 Robert Maier modified his 1994 version to agree with GNU conventions on coding and command-line parsing, extended it to support the full set of special functions supported by gnuplot, and extended the exception handling.

Many other people aided the development of the plotting utilities package along the way. The Hershey vector fonts now in libplot are of course based on the characters digitized in the mid to late 1960's by Allen V. Hershey, who deserves a vote of thanks. Additional characters and/or marker symbols were taken from the SLAC Unified Graphics System developed by Robert C. Beach in the mid-1970's, and from the fonts designed by Thomas Wolff for Ghostscript. The interpolation algorithms used in spline are based on the algorithms of Alan K. Cline, as described in his papers in the Apr. 1974 issue of Communications of the ACM. The table-driven parser used in tek2plot was written at Berkeley in the mid-1980's by Edward Moy. The `sagitta' algorithm used in an extended form in libplot for drawing circular and elliptic arcs was developed by Peter Karow of URW and Ken Turkowski of Apple. Raymond Toy helped with the tick mark spacing code in graph and was the first to incorporate GNU getopt. Arthur Smith, formerly of LASSP at Cornell, provided code for his xplot utility. Nelson Beebe exhaustively tested the package installation process.

Robert Maier wrote the documentation, which now incorporates Nick Tufillaro's ode manual. Julie Sussmann checked over the documentation for style and clarity.