The Artima Developer Community
Sponsored Link

Abstraction and Detail
A Conversation with Andy Hunt and Dave Thomas, Part IV
by Bill Venners
March 24, 2003

<<  Page 3 of 3


Configuration versus Coding

Bill Venners: Why is configuring with data or a mini-language better than coding?

Andy Hunt: You are trying to set up an environment where you can more directly, concisely, and clearly express what the user wants. When there's one change in the real world, you want to be able to make only one change in the code. By setting up an environment that includes a dedicated domain language, you come much closer to that goal. When something in the real world changes, you just change one high level statement. If the entire system were coded in a regular programming language—Java, C++, Ruby, whatever—you might have to change a dozen lines of code. If you have a special purpose language or some configuration data more closely tied to the real world, poof, you can just change one parameter. Metadata you helps you avoid the multiplicative effect real world changes can have on the code base.

Next Week

Come back Monday, March 31 for Part V of this conversation with Pragmatic Programmers Andy Hunt and Dave Thomas. If you'd like to receive a brief weekly email announcing new articles at, please subscribe to the Artima Newsletter.

Talk Back!

Never metadata you didn't like? Think refactoring is a better approach? How do you achieve agile code? Discuss this article in the News & Ideas Forum topic, Abstraction and Detail.


Andy Hunt and Dave Thomas are authors of The Pragmatic Programmer, which is available on at:

The Pragmatic Programmer's home page is here:

Dave Thomas was not the first person I've interviewed who mentioned the arcade game Whack-a-Mole. James Gosling also called upon the versatile Whack-a-Mole metaphor while pointing out that it is sometimes hard in engineering to know if you've solved a problem or moved it:

The Agile Manifesto is here:

Ward's Wiki, the first WikiWikiWeb, created by Ward Cunningham, is here:

Extreme Programming: A Gentle Introduction: An Extreme Programming Resource:

<<  Page 3 of 3

Sponsored Links

Copyright © 1996-2018 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use