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. -----