This is a question that used to plague me for ages, until I finally sat down and thought it through.

As a programmer, I see both used a lot, and often interchangeably. For me, I like to think of the question by beginning with another question: What is the 'not registered' state called?

Let's assume you're a programmer, but keep in mind this is applies anywhere. When you have a variable which represents some item that can be registered, what do you call the function to discover if it is registered? In all likelihood, you'll call it 'isRegistered()'. So in that sense, you make the problem into a boolean. i.e. is it registered, or is it NOT registered.

Then, from that logic, I believe your options simply become:

  • isRegistered() - false if the object is 'unregistered' - i.e. 'not registered' false == isRegistered().
  • registerSomething() - It has now moved from 'not registered' to 'registered'.
  • deregisterSomething() - It has now moved from 'registered' to 'not registered'. i.e. 'unregistered'.

This is why it's convention in programming to call an object that hasn't been 'initialised' as 'uninitialised', not 'deinitialised'. This implies it was never initialised to begin with, so its initial state is 'uninitialised'. If its initial state was called 'deinitialised' it would give the false impression that it was previously initialised.

The bottom line for me is that you should define a convention for its use in your particular context, and stick to it. The above convention is what I now use throughout my code.

Urgh... Here is all of that in a single line ;)

state=unregistered -> 'register' -> state=registered -> 'deregister' -> state=unregistered.

-- Shane


Here's a look at usage during the last 20 years:

unregister/deregister

As evidenced, unregister received a substantial boost shortly after the dot-com boom/bust of the late 90s, while deregister usage has been more or less the same throughout. It's worth noting that neither word is defined by any major dictionary, although some lesser dictionaries include the two. (Of course, placement in a dictionary does not mean a word is "real" or not - a word can exist anywhere - but it does indicate whether or not the word enjoys popular usage and if it has standardized spellings.)

Additionally, both the un- and de- prefixes can be defined as a reversal of action.

Despite the similarities, I'd go with popular usage and use unregister.