Currently there are two tags that cover roughly the same territory: definitions and assignment. The question is which should be used? From a user perspective, I think definitions is better, but I'd like the community's input.
-
I've checked on the tag wikis for assignment and variable-definitions but I'm not sure I can see the difference. Could you, or anyone else, improve the wiki to reflect better the decision of this thread? At the moment it seems like variable-definitions covers some underdefined subset of assignment. – István Zachar Jun 26 '12 at 12:37
I vote for definitions as well for the same reasons as Szabolcs. However, I wonder how useful either tag is. I'm new to this but based on other posts I've read tags are supposed to make it easier to find a question.
When might a user be interested in all questions tagged definitions? I'm sure I'm missing something but this doesn't sound like a useful search criterion to me.
Edit: Here are some possible suggestions for the questions currently tagged with definitions.
Can we use letter with a subscript as a variable in Mathematica? typesetting.
SetAttributes[f,Flat]: Why the order dependence? attributes I don't think any others are necessary
How to check for Mathematica’s definition of XY? implementation This question is asking what the underlying algorithm is doing. I'm not in love with implementation but I think we need something more specific than definitions unless this is the only way we use it.
Saving Mathematica kernel state? saving possibly need to rethink that one?
Clearing a specific definition upvalues
The various *values are things lots of users have questions about. I think OwnValues, DownValues, SubValues, and UpValues all deserve their own tag (or perhaps a tag that refers to all of them in a clear way).
-
Also, how does one enter a tag in a question/answer so that it appears as a tag? – Andy Ross Jan 31 '12 at 0:28
-
-
-
I can see your point about usefulness, but do you have any alternative suggestions? – rcollyer Jan 31 '12 at 4:42
-
Does everything need a tag? Looking at the questions currently tagged definitions I don't really see a common thread. – Andy Ross Jan 31 '12 at 4:52
-
Yes, everything needs a tag. But, you're right the current questions tagged definitions, is a bit schizophrenic. assignment is a bit more sane as they literally have to do with assigning values and definitions to things and the effects of such assignment. (Definitions needs some pruning.) – rcollyer Jan 31 '12 at 4:56
-
1Everything needs a tag in the sense that every questions needs to have at least one tag. Actually I agree with Andy that a definitions tag not that useful: I wouldn't search for it either unless I remember an old question being tagged with this specific tag for some reason. – Szabolcs Jan 31 '12 at 8:57
-
In the main, your argument is persuasive. But, let me play Devil's advocate here, obviously this question would be tagged upvalues, but what about the other aspects of the question? Is there a general umbrella under which to put this question? What about the other questions in assignment? – rcollyer Jan 31 '12 at 13:37
-
My feeling is that we either tag things with the various *Values or stick with one tag that is synonymous with all of them. If the group likes assignment for this purpose I think its fine so long as we consistently use the the tag in that way. I'm just afraid that we will label too many things with such a general tag, voiding its usefullness. – Andy Ross Jan 31 '12 at 15:24
-
1That summarizes nicely my thinking on this. At some point (it may be now), we may find we need to break assignment out into separate tags. But, in the meantime, consistency is what I'm trying to achieve. (It may be an uphill battle, though.) – rcollyer Jan 31 '12 at 16:25
-
How about implementation-details, if it will fit, instead of implementation, or even internal-algorithms? – rcollyer Jan 31 '12 at 16:27
-
I think any of the above is fine so long as we are consistent in how we use them. – Andy Ross Jan 31 '12 at 16:31
-
Lastly, saving -> persistance? Also, to encourage consistent use I'm adding (slowly) info to the tag wikis. – rcollyer Jan 31 '12 at 16:49
-
I'm really not sure about that one. It sort of fits into questions about the kernel-state. Sometimes we wish we could save the state of the kernel, other times we might have gotten the kernel into a state that produces strange errors and have questions about that. – Andy Ross Jan 31 '12 at 17:09
-
I vote for assignment. In a mostly immutable system like Mathematica, operations that change the global state are very important. The word "assignment" reflects the process of changing state much better than "definitions". Besides, "definitions" is really unclear for non-experts: do we mean values for symbols, or do we mean something else. Even for experts, this word does not have a single well-defined meaning. It may be that we'll still need something like this, but IMO assignment we need more, and we can also do something along the lines proposed by @Andy - use several more focused tags.
I vote for assignment. I think I might have said this before on chat, but I think of assignment as the act of setting a value to a name, and definitions as the result you access later.
So there might be room for both, but assignment works better for me and is less ambiguous. I am not sure the distinction Szabolcs makes is one that will be made by less experienced users and people who know other programming languages. We don't want to make more retagging work for ourselves.
I don't favor tags for UpValues, DownValues etc separately. These will be visible to a search anyway, and unlikely to be followed as separate tags.
I vote for definitions:
When I hear 'assignment', I think of variable assignment, i.e. only OwnValues
.
When I hear 'definition', I would also include DownValues
. So 'definition' is more general than 'assignment'.
I don't know if others use the terms in the same way or not though ...