Re: c.d.theory lexicon overview

From: Senny <>
Date: Thu, 22 Apr 2004 19:13:44 GMT
Message-ID: <IPUhc.1343$>

Alan wrote:

> I have not read your entire treatise

It's actually the tip of the iceberg, but I didn't feel like going off on specifics.

> I think it is not possible (or correct) to declare that a particular word
> (e.g., function) have one and only one definition for the entire CS
> paradigm.

Counterexamples: 'Canis rufus' (bio.: "red wolf"), 'neurofibromatosis' (med.: look it up), 'Nolle Prosequi' (leg.: from Latin "not willing to proceed"). These terms each have one and only one definition for their respective fields (and these fields have been around a lot longer than ours). One word -> one meaning is the very goal of terminology.

> A particular word has a correct meaning within its context, and
> the context assigns the meaning.

This would be fine if the contexts didn't overlap. In perhaps the worst case, a VB 'function', an Caml 'function', a JavaScript 'function', a mathematical 'function', and a colloquial 'function' might appear in the same discussion. I can tell you with great frustration that as a programmer I regularly have to deal with *at least three* *very different* meanings of _function_ when I write an application with a database. The following (rather obtuse) sentence contains the most common three: "The function of this function is to get the tuples from B that are functionally dependant on A."

> Just like language.

But it's not just like regular language. Terminology, nomenclature, is a specific subset of language that doesn't follow the usual willy-nilly rules of regular human language. Look at legalese and medical terminology. They don't behave just like regular language--that's what makes them work (and sound really weird to the uninitiated).

> The problem occurs when a word is used incorrectly, but that happens in
> the normal use of any language.

When a surgeon misuses medical terminology, dire consequences may result. When lawyers misuse legalese, they may lose their case. This points back to the fact that they have arcane terminology because precision matters. Our lack of precise terminology results in bad programming and time lost on debating the meaning of our words. We can't eliminate misuse, but we could reduce it greatly.

> The solution is not to create more words to describe a specific
> idea in a specific context.

I agree that we should not create more words than we need. OTOH, why do we have 'bit', 'function', 'drive', etc.? Did we need to create any of the words we have now? Can one assume that just because we don't have a certain word today, we don't need it? New terms are being created right now, even--badly. A recent addition is 'aspect' as in 'aspect-oriented programming'.

> An argument can be made that this only creates
> an opportunity for additional words to be used incorrectly. This idea is a
> quasi-corollary (just made that up) to William Safire's, "Never use a big
> word when a diminutive one will do." Or, another way to look at it, "You
> can lead a programmer to order, but you can't make him think" (apologies
> to Dorothy Parker).

It sadly does create such an opportunity, but it does not *only* create such an opportunity. I don't think botanists have run amuck because they have so many words to play with.  

> Getting everyone to agree on and use specific terms is just about
> impossible, IMO. Back in the early 80s, I argued with a fellow video
> engineer about whether the word was "digitize" or "digitalize". I insisted
> on "digitize", because you are turning something into digits, not
> digitals. Looks like I won, but he is probably still trying to correct
> people. He was pretty stubborn.

Well, that demonstrates part of the problem. A lot of our choices are arbitrary. It's often hard to say what's better. For example, the JavaScript 'function' is closer to the original meaning of the word than the mathematical 'function', so why do "purists" scoff at JavaScript's definition?

I wouldn't care about all this if it didn't matter. I'm tired of butting heads with coworkers because of individual words. I'm tired of the unchecked proliferation of horrible new terms ('webcurity', 'DMZ'), especially ones based on badly used existing terms ('post-relational', 'object-oriented').

The situation will only continue to get worse unless a concerted effort is made to rehash our nomenclature. I don't know if the community is up to it, though. Programmers, unlike lawyers, seem to be fine with ad-hockish kluges.

So, to summarize, your arguments are all correct in reference to everyday language. (In fact, I appreciate your understanding.) However, they do not apply to terminology, where the quest for precision overrides colloquial behavior.

--Senny Received on Thu Apr 22 2004 - 21:13:44 CEST

Original text of this message