TITLE: Programming as Map-Making
AUTHOR: Eugene Wallingford
DATE: June 02, 2006 9:16 AM
DESC:
-----
BODY:
Yesterday evening, I was thinking about map-making,
which I had discussed briefly in my blog on
Programming as Discovery and Expression.
Dick Gabriel discussed map-making as an activity like
writing and programming, an act blending discovery and
expression. I've long considered the analogy between
programming and writing, but the analogy between
programming and map-making was new to me. It jumped
back into the forefront of mind while walking.
Programming is a lot like map-making. Cartographers
start with the layout of the physical world, the earth
and its features, and produce a model for a specific
purpose. We programmers start with a snapshot of some
part of the world, too, and produce a model for a
specific purpose. Like map-makers, we leave out some
details, the ones that don't serve our purpose. When
we write business software, we create little models of
people as objects or entries in a database table, but
we leave out all sorts of features. I rarely see a
"hair color" attribute on my business objects. Like
map-makers, we accentuate other details of interest,
such as wage rate and years of service.
Is there anything
for us to learn
about programming from this analogy? Have you ever
heard of this metaphor before, or seen it discussed
somewhere? I'm not thinking of conceptual analogs
like "mind maps" and generic modeling, but
honest-to-goodness maps, with mercator projections
and isobars and roads. I think I'll have to read
a bit on the act of cartography to see what value
there might be in the analogy.
-----