Talk:1306: Sigil Cycle

Explain xkcd: It's 'cause you're dumb.
Revision as of 14:50, 28 December 2013 by (talk)
Jump to: navigation, search

Shouldn't it be QBASIC$ (or QBASIC%), since in Basic the sigil is attached to the end of variable names? -- 13:19, 20 December 2013 (UTC)

Could not find where categories can be added, here's a list of suitable categories: Charts, Computers, Comics presenting a compromise Internet, Programming 13:32, 20 December 2013 (UTC)

This comic de-emphasizes the value of sigils. It's very ironic that Randall chose C++, a language with symbols, to exemplify plain words. And C is a reason for not naming technologies after letters. Same with X. You have to search for "C programming language" or "X window system." It's very helpful to distinguish things with unique sigils, especially in this current age where we depend on full-text search. Just look at my login ID, tbc. I have been tbc on the Internet since 1981. But I eventually had to go by tbc0 (e.g. on Twitter) because tbc isn't unique enough. Google was named after 10^100 (an incomprehensibly large number reflecting their ambition). But that number is spelled googol. They own their spelling. Brilliant. Consider examples: iMac, iPhone iPad, Yahoo (a little weak), Facebook (they own that word). It's all about branding. Google Kleenex or Xerox and you'll see that they're excellent sigils. The problem is, those terms have become generic. Their brand is a little weaker for it. Finally, on Twitter, @and # unleash powerful features. — tbc (talk) 15:01, 20 December 2013 (UTC)

C++ uses symbols, but it doesn't use one to denote that an identifier is a variable (like PHP) or the type of an identifier (like early BASIC, Perl, and arguably Twitter). And when I search for X, it's either X11 (the protocol) or Xorg (the widely used server implementation). And Barney Google had it first. --Tepples (talk) 15:55, 20 December 2013 (UTC)

Any way we can expand on the history of programming (if applicable)? Did these languages become popular in a certain order, or were they developed as a response to one another? Or is this comic simply Randall's journey through programming, not specifically tied to the popularity (or development) of certain coding languages? --

They pretty much appeared in the order listed. I don't think they represent Randall's experience (or really anything else); the differences in how they handle variable names/types is mostly a function of their different purpose, and Randall picked those specific examples simply to fit the timeline (e.g. sh and ksh have the same syntax as bash, but since they came before QBasic they would break the pattern).

The google mentioning isn't explained well enough imo. Instead if just saying "they have a service called google plus", it should be told how the + sign is used throughout the service, like every other instance in the article. I may do the edit myself, but it's not likely. 15:26, 20 December 2013 (UTC)

"Ironically, it is the name if the language itself that includes symbols."

It's not very ironic. Variable names don't include symbols, but commands do. This statement should be rewritten.

int c = 0;


c += 1;

c = c + 1; (talk) (please sign your comments with ~~~~)

I find it ironic that "C++" in a statement would be interpretted as "C" and only post-incremented (i.e. only incremented when next referenced). Meaning "C++" is effectively the same as "C", in its own context. They should have named it "++C", if they wanted to indicate that it was itself improved upon the original value of C. ;) 16:37, 20 December 2013 (UTC)
This is an incorrect interpretation of the statement c++. c++ as a standalone statement, on a line by itself, will result in c being exactly one greater than before the statement (the value stored in that memory location will indeed be one greater); using prefix or postfix ++ in this context is functionally equivalent and most people just prefer using the postfix version. Where the distinction between the prefix and postfix versions come into play is in more complex statements where the operator's return value is not ignored. For example,
int c = 1;
int x = c++;
x will be initialized to 1 because the postfix ++ operator returns the value of c before it was incremented, but the value stored in c will be 2 regardless of further reference. If, instead you initialized x using the prefix version, ++c, x would be 2 because the prefix version of ++ returns the incremented result. (Side note: it's often considered bad practice to rely on the return value of the increment and decrement operators.) 20:58, 20 December 2013 (UTC)
No, I stand by what I say. I actually agree with your code, but freely parsing "I will use C++ for this project", as a phrase (at least the first time you utter it) might so easily be a statement that gives a direct result equal to "I will use C for this project". (It helps to have just the right geeky sense of humour, of course.) 21:56, 20 December 2013 (UTC)
Oh, I assure you, I am quite geeky. I could, for instance, argue that you're mixing the grammars of English and C++, a natural language and context sensitive language. 22:21, 20 December 2013 (UTC)
Personally, I see no problem. When you start programming in C++, you are writing code which is effectively C. Only when you program in C++ longer time, the code will improve. -- Hkmaly (talk) 12:13, 21 December 2013 (UTC)
Wrong, as "I will use C++" actually does mean "I will use C++", because the moment you finished uttering it (command break), C indeed becomes one point greater ;) 06:29, 24 December 2013 (UTC)
Regarding the name of the language, Bjarne Stroustrup himself has said, "Connoisseurs of C semantics find C++ inferior to ++C." Elsbree (talk) 07:03, 26 December 2013 (UTC)
It's still not ironic that the name includes symbols. I removed the word 'ironically', it doesn't make sense. (talk) (please sign your comments with ~~~~)

Extending the first comment above: Since the strip is known for being rather technically strict, it's odd that it says "word ... will START with", yet QBASIC variables END with symbols, and Google+ ENDS with a symbol. 18:11, 20 December 2013 (UTC)

That's not a problem with Google, because the sigil comes at the beginning there. But it's a problem with QBASIC, all right. —TobyBartels (talk) 05:01, 21 December 2013 (UTC)

Although C++ doesn't force you to use sigils, by convention programmers would still use sigils. Conventionally, variable names were named nCount, or fCost. The first character in the variable name indicated the data type. This convention was extended by Visual C++, and it started naming interfaces starting with I. Eventually, this convention fell by the wayside because IDEs started getting smarter and you would get code complete and some sort of information via a tooltip that eliminated the need for the Sigil -- 18:16, 20 December 2013 (UTC)

Hungarian Notation (and similar schemes) aren't "sigils" (according to wiktionary, a sigil in this context is non-alphanumeric, and the comic would seem to imply this also). -- 22:45, 20 December 2013 (UTC).

I think this explanation could do with some better explanation of the programming concepts it describes. Not every xkcd reader will be familiar with programming languages. --Mynotoar (talk) 21:20, 20 December 2013 (UTC)

I've expanded the introduction for now to more fully explain programming languages and variables - it wasn't very clear to non-programmers - but I think the rest could use some work too. --Mynotoar (talk) 18:29, 21 December 2013 (UTC)

If "C++" "started" with a symbol, then I would agree that it is ironic that it appears in the graph in the position that it does. Since it does not, however, I must dispute your use of the word "ironic". 03:14, 21 December 2013 (UTC)

How could 'see plus plus' be pronounced any other way? 11:15, 23 December 2013 (UTC)

'see add add'? --Mynotoar (talk) 22:33, 26 December 2013 (UTC)