4

While reading a RFC for the Rust programming language, I came across this paragraph:

Given the above code, there is no way for bar to choose a return type X that could fundamentally differ between instantiations of Self -while still being instantiable with an arbitrary U.

The word instantiable caught my eye and my spell checker agreed that it wasn't a word. However, neither was the alternative I'd expected it to be: instantiatable.

Merriam-Webster defines instantiate as:

to represent (an abstraction) by a concrete instance

Which seems to match up well with the general programming concept as I understand it, so I don't believe deep programming knowledge is required to weigh-in on this formation of the English word.

15
  • 1
    yourdictionary.com/instantiable
    – herisson
    Jul 17, 2016 at 19:30
  • 1
    instantiatee or instantiate-ee: en.wiktionary.org/wiki/-ee For future reference, anytime you need to indicate the recipient/object of some action or doer, just add -ee to the end of it
    – user180089
    Jul 17, 2016 at 19:31
  • 2
    Spell checkers are not reliable sources for determining that something is "not a word." You should check a dictionary. (Even if a word is not in the dictionary, it does not mean that it is "not a word." Physical dictionaries have limited space, and even digital dictionaries need to have entries added to them by people who have a limited amount of time. They can't list all the words that can be formed with highly productive affixes such as un-, re-, -ly, and -able.)
    – herisson
    Jul 17, 2016 at 19:33
  • 3
    In this chapter, we take modularity several steps further by creating what Java calls Instantiable classes. My crappy spell-checker doesn't even believe modularity is a valid word. It may be worth noting that OED's first citation for instantiate is 1949. Spell-checkers are often implemented using out-of-date (i.e. - cheap) lists of valid words. They exist to remind you to check whether you might have made a silly mistake, not to teach you right from wrong. Jul 17, 2016 at 20:29
  • 1
    @EdwinAshworth Yes, will do. I was toying with that idea, but wanted confirmation that something about this was indeed strange--thank you.
    – DjinTonic
    Apr 1 at 14:31

3 Answers 3

3

The computer program you are using is buggy, because it doesn't know about English derivational morphology, let alone Latin derivational morphology whence this all originates.

We have plenty of pairs that work this way:

  • affiliate, affiliable
  • appreciate, appreciable
  • appropriate, appropriable
  • associate, associable
  • denunciate, denunciable
  • differentiate, differentiable
  • dissociate, dissociable
  • enunciate, enunciable
  • excoriate, excoriable
  • excruciate, excruciable
  • expiate, expiable
  • inappropriate, inappropriable
  • negotiate, negotiable
  • propitiate, propitiable

That's just how these things work. Spelling checkers are fundamentally incapable of deciding whether something is not a word.

1
  • 3
    As a programmer, I would quibble with the usage of the word "buggy", especially when it comes down to patterns and rules as complicated as the English language. As a human, however, I understand what you are saying ^_^
    – Shepmaster
    Jul 17, 2016 at 19:44
-1

A concrete class can be instantiated, as opposed to an abstract class, which provides method definitions but not the implementations.

It seems to me that abstract can be used in a fairly general way, and that most readers would know what you intended.

Rust is supposed to be an alternative to C++, so concepts from the origins of C++ might be your safest bet here.

https://en.m.wikipedia.org/wiki/Software_design_pattern

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.