I wouldn’t trust you with a barge poll

Much like common sense is not all that common, plain English is rarely plain. And this is even more true when you’re speaking a domain specific language (or to the man on the street, jargon). In the world of software development we speak a very dense DSL packed with nouns that have very specific meanings. I use the word dense because there are also loose DSLs,

As example of the difference consider an address and a phone number. The address may have redundant information in, like street name and post code, or country for an non-international letter. A phone number on the other hand has no redundant information and hence is susceptible to having its meaning completely destroyed by a typo. With an address we have a little more leeway but enough typos and your letter won’t get to where you were hoping.

So when we speak in a dense DSL we need to be careful to say exactly what we mean; for example in interviews I often ask what does static mean in the context of C#. The answer I usually get is:

It means you only have one copy.

Which isn’t wrong but it’s vague, and vague is pretty close wrong in my book. A better answer would be:

Static can be used as modifier keyword to declare a member variable on a class

Far better; it shows a precise knowledge not only of the C# language but of the DSL that surrounds it. Also It’s not overly precise, it gets to the point and stops.

Now this is a simple example but the concept of terseness is widely applicable. Often I’ve found people who pride themselves on the terseness of their code don’t extend that same pride to the duration of their sentences. So given that I don’t have the time to make this any shorter, I’ll leave it there.

One Response to I wouldn’t trust you with a barge poll

  1. Hans says:

    Maybe I’m missing something, but reading this post I think “what?!?”.

    Your “better” version doesn’t… say anything about what static does. Would you really be happy with someone giving this answer?

    How about “static declares a member variable that is not tied to an object instance.” Oops, doesn’t mention that it’s a keyword. But I’ll take this answer over either of yours any day.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: