Talk:Magic string
![]() | Computing C‑class Low‑importance | |||||||||
|
![]() | Computer science C‑class Low‑importance | ||||||||||||||||
|
Other Meanings/Examples of the "magic string"
ISTM another plausible meaning of "magic string" is just like a magic number but a string instead. This would be a string used to store information that would be better stored using symbolic constants or possibly a boolean variable.
And the string could be purely internal, or it could be in a UI component. The latter is a bit like the kind of magic string that the article talks about, except that rather than being in a text input control, it might be in the text label of a button or the like (this is a form in which I have recently encountered it). That said, maybe this is just one case of a more general kind of anti-pattern for which there ought to be a name: storing state information in GUI controls for later retrieval.
Comments? -- Smjg (talk) 19:38, 16 December 2008 (UTC)
- Mention it in the article. I've actually found another example I hadn't considered previously myself. I'll add when I'm ready to dive back into this thing. --Daydreamer302000 (talk) 07:57, 7 May 2009 (UTC)
Article needs to be rewritten
This article seems to be the result of someone just making up what they believe magic strings to be. Magic strings are analogous to magic numbers and generally refer to the use of strings as a token for some state or entity. I would submit they are referred to as “magic” more as a carry over from its derivation from the concept of magic numbers. The term “magic” here refers to the vagueness in meaning of the token used, or the lack of clarity that exists in how a process enters into the state. —Preceding unsigned comment added by 66.196.25.254 (talk) 15:54, 31 July 2009 (UTC)
- Magic Numbers are numbers seen directly in code with vague or no reference explaining their usage. The reason they are called 'magical' is because programs using such numbers will often function correctly, but no one maintaining the code can readily explain why the program functions correctly since it is not known by anyone currently around just why those particular numbers are there.
- This would seem to be a fundamentally different concept from a magic string. Could you expand on how they are analogous, and where the article should be re-written? --Daydreamer302000 (talk) 10:30, 3 August 2009 (UTC)
- Also, there are plenty of valid references regarding both magic numbers and magic strings. If you sincerely think that the parallels between magic numbers and magic strings are so similar as too warrant a merge or re-write of this article, can you provide references, and point out how the references for this article are invalid? --Daydreamer302000 (talk) 10:35, 3 August 2009 (UTC)
Agree with Preceding Comments
As a professional programmer of ~20 years I've always understood it to be like a magic number. Rswelker (talk) 01:09, 23 September 2009 (UTC)
- There is obviously some confusion because of the names of these patterns. The name magic 'string' implies that the secret input might be of a certain computer data type such as a string (or an array of chars). But it in fact could be any kind of input, even a special sequence of actions via an interface by the user, that is the magical input unlocking the otherwise hidden behavior. It need not be any particular data type at all.
- Likewise, the name magic 'number' implies a numerical data type such as an int, float, double, etc.... However the mystery constant could again be of any type. For example:
int act(string scene)
{
if (scene == "Fireswamp")
{
Attack("ROUS'S");
}
else if (scene == "Reunion")
{
Cry("As you wiiiiissshhh...");
}
}
- Here the magic 'number', that is the value used in code without any obvious reference, explanation, or natural obviousness, is clearly "ROUS'S", even if the data type is likewise clearly a string. (Kudos if you know what that actually stands for.)
- Maybe what this article, and perhaps the article on Magic Numbers, needs is a section that clarifies the differences between the two? Would that be acceptable? I'll look at putting something in. Daydreamer302000 (talk) 11:45, 20 October 2009 (UTC)