Thomas Williams was a CS undergrad and I was an EE/CS undergrad at Villanova University. The EE department had just built a VLSI design lab and we were both immediately drawn to it. The campus had two existing computer labs, both depressing. They were crammed into dingy basements filled with rows of VT100 terminals and the acrid smell of burnt coffee. By contrast, the new VLSI lab was on the top floor of the engineering building in a room with high ceilings and plenty of light. Better still, it had a brand-new Pyramid minicomputerright there in its own air conditioned roomthat ran Unix. The lab had a dozen AED color displays and a huge HP plotter. Dr. Richard Perry ran the lab and was happy to let us hack away as much as we wanted. Together we got a UUCP link that dialed out nightly to Princeton. We got sendmail and a news reader running. After a few months, the administrators discovered that the phone bill had skyrocketed due to nightly long distance calls to New Jersey! But we had Villanova on the Arpanet.
I’d been taking classes in electromagnetism and signal processing and really wanted to visualize the equations. Tom had a similar need to visualize differential equations. There were no reasonable tools on campus to do so. At home I had an early PC clone with a bootlegged copy of Lotus 123 that could graph data, but graphing a simple equation was a clumsy process to first fill a spreadsheet with data points and then plot them. And Lotus 123 was never going to work with the HP plotter or AED terminals we had right there. In the fall of 1986, I suggested to Tom that we write the program we really wanted. He agreed. We settled on calling it gnuplot as a pun on a lame program at school that predated ours called “newplot.” It wasn’t until a month later that we read Richard Stallman’s Gnu Manifesto. That resonated with us and matched our thinking perfectly. The common name was simply a lucky coincidence.
Fortran and Pascal were the prevailing languages taught in school then, but neither was portable. C was clearly a better fit and Unix was the right OS to start with. Tom focused on writing the equation parser and P-code evaluator while I focused on the command-line processor and graphics drivers. The command-line approach was patterned after Vax/VMS and chosen out of necessity; there were no portable GUIs then and, besides, we wanted to be able to use dumb terminals to drive the plotters and printers we had nearby. Within a month we had the basics working. After that we started porting to every machine we could find with a C compiler: VMS, MS-DOS, and several flavors of Unix.
By the fall of 1987, we published gnuplot as open source to newsgroups like sci.math. We were surprised by the response we got! Notes of thanks and encouragement came in from all around the world. More importantly, we received bug fixes and patches to make gnuplot more portable to add support for many more terminals and devices. We folded those in while adding features and fixing bugs ourselves.
Tom and I both graduated in 1987 and didn’t look at gnuplot much after that. But it took on a life of its own thanks to the dedicated contributions of others, and now it’s tremendously more powerful than when we left it. People have continued to add features to it, and now there is this book, Gnuplot in Action, to serve as guide to all that gnuplot has to offer. What a great testament to the benefits of open source!
Colin D. Kelley
CTO, RingRevenue, Inc.
Original Gnuplot Author