Wednesday, 9 June 2010

Language in software development

While reading the Martin Fowler Refactoring book on the tube yesterday, I got to thinking about how programming languages are similar to general written and spoken languages.

Here are a couple of examples:
  • Terms that mean the same thing, but are called different names (synonyms).
  • Terms that share the same name, but mean different things (homonyms).
Much like written English, it requires a certain amount of context to determine the meaning of a term within a block of code.

Having a "Ubiquitous Language" within a system, as detailed in Domain Driven Design by Eric Evans, helps to ensure that developers use unambiguous terminology that even the end users of the system should be able to comprehend.

No comments:

Post a comment