In those pages I first met the ideas that would
mold my professional career and the people who would become
my colleagues, mentors, and heroes.
remain particularly proud of “Multidimensional
Divide-and-Conquer” (April 1980), summarizing my
Ph.D. thesis, and “A Locally Adaptive Data Compression Scheme” (April 1986) with Daniel Sleator,
Robert Tarjan, and Victor Wei, introducing a method
for compressing text files.
Programming has been very, very good to me. I
wrote my first Fortran program as a junior in
high school in 1969 and have now followed my
bliss in this field for almost four decades. Programming has provided a livelihood, intellectual challenge and reward, deep friendships, and numerous
joys indescribable. Of all the good things that have
happened in my career as a programmer, though, one
of the best was and is writing the “Programming
Pearls” column in CACM beginning August 1983.
These columns presented neither new research nor
systematic reviews of the field. I would later describe
them as “programming pearls whose origins lie
beyond solid engineering, in the realm of insight and
creativity.” For the most part, they were fun stories of
how clever colleagues had phrased and solved programming problems, not infrequently discovering
that “we have met the enemy, and he is us.” When
Peter Denning graciously offered me the opportunity
to write the column, he pointed out that each of my
scribblings would land on “the 70,000 most important coffee tables in the world of programming.”
The best columns were the ones in which master
programmers shared helpful insights with their colleagues. In March 1984, Bob Martin’s “The Back of
the Envelope” showed how even small estimates are
useful in designing big computer systems. The September 1985 column “Bumper-Sticker Computer
Science” collected aphorisms sent in by readers;
among them are these timely gems:
• The sooner you start to code, the longer the program will take (Roy Carlson);
• Allocate four digits for the year part of a date: a
new millennium is approaching (David Martin);
and
• Pi seconds is a nanocentury (Tom Duff).
I enhanced and collected 13 of the columns into
the book Programming Pearls in 1986 and a second
edition in 2000. We published a second collection
called More Programming Pearls: Confessions of a Coder
in 1988. The books have sometimes been used in
schools, but their most important readership has
always been working programmers who want to learn
more about their craft.
I have long been resigned to the fact that whether
I like it or not (fortunately, I usually do), I will almost
always be introduced in computing circles as “Jon
Bentley, who wrote ‘Programming Pearls’ in
Communications in the 1980s.” I remain deeply grateful to
Peter Denning and Stuart Lynn who first proposed
the column, to my colleagues and managers at Bell
Labs who supported the work, to the programmers
who contributed so much of the column’s best content, and to the readers of CACM who frequently
took the time to say thanks.
When I first read CACM in 1972, I was young,
and it was old. Now the tables have turned: I am an
old computer programmer, and it remains fresh and
vital. It has done this by sticking to its primary mission: communicating appropriate content to the
members of the ACM. If it stays this course, I am
confident that its second half century will be as much
fun and as fruitful as its first. c
JON BENTLEY ( jbentley@avaya.com) is a research scientist in the
Software Technology Research Department of Avaya Labs Research,
Basking Ridge, NJ.