What is the correct word for "dependee"?
In other words, what is the word for something that is depended upon? The relationship here is in the context of software engineering
English Language & Usage Stack Exchange is a question and answer site for linguists, etymologists, and serious English language enthusiasts. It only takes a minute to sign up.Sign up to join this community
If you really mean "the thing depended upon", then Mr Disappointment's answer (dependency) is correct.
If you mean the thing that depends on the dependency, then "dependent" ("dependant" in the UK) would work. It's the word we use to describe people who rely on others for support, so it would make sense here.
If A depends on B, then A requires B. So perhaps B is a requirement.
It may also be an import (more specific term, referring to parts of program) or predecessor (since the dependency relation can be thought of as a partial order, as in a
Makefile the dependency graph specifies the order in which things must be done).
Software engineering has many terms for specific kinds of dependency. In a publisher/subscriber relationship, B is the publisher; in a producer/consumer relationship, B is the producer; and in a client/server relationship, B is the server. In package management, B is a prerequisite.
What's wrong with dependencies / dependency? As an example, given the nature you stated, Microsoft use this term in their Services Management Console and differentiate in plain English:
Note the use of an encompassing
dependencies tab and further sentences constructed in the form of
this depends on and
depends on this.
The thing is, you have the word correct (unless you're just looking for a synonym), since one side must be dependent if in question - otherwise it would be independent and therefore irrelevant, perhaps.
I also came here wondering the same thing, so I've voted the question up.
A common occurrence of 'Dependency' and 'Dependencies' in the software / technology sphere is in the rpm package manager.
When installing an rpm package using yum, a search is done for packages upon which the package you are installing depends. At this point yum reports 'Resolving dependencies'. When yum finds a package that the current package depends upon, it reports 'Processing dependency'.
This usage has always baffled me because it is inverse to the English dictionary meaning of the word.
However, since rpm is widely used we can say that this usage is common and it seems the understanding is that dependency can mean either the dependent thing or the thing it depends upon.
Personally, I find this ambiguity rather sloppy, and in some ways indicative of the industry. For example from my knowledge of mathematics, terms are much more well-defined than in software / technology.
Personally, I'd prefer if rpm used a term like 'requisite' to describe the items upon which an item depends. I feel this is better than 'prerequisite', or 'requirement' as they do not imply the concept of a more permanent dependence upon something. Although I feel any of these three terms would be better than the ambiguity of using 'dependency' for both the thing that something depends upon and the dependent item itself. These three terms are also in use and can be understood, although they are less commonly used than the ambiguous use of the term 'dependency'.
A Dependent (n) is a thing or person that depends on another thing or person. It's from the French for "to hang from" and is related to "pendant", "pendulum", and "pending". A less polite word for a "dependent" is a "hanger-on".
Dependency can be a synonym for a Dependent. Outside of computing, it's usually used either to refer to a country or region which is dependent on another, i.e. is not independent.
Dependency can also be a synonym for Dependence, the state of being dependent, and by extension the fact of one object being dependent on another. This is the sense it is used in computing - it is what we call a relationship between two objects where one depends on another.
In French the word for a bracket from which something hangs would be support. This also works in English for the metaphorical meaning for relationships between people. If Charles financially supports John, then John is a dependent. So Charles could be a "supporter". Alternatives such as "guardian", "patron", "sponsor", "protector" or "benefactor" also work, and more specifically describe the relationship between the two.
But they don't work particularly for machines, because they don't have the same relations.
trimblerd depends on
vectord certainly supports
trimblerd in an obvious sense. But "Dependent/Supporter" is not a particularly natural pairing, and seems to carry infelicitous connotations.
Rather, we should try to capture the actual relationship. If
trimblerd won't work at all without
vectord we should use a word which captures that. In this case
vectord so that is the best word.
(It should really be Requisite but that sounds odd to the modern ear. These days Requirement is mostly used as a synonym.)
I very much like requisite as a noun meaning "something that is necessary for a particular purpose". (As suggested by @Ben.) To my ear it doesn't sound that odd.
It also works as an adjective meaning "necessary for a particular purpose," as in requisite object, requisite module, or requisite package as the context demands.
Now we just need to rename all those dependency injection frameworks as requisite injection frameworks.
Software engineers create collections and name them, and the name is critical for others to understand the code. Names are a big thing and getting close to natural language is helpful so the code explains itself, so this is the relevant forum.
A book was written to formalize names for things, the Design Patterns book. In it, the closest this comes to is "Observer" versus "Observable", but that implies additional behavior which is unwanted for the general case.
When A depends on B and C, code might be written
A.supplier = [B, C], and
B.customers = [A]. It is the word from the point of view of the other that is the focus of this question, i.e.,
customer in this example. What does A call B, and what does B call A?
In a tire store, they have a list of "customers" and when they want to stock their shelves, they have a list of "suppliers".
In a database, we have a "master" table and a "detail" table.
In my opinion, we focus on "managing" as a cultural style, so collections are named after the managing thing, so we call it a "list" and from the point of view of the list we have "element". But from the point of view of the element there exists no word to describe the list it belongs to. We rarely focus on this relationship in our culture or philosophy so we haven't invented a usual word for it yet in English. It just doesn't occur enough to us to have such a word.