I actually think the issue Said outlines here is a pretty big deal.
I also see most of the points Abram is pointing at.
I think an issue is “are you trying to have a single conversation, or are you introducing jargon?”
Within the Double Crux paradigm, I find it common to gesture wildly at things that are hard to articulate, and give them a label that’s local to the conversation, and while doing so I literally use phrases like “okay, here’s a thing I’mma gesture wildly at that hopefully we can pinpoint. Let’s call it X?” and they say “do you mean Y?” and I say “no, more like Z.” And then maybe we keep using the word X for the conversation.
And this doesn’t require much outsourced cognition because it’s two people, in the middle of an extended conversation where they’re already committed to teasing apart a confusing concept. By the time you’re already invested in doing that, the extra burden of swapping a word out isn’t a big deal.
The problem comes when you start using that word all the time, and make a bid for it being useful enough to enter the lexicon, and then people start using it offhandedly in contexts where people aren’t paying careful attention to nuanced concepts. And then you get the issues Said mentions.
...
So, the issue comes when it comes time to turn your hashed out conversation into a scalable blogpost that people will refer to. There, I think you should spend a fair amount of time thinking about how to name things. (See Common vs Expert Jargon for my broad opinions on that).
A trigger-action plan I’ve adopted is, when proposing a new jargon term, spend a couple minutes brainstorming what similar concepts people might want to refer to that they might confuse my term for. This is especially important if the other concept is more commonly needed, in which case people will probably use the term incorrectly more often correctly.
...
I don’t have a good overall answer, largely because of what gjm points at (the ambiguity is always there). Mostly I just think people should be mindful of this cluster of issues in general.
Well, since we’re already talking about CS, we might ask whether computer scientists—who, as I mention above, must confront similar problems—have come up with any solutions. And it turns out that they have: namespaces.
For example:
int foo::bar = 5;
function baz() {
int bar = 10;
print(bar);
print(foo::bar);
}
That’s a lot more clear. But it might get cumbersome to type out foo:: every time, yes? And so:
using namespace foo;
int bar = 5;
function baz() {
int not_foo::bar = 10;
print(bar);
// The above line is equivalent to this one:
print(foo::bar);
// And this is something else, of course:
print(not_foo::bar);
}
Not bad!
Of course, it might also occur to us to wonder whether this “namespace” idea has any analogues outside of computer science—has anyone else, by chance, happened to stumble on this solution? And it turns out that the answer is “yes”, and that said solution is all around us: jargon.
After all, a word like—oh, let’s say… “function”—means something different, and much more specific, in computer science, than it does in everyday parlance. The way we deal with this is simple enough: we make it clear, in any given conversational context, that we’re defaulting to some namespace—that is, using some body of jargon—and all ambiguous terms are then interpreted, by default, as having the meanings that they have in that body of jargon. (For example, in this conversation, we’ve established—implicitly, but no less clearly despite that—that we’re talking computer science; we’ve done the equivalent of a statement like using namespace ComputerScience. Thus when I say “scope”, you know that I mean this, and notthis—unless, of course, I specify otherwise, in any given sentence.)
It is no coincidence that namespaces do not generate nearly as much confusion, for programmers, as variable scope does.
Of course, namespaces are less flexible than scoping. But I ask again whether anyone here thinks that it’s a good idea to make all of our conversations, on any topic as complex, and as cognitively demanding, as computer programming. Consider the price of the flexibility you wish for.
It seems to me that namespaces in natural language don’t work very well, either—separate concepts with the same name tend to contaminate each other regardless of any attempts to use “scopes” or “namespaces.” Take for example Bentham’s “utility” and Morgenstern’s “utility,” or statistical “significance” and practical “significance.”
I agree that namespaces are good. I was trying to think of some examples from philosophy, where you might say “Heidegger’s notion of being” vs some other philosopher’s notion of being. But fanfic also provides a ready example.
Scope is the same thing as namespace, except it is implicit, silent, invisible, undeclared. It is simply understood that the context of a function definition (and some other such cases) introduces its own namespace, and namespace conflicts are resolved automatically via some set of rules.
Which is to say, it is a good analogy for our disagreement about how words work.
Of course, namespaces are less flexible than scoping.
… Well, not much, really. Mainly the’re just more notationally burdensome, requiring things to be declared which are normally inferred from context.
But I ask again whether anyone here thinks that it’s a good idea to make all of our conversations, on any topic as complex, and as cognitively demanding, as computer programming. Consider the price of the flexibility you wish for.
The big difference between conversation and computer programming is that humans interpret things flexibly and contextually, whereas machines obey only precise definitions. So, in my view, you are wanting to do away with an element of the thing which makes conversations less complex and cognitively demanding than programming.
I wouldn’t want to have conversations in the way you want to have them because it would make it harder to think.
I’m not arguing for messiness, fuzziness of definitions, lack of rigor. But I am arguing that rigor should be applied strategically, cleanly defining precisely those aspects which are most useful to the goals of the conversation. Anything else is wasted mental effort, which detracts from intellectual progress.
I actually think the issue Said outlines here is a pretty big deal.
I also see most of the points Abram is pointing at.
I think an issue is “are you trying to have a single conversation, or are you introducing jargon?”
Within the Double Crux paradigm, I find it common to gesture wildly at things that are hard to articulate, and give them a label that’s local to the conversation, and while doing so I literally use phrases like “okay, here’s a thing I’mma gesture wildly at that hopefully we can pinpoint. Let’s call it X?” and they say “do you mean Y?” and I say “no, more like Z.” And then maybe we keep using the word X for the conversation.
And this doesn’t require much outsourced cognition because it’s two people, in the middle of an extended conversation where they’re already committed to teasing apart a confusing concept. By the time you’re already invested in doing that, the extra burden of swapping a word out isn’t a big deal.
The problem comes when you start using that word all the time, and make a bid for it being useful enough to enter the lexicon, and then people start using it offhandedly in contexts where people aren’t paying careful attention to nuanced concepts. And then you get the issues Said mentions.
...
So, the issue comes when it comes time to turn your hashed out conversation into a scalable blogpost that people will refer to. There, I think you should spend a fair amount of time thinking about how to name things. (See Common vs Expert Jargon for my broad opinions on that).
A trigger-action plan I’ve adopted is, when proposing a new jargon term, spend a couple minutes brainstorming what similar concepts people might want to refer to that they might confuse my term for. This is especially important if the other concept is more commonly needed, in which case people will probably use the term incorrectly more often correctly.
...
I don’t have a good overall answer, largely because of what gjm points at (the ambiguity is always there). Mostly I just think people should be mindful of this cluster of issues in general.
Well, since we’re already talking about CS, we might ask whether computer scientists—who, as I mention above, must confront similar problems—have come up with any solutions. And it turns out that they have: namespaces.
For example:
That’s a lot more clear. But it might get cumbersome to type out
foo::
every time, yes? And so:Not bad!
Of course, it might also occur to us to wonder whether this “namespace” idea has any analogues outside of computer science—has anyone else, by chance, happened to stumble on this solution? And it turns out that the answer is “yes”, and that said solution is all around us: jargon.
After all, a word like—oh, let’s say… “function”—means something different, and much more specific, in computer science, than it does in everyday parlance. The way we deal with this is simple enough: we make it clear, in any given conversational context, that we’re defaulting to some namespace—that is, using some body of jargon—and all ambiguous terms are then interpreted, by default, as having the meanings that they have in that body of jargon. (For example, in this conversation, we’ve established—implicitly, but no less clearly despite that—that we’re talking computer science; we’ve done the equivalent of a statement like
using namespace ComputerScience
. Thus when I say “scope”, you know that I mean this, and not this—unless, of course, I specify otherwise, in any given sentence.)It is no coincidence that namespaces do not generate nearly as much confusion, for programmers, as variable scope does.
Of course, namespaces are less flexible than scoping. But I ask again whether anyone here thinks that it’s a good idea to make all of our conversations, on any topic as complex, and as cognitively demanding, as computer programming. Consider the price of the flexibility you wish for.
It seems to me that namespaces in natural language don’t work very well, either—separate concepts with the same name tend to contaminate each other regardless of any attempts to use “scopes” or “namespaces.” Take for example Bentham’s “utility” and Morgenstern’s “utility,” or statistical “significance” and practical “significance.”
Indeed; but we can, at least, try not to make the problem worse. Namespaces are better than nothing!
I agree that namespaces are good. I was trying to think of some examples from philosophy, where you might say “Heidegger’s notion of being” vs some other philosopher’s notion of being. But fanfic also provides a ready example.
Scope is the same thing as namespace, except it is implicit, silent, invisible, undeclared. It is simply understood that the context of a function definition (and some other such cases) introduces its own namespace, and namespace conflicts are resolved automatically via some set of rules.
Which is to say, it is a good analogy for our disagreement about how words work.
… Well, not much, really. Mainly the’re just more notationally burdensome, requiring things to be declared which are normally inferred from context.
The big difference between conversation and computer programming is that humans interpret things flexibly and contextually, whereas machines obey only precise definitions. So, in my view, you are wanting to do away with an element of the thing which makes conversations less complex and cognitively demanding than programming.
I wouldn’t want to have conversations in the way you want to have them because it would make it harder to think.
I’m not arguing for messiness, fuzziness of definitions, lack of rigor. But I am arguing that rigor should be applied strategically, cleanly defining precisely those aspects which are most useful to the goals of the conversation. Anything else is wasted mental effort, which detracts from intellectual progress.