Let the language be your guide

Posted by Andy Gavin on Fri, 2006-01-13 14:54


'Tis but thy name that is my enemy.
Thou art thyself, though not a Montague.
What's Montague? It is nor hand, nor foot,
Nor arm, nor face. O, be some other name
Belonging to a man.
What's in a name? That which we call a rose
By any other word would smell as sweet.
So Romeo would, were he not Romeo called,
Retain that dear perfection which he owes
Without that title.

In her frustration that Romeo was a Montague in name, Juliet in Romeo and Juliet pronounces but it's only a name. Her love runs deeper than the family feud. What is in a name, or even a language is an interesting question. How something is described is relavant in all walks of life and is often overlooked or sidelined. In software engineering for instance people can get surprisingly fanatical about which programming language is to be used to solve a problem. Software architecture dicussions can often exhibit the same sort of linguistic politics that occur in the real world, snobery in particular.

One discussion that frequently comes up in the software community has come up recently at work. What is the usefulness of domain specific languages? Many would like to see their language of choice take over the world eschewing any other language. For people who prefer to be monolingual the absolute enemy is an in-house language. In environments where this is a prevalent attitude the design would move to describing as APIs on an existing lanaguage with perhaps structured data like XML. Which is a good approach. However dismissing creating a language as a matter of principle might be creating more maintenance in the long run. If the problem and/or parameterisation being attempted is sufficiently complex then a general purpose language may be too broad--- allowing many more mistakes to be made than if the language itself was designed for the task.

In linguistics there is an idea, which has some merit called Linguistic Relativity. Within this idea there is the notion that the language you speak can limit your expression and in turn limit your way of thinking (Linguistic Determinism). This has been applied to programming languages, the idea illustrates why (above limiting human error) why you may need to create a domain specific language. But for one thing, if the language is more suited to a form of communication in a particular problem domain it could make that area easier, not harder to use. Not everyone is a programmer and sometimes the language can be your guide.

Add new comment