John Hobby

[completed 2010-01-05]

John Hobby was the developer of MetaPost and helped develop the Metafont algorithms.

 

 

Dave Walden, interviewer:     Please tell me a bit about your life before you attended Stanford.

John Hobby, interviewee:     I was born in California and grew up in the suburbs of Seattle, Washington with my father, mother and older brother. My family moved there in time for Seattle's 1962 World's Fair (an event I don't remember because I was too young at the time). For the first few years, we lived close to the future site of Microsoft headquarters in what is now Redmond. Until about 1972, my father was a math professor at the University of Washington, and that is where I went for my undergraduate education (a bachelor's degree with a dual major in mathematics and computer science).

I was very interested in math and science from a young age, and did computer programming in my spare time just for fun when I was still a teenager. At the time, I also played golf and did a fair amount of swimming and bicycling, but I was not especially good at any of those things.

DW:     Please tell me about Stanford and your involvement with Donald Knuth and TeX.

JH:     In September of 1980, I went to Stanford for a PhD in computer science, and I started using TeX78 a few months after I got there. At first, it was just the natural thing to do since TeX78 was widely used within the computer science department.

By the time Knuth started actively developing TeX as we know it today, I was involved enough to try out all the preliminary versions as soon as he finished them. For instance, when I served as the teaching assistant for Knuth's C.S. 204 problem seminar course in the fall of 1982, I had to create a strange set of TeX macros for the “Microbe Computers” problem.

Knuth brought in a visitor from China, and I worked with him in 1983 to use Metafont's predecessor, MF79, for Chinese characters. Our 1984 paper was “A Chinese Meta-Font” by myself and Gu Guoan. (His surname is Gu.) The paper was published in TUGboat.

This project was an interesting application for Metafont because characters, radicals and strokes have sort of a hierarchical structure that is amenable to Metafont's mathematical approach. Unfortunately, I don't think anyone ever turned our prototype into a complete Chinese font.

My main contribution to TeX and Metafont was to develop various algorithms that went into Metafont. Knuth was my thesis advisor and Metafont's polygonal pens were a major part of my PhD thesis. When a Metafont program asks for an elliptical pen, the actual result is a polygon that can be thought of as an ellipse with subpixel corrections that improve the resulting brush strokes.

I also designed Metafont's system of cubic spline curves and made various smaller contributions. Knuth and I worked together pretty closely when he was creating Metafont. It was an unusual collaboration in that I was mostly designing algorithms and Knuth wrote all the production code himself. I remember that he had me make detailed comments on the cubic spline code when he first wrote it, and we managed to eliminate all the bugs before ever trying to compile it.

DW:     What you have been doing since you left Stanford? I know MetaPost was one of your activities.

JH:     I went straight to Bell Labs when I finished at Stanford in 1985, and I have worked there in Murray Hill, New Jersey, ever since. Bell Labs was part of AT&T when I first arrived. Then it became part of Lucent Technologies, and now it is Alcatel-Lucent's R&D division.

The motivation for MetaPost was my own experience with figures for my research papers. It was possible to generate good figures, but I found it quite awkward. Even during my earliest days at Stanford well before PostScript became available, all the printing devices I used were capable of drawing polygonal lines. The problem was that I had to do it by computing lots of coordinates and then typing them in.

In 1989, it occurred to me that Metafont could be retargeted to output PostScript. My figures were much more mathematical and less artistic than a font, and a Metafont-like approach would be much easier than what I was doing at the time.

I notified Knuth before I started work on MetaPost, and he was enthusiastic. Although there was a TUGboat article in 1989, I actually started the project in 1990 and worked on and off over a two year period before distributing it widely within AT&T. The decision to release MetaPost into the public domain was not quick or easy, and it was preceded by more than two years of limited distribution under nondisclosure agreements. I think the actual release happened in January, 1995.

The graph drawing package and new primitives to support it were a relatively late addition, but they preceded the public release.

Subsequent to the public release, I only made a few bug fixes and minor improvements. MetaPost worked well enough for my purposes, and I could not easily argue that Bell Labs should be paying me to work on it. Of course the rest of the community wanted new features and better support, so I was happy to have Taco Hoekwater and the other members of the MetaPost development team take over these tasks in 2000.

DW:     Can you say a word about the areas of R&D that you've pursued at Alcatel-Lucent?

JH:     I did a few things related to fonts and raster graphics, and that led to document analysis and optical character recognition. Then I switched to modeling cell phone networks, and that has led to various related problems.

DW:     What are your reflections now about TeX?

JH:     I am a strong supporter of TeX and LaTeX, but I hesitate to say much about them because the versions I usually use are about ten years old. This is because I prefer to do most of my computing on central servers that I do not have to administer.

I hate to say this, but I am still using MetaPost version 0.641. I read all of the current release announcements, and I certainly see a lot in MetaPost 1.200 that I would like to have, but I could only install it on my personal laptop, and that would not be convenient for me.

Long ago when I did the graph drawing macros, it became clear that the language needed floating point or at least higher precision fixed point, but I decided this would be too big a project for me. Unless I am mistaken, nothing has happened since. I presume the development team would like to do something, but they agree that it would be hard to implement.

DW:     I think you are right. I also think that adding floating point is the next major project Taco and the team are planning to undertake and they now see a plausible path for making the change. So, hopefully, in another year or so we'll have this.

You spent a lot of time and effort in the world of graphics and fonts. Is your interest entirely practical (“the world or I need this”) and mathematical, or do you have an artistic or aesthetic inclination as well?

JH:     I would not say that my motivation was artistic or aesthetic. It was more that I tend to be a perfectionist, and I could see that there was considerable room for improved algorithms. I did not want to use algorithms that are sloppy about what goes on at the pixel level.

DW:     Thank you for participating in our interview series. I learned many details of the progression from MF79 to Metafont to MetaPost that I didn't know before.


Interview pages regenerated January 26, 2017;
TUG home page; contact webmaster; (via DuckDuckGo)