11

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?

closed as primarily opinion-based by gnat, user22815, Dan Pichelman Nov 12 '15 at 14:03

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 4
    The definition and usage of a word as it pertains to software development is primarily opinion-based? ... Wow. – svidgen Oct 4 '16 at 17:21
14

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.

  • 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 (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 4 '16 at 18:09

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