Sometimes in describing a concept X in one domain, someone will ask “oh, is that like X’?” where X’ is the same concept or a very similar one, expressed in a different domain.
The quick answer is “Yes”, but that permits a range of interpretations from “X and X’ are the same things in different contexts” to “this domain that’s new to me can be thought of by analogy to the thing I already know. For example, what I know as X’ exists, except that they call it X”.
One long answer is “There exists an idea called Meta-X. Both of these domains contain expressions of this idea, but one represents it as X and the other as X'”. But now, possible interpretations include “Meta-X is pure and both X and X’ are tainted”, “Meta-X is some fundamental proposition about the universe”, “Meta-X is some meaningless fiction invented by Graham to sound profound”, “Meta-X is some attempt to conceptually combine two different real things”.
So neither answer is “correct”, and you can’t present information in a way independent of those trying to make use of it.
I would appreciate an example.
The ideas that led to this post came up in a discussion of the Java language in an OOP course, where someone who’s mostly experience with C# frequently asked whether this Java feature is like that C# feature. In that case, I’m pretty comfortable with saying yes, although I might give a leading answer like “Yes, C# is rather a lot like Java in this respect”.
I forget any specific case, but imagine that classes came up. Are Java classes like C# classes? Yes, quite a lot like them. Is it OK to think of a Java class as basically the same as a C# class? Probably, though there are situations where one model doesn’t match the other (I can’t add extension methods to a Java class). Does that mean that there’s some abstract thing called ‘classness’ that both C# and Java implement?
Well, here we get into difficulty. Plenty of presentations of OOP say something between “OOP is a thing, and it has these things called classes. Java and C# implement OOP, so they have classes.” and “Classes are fundamental to OOP. Java and C# implement OOP, so they have classes.” But then the following statements are also possible:
There are many more alternative statements. Which I would choose to use depends not only on what I believe, but on who I’m talking to and what we’re trying to get out of the conversation.