20

I see in many places where the word Resolve is used, in Dependency Injection (resolve an implementation to an interface), Package Managers (ex: Resolve packages dependencies), Web (ex: Resolve a hostname).

So what does make the logic of the code so special that makes someone choose the word Resolve over a simple Convert or Transform or even a Get?

anouar.bag
  • 789
  • 2
  • 6
  • 9
  • 5
    The definition and usage of a word as it pertains to software development is *primarily opinion-based?* ... Wow. – svidgen Oct 04 '16 at 17:21

1 Answers1

22

The difference is slight, but consistent. Transforming a representation into another one involves taking the same data and expressing it in another format - for instance, a hexadecimal into a decimal number, or mixed-case strings to an all-lower string. Typically, you need nothing but a fixed set of rules to carry out such a transformation.

Resolving a name typically involves querying some repository that associates names with information that cannot be predicted without the repository. google.com may resolve to a specific I.P. address (several, actually), but that is an accident of the I.P. assignment history - it might just as well have been a totally different number, and there is no way of making this translation that doesn't somehow involve storing the entire registry, or querying it online. Similarly, resolving packages dependencies usually requires installing the missig packages - it isn't enough to know the names of the missing components, you have to actually acquire their contents, and the contents are not predictable from the name alone ("QMail" sounds like a mail program, but you can't predict its exact properties just from the name without installing it, since the name transports far less information than the compiled program).

Therefore you shouldn't use the term "resolving" for something that is a mere context-free data transformation. Reserve it for situations where a substantial amount of information is symbolized by each name, so much that the only reasonable arrangement is to have a central registry for it.

Kilian Foth
  • 107,706
  • 45
  • 295
  • 310
  • Any Idea where does this terminology come from (an analogy or somthing) ? – anouar.bag Nov 12 '15 at 12:38
  • @anouar.bag To resolve: find an answer or a solution to something (http://www.merriam-webster.com/dictionary/resolve[1]) => Resolving a symbol/name is to find the answer for that symbol/name, i.e. determine what it is. – Christophe Oct 04 '16 at 18:09