11

I work in software for a living, and have had a problem recently with the language I use to describe software components. This profession increasingly reveals itself to need the skill to accurately and concisely describe something. My problem is thus: Often I create actors that do something, and other actors that undo something, but I cannot simply invert the words I describe the former with to describe the latter. I need words to name "the thing that undoes".

To use a recent example: the word "wrapper". A quick search in the internet reveals that wrapper is a word, and has a listing of synonyms... but there are no antonyms. Similarly, I tried enveloper and packer, expecting at least "unpacker" to be a word, alas it is not. I haven't done an exhaustive search, yet there seems to be a pattern of words of this form not having an opposite.

Ignoring the legality of the words and using "unwrapper" is a possibility, but spellcheck is going to complain. Maintaining exclusion rules also seems rather... tiresome.

I'd also like to avoid having to use too many words to describe things that undo something. I could have a pair such as "wrapper" and "wrappedcontentremover", but that is mighty inelegant.

For clarity's sake, I mean "one who wraps" and not "material used to coat".

Is there a way to handle this in a legal and concise way?

  • 6
    Making up new words is fun. JS just got thenable. – Carl Smith Aug 24 '15 at 20:48
  • 2
    If, by "wrapper", you mean "thing that wraps", then the antonym is "unwrapper", a thing that unwraps. – David Richerby Aug 25 '15 at 13:19
  • 5
    The shotgun approach in tech is to prepend your word with "un" or "dis" and end the word with "er." You don't worry about whether it is proper English. You should instead worry whether it clearly communicates the intention of your code. – K. Alan Bates Aug 25 '15 at 14:27
  • 4
    There are only two difficult problems in all of Computer Science: Cache Invalidation and Naming Things. – K. Alan Bates Aug 25 '15 at 14:30
  • 2
    @David I caught my error about the spell-check just outside of the 5 minute mark for editing comments, heh. Anyway, I guess I misunderstood the purpose of the dictionary, not as a catalog but as a guide. – Bill Nadeau Aug 25 '15 at 17:35
24

Ignoring the legality of the words and using "unwrapper" is a possibility

English is a changing language. Your goal is to communicate precisely with humans. Given that "unwrap" and "wrapper" are familiar words, no English reader will have trouble understanding what an "unwrapper" is, and is what I would use.

but spellcheck is going to complain

Our software should serve us, and not vice versa.

I need words to name "the thing that undoes".

Looking at this from the software architecture, if you find yourself needing to define a pair of names for each action, it seems like you're begging for a better abstraction. One option is to bundle the doing and undoing behavior into a single actor for each action. It's common for classes implementing the Command pattern to do that. If not that, maybe you can make a single "undoer" type that can generically undo any action.

  • 5
    "unwrapper" is just an example of the completely standard construction [verb]+er = thing that [verb]s. You don't even need to invoke the familiarity of "wrapper". – David Richerby Aug 25 '15 at 13:20
  • 1
    Normally I would agree with this approach, but this is a distributed system. The wrapping and unwrapping happen in different components by design. By the way, I really appreciate "our software should serve us, and not vice versa". I may have been too beholden to my spell checker :) – Bill Nadeau Aug 25 '15 at 15:02
  • 1
    @David It is really strange to me that "unwrapper" isn't technically a word. It's construction seems so natural to me. – Bill Nadeau Aug 25 '15 at 15:04
  • 1
    I've chosen to just use "unwrapper" and add it to my spell check dictionary. Just adding this comment since you proposed a couple of additional courses of action in your last paragraph. – Bill Nadeau Aug 25 '15 at 15:37
  • 4
    @BillNadeau There's no such thing as "technically not a word". The language is defined by usage and dictionaries don't even attempt to list every word that's in common use. – David Richerby Aug 25 '15 at 16:03
18

Software has spawned many new words and new uses of old words, so I think you can get inventive. If there's no easy antonym for "wrapper," start paring suffixes. That gets you to "wrap" in this case, the antonym of which is "unwrap." Hence, I suggest you go with "unwrapper," and simply add it to your spelling dictionary. The meaning of "unwrapper" should be instantly obvious to your users/readers, which is largely your goal.

5

Instead of using nouns, use verbs. That way, for the instance with wrapper, you can use undo or unwrap, the spell check won't have a problem, and you'll know what it is.

  • 1
    The problem with this approach is that you are breaking programmatic language constructs. "objects" have "methods" that execute some particular set of code. You do not name your objects with verbs; you name the methods on those objects with verbs. The quandary is identifying the name of an object that exists specifically for the method that it contains. In this scenario, you typically have much more of a design problem rather than a lexical problem. – K. Alan Bates Aug 25 '15 at 14:29
  • 1
    @Alan This issue arises when you design systems to be highly flexible and create components that have very focused and singular responsibility. You'll find yourself with lots of small components that need very specific names to convey their behavior. Naming them can get very difficult without using a short sentence as their name. – Bill Nadeau Aug 25 '15 at 14:59
5

Think a little more about the principles you're dealing with. You're not necessarily looking for "antonyms", just for other roles in a process.

In the case of your wrapping example, the wrapper you describe is probably responsible for wrapping content up in some container. Logically, something else will eventually want to remove that content from the container. Such a thing could be called:

  • An opener, especially if you want to emphasize its job as something which knows how to operate the container to open it
  • An exposer, especially if you want to emphasize its job as something which makes contained content accessible outside of its container
  • An extractor, especially if you want to emphasize its job as something whcih removes content from containers

I wouldn't call any of these things "antonyms" to wrapper, but based on my understanding of your requirements I'd say these are all appropriate terms to your particular example.

  • 2
    I like extractor. It fits the intent of what I want and is legal. – Bill Nadeau Aug 25 '15 at 14:56
  • 1
    The best answer by far! Not only for the example of wrapper (which I don't think has much to do with wrapping and unwrapping gifts, by the way), but also for the general problem the OP asked for guidance with. – aparente001 Aug 26 '15 at 0:09
3

The problem seems to lie in the fact that in non-technical English, a "wrapper" is a thing, not a process. (Ref: http://www.oxforddictionaries.com/definition/english/wrapper.) You are looking for nouns to represent "the processes of wrapping and unwrapping a collection of things".

The gerunds "a wrapping" and "an unwrapping" might work, though that usage doesn't agree with the dictionary definition of "a wrapping" as a synonym of "a wrapper". At least they will get through your spelling checker, unless its grammar parsing is too clever for its own good.

  • 1
    I think the OP is looking for, in that example, a legal word that means "thing that unwraps". – imallett Aug 25 '15 at 2:05
3

The English language often uses prefixes (un-) or suffixes (-ing, -er, -ism) to create perfectly valid and understandable words from verbs and nouns.

So, a wrap(p)-er is somethng that wraps and aun un-wrap(p)-er is something that does the opposite of wrapping.
Most spellcheckers can't adapt to regognize these composite words, but they do exist and they are words even if they never show up in a dictionary, because the prefixes and suffixes are exactly meant to do that - giving you a way to make "new", valid words, without crowding our dictionary books.

Unfortunately, most spellcheckers just compare the text with their internal dictionaries. Some don't recognize unexpected plurals (I had one not recognize LEDs), some son't get saxon genitives.

Add the new words to your dictionary, double-checking their spelling before committing the change, and call it a day.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.