Around ten years ago I worked as an instructor teaching people programming here in Sweden. My company decided I did such a good job they would send me over to their parent company in the UK to teach some classes there. I knew the material by heart so, no problem, I thought.
I quickly discovered, right in front of the class at the white board with marker in hand, with my first " { " written, that being fluent in English was NOT the same as being fluent in Spoken Programmer English.
My second realization was that almost nobody in the United Kingdom spoke a dialect of English that I could comprehend, but that's another story.
Bonus info: { } are called commonly called måsvingar/seagull wings in Swedish, which really gave me no hint at all what to call them in English.
Swedish also has a funny name for the @-sign, named after the trunk of an elephant. In fact, quite a few languages do. Here's a short sample from the Wikipedia article:
In Swedish and Danish the sign is known as the "snabel a" (literally trunk a), owning to the resemblance between the sign and the trunk of an elephant. In Norwegian the term most commonly used is "krøllalfa" (literally: curled alpha). In Greek the sign is known as "papaki" meaning small duck. In Slovenian, the most common word for it is "afna", colloquially meaning "monkey", much like in Polish. In Hungarian, it is called "kukac" meaning "caterpillar".
Witch makes overheard conversations quite weird, since apenstaart is quite a long word: «yea, that is em-dot-dee-ee-vee-ar-eye-ee-es monkeytail hotmail-dot-com»
I've always called them 'curly brackets' which, on reflection, is a little like calling a keyboard a 'typey box'. Funny how long you can do something without really questioning what you're doing!
I'm a self-taught coder with no formal CS training, and as such have found over recent years that I've been lacking (among other things) some of the appropriate vocabulary to talk about programming unambiguously.
Consequently, I'm always on the look-out for more formal and concise terms where previously I may have used more simplistic language - in this case, 'braces', 'brackets' and 'parentheses' struck me as being the best way to describe {}, [] and (), compared to curly, square and normal brackets (as I've likewise always called them). <> will have to remain angle brackets though I think.
I'm from the US, but I think I know it almost exclusively from Unix shell scripts and Perl documentation, where `foo` is called the "backtick operator".
Yes, I think it could be your (our) tech context more than geographical; I came up through the unix and perl worlds and am in the US, and have ONLY ever seen that as 'backtick'.
In Perl "=>" is (almost) a comma, i.e. { a => 1, b => 2} is the same as { "a", 1, "b" , 2 }. I assume Ruby with its Perl heritage has this to some degree.
One of my co-workers uses "cash" for $. I think that's the worst possible choice for pronunciation since it sounds just like "cache", which is another thing you need to talk about fairly frequently.
I refer those interested in this topic to the INTERCAL character naming conventions, now hallowed by tradition and skirting the edge of madness. As a taster . is one-spot : is two-spot , is tail and ; is hybrid. # is mesh. <- is known as an 'angle worm' and is pronounced 'gets'. It goes on from there.
These are in Jeff's chart. And really most of them shouldn't be: they aren't "rare" pronunciations -- they're non-existent pronunciations. Nobody uses them, except to point out how silly INTERCAL is. And rightly so, since INTERCAL was created to be unusable.
However, there are a couple that, despite the INTERCAL authors' best efforts, have entered common usage, according to the chart: "mesh" and "splat".
Being French, I still find these names way better (as in clearer and more understandable for a foreigner) than the English ones. Why is ":" called a "colon"? That makes no sense!
It is pronounced almost exactly the same way (deux-points, point point) in french Canada. "Double-point" is valid according to Wikipedia, but I've never heard it before.
".." does not exist in French typography, we have the Points de suspension: "...", instead.
I'd like to add that it is wrong to think about commas, semi-colons, etc. in terms of duration of a pause in the speech. These signs articulate written sentences' syntax, and it sometimes relate to pauses when read aloud, but it is not a bijection. When analysing recordings, J. Drillon (Traité de la ponctuation française) showed that the correlation is really weak.
In fairness, the context of all this is ASCII characters, especially in the context of programming, not typography in human language. Various programming languages use ".." for expressing ranges. I think most (western) languages use the ellipsis "…" for the purposes you mention, which is actually typographically subtly different than 3 full stops.
It's from classical Greek/Latin rhetoric. In at least some grammarians' writings, there are grammatical units called the 'period', 'colon', and 'comma' (in decreasing order of granularity). The names became applied to punctuation separating those units as well.
Although, confusingly, I believe the English semicolon functions more similarly to the punctuation associated with a Greek/Latin colon.
Yeah, German calls them "Doppelpunkt" (double point or double period) and "Strichpunkt" (and "Strich" is normally a dash, so dash-point or dash-period, depending on how you want to translate "Punkt").
Minus always annoys me, because it's long and most times (e.g., chmod <dash>R )you're never actually minusing anything. *
* Some Solaris commands use plus and minus to add and subtract things, but a) everyone hates Solaris commands b) this breaks with convention, hence a).
Yes, I agree. Most "minus" people from my experience have been non-programmers, or at least non-everyday-unix-users that I've either had to train or walk through procedures, etc. And almost universally young.
I suppose 'minus' makes things slightly longer, but is there a way to distinguish between R and r without three extra syllables? Both are likely to come up when chmodding.
I first heard that on the Hak5 podcast, and assumed it was a Virginia think (Darren's from Virginia), but later he realized that no one else said it that way and it took a while for him to remember where he'd learned that. I think he got it from his friend "mubix" (Rob Fuller) who is a US Marine and apparently the Marines call it a "tack". Not sure if it's true or if mubix just invented that, but it's my best guess :)
I also call it a "tac". The habit comes from my time in the Navy, where it comes from the naming conventions for compartments (rooms) on a ship. Marines probably call it that for the same reasons, as many of them end up being on a ship at some point (and they're part of the Department of the Navy, so they share a lot of tradition with sailors).
e.g. "3-74-4-E" would be pronounced "three tac seventy-four tac four tac echo" (3rd deck, 74th frame aft of the bow, 2nd compartment outboard of the centerline on the port side, and it's an engineering space)
I've also avoided calling it a "dash" since I left the Navy, since dashes and hyphens are different characters in typography.
When I first started programming, I didn't know which of the two symbols / or \ was "forward slash" or "back slash", so I got into the habit of calling them "uphill" and "downhill", respectively. I still tend to use those terms when I'm working with people who aren't computer savvy, and those terms tend to be a bit more intuitive and help avoid confusion.
Call me biased, but every programming language I'm aware of that isn't related to Piet[1] or Befunge[2] reads from left to right, and both of those are gag options. Programming languages in general take their cue from English, so it doesn't seem that unreasonable to me to assume that programmers know enough English to assume left to right.
I'm a little ashamed to admit it, but I always had a hard time remembering where the "hinge" was on the slashes.
Let me explain: Assume that the slash begins like a pipe |. If the slash has a hinge at the bottom (like most people intuitively assume), then / is "leaning forward" and \ is "leaning back". However, if, when you look at the slash, you assume the hinge is on the top, then it looks like / is "swinging back" and \ is "swinging forward".
So until I figured out where people were putting the "hinge", "back" and "forward" seemed arbitrary. I know it sounds strange, but it was a great source of confusion for me.
Edit: The phrase "lefty loosey, righty tighty" also confused me until I figured out that "left" and "right" were relative to the direction that the top of the screw/bolt moved, not the bottom.
It has nothing to with where the 'hinge' is. '/' is just 'slash'; it's the only one that existed before computers. '\' was invented so you could write the mathematical symbols for 'and' and 'or' as /\ and \/. Since it is a backwards version of the slash, it was named 'backslash,' and 'forward slash' later came about in analogy with 'backslash.'
Wow. "Uphill" and "downhill" are brilliant. I hope I remember that next time I need it.
I tend to use "the slash with the question mark" and then either "the slash near backspace" or "the slash NOT near the question mark", since the backslash keyboard position isn't completely standard.
Of course, these experiences are when dealing with having to have an end user type them in (thank you, internet).
It's a little silly, but I've pronounced a '{' or '}' as a 'curly brace' ever since I played Cave Story[1], in which one of the main characters has that name. Before that, I think I called them 'curly brackets'.
I don't know if I would call this a "pronunciation guide", in the sense that it doesn't tell you how to actually stress the syllables or say any particular letters. Instead, it's more of a "naming guide" or "verbalization guide" for glyphs that don't map to specific vocal patterns.
Waka waka bang splat tick tick hash,
Caret quote back-tick dollar dollar dash,
Bang splat equal at dollar under-score,
Percent splat waka waka tilde number four,
Ampersand bracket bracket dot dot slash,
Vertical-bar curly-bracket comma comma CRASH.
Other characters are unsafe because gateways and other transport agents are known to sometimes modify such characters. These characters are "{", "}", "|", "\", "^", "~", "[", "]", and "`".
All unsafe characters must always be encoded within a URL.
"Ampersand" is apparently a corruption of "and per se and" which was the (now extinct) last line of the Alphabet Song a hundred years ago. Anybody can corroborate?
In a standard italian keyboard layout the '\' is placed between TAB and ESC, and '/' is shift+7.
A lot of people think that '\' is the slash and '/' the backslash leading to some confusion among non-programmers (and some escaped characters here and there.)
88 comments
[ 89.7 ms ] story [ 3268 ms ] threadI quickly discovered, right in front of the class at the white board with marker in hand, with my first " { " written, that being fluent in English was NOT the same as being fluent in Spoken Programmer English.
My second realization was that almost nobody in the United Kingdom spoke a dialect of English that I could comprehend, but that's another story.
Bonus info: { } are called commonly called måsvingar/seagull wings in Swedish, which really gave me no hint at all what to call them in English.
In Swedish and Danish the sign is known as the "snabel a" (literally trunk a), owning to the resemblance between the sign and the trunk of an elephant. In Norwegian the term most commonly used is "krøllalfa" (literally: curled alpha). In Greek the sign is known as "papaki" meaning small duck. In Slovenian, the most common word for it is "afna", colloquially meaning "monkey", much like in Polish. In Hungarian, it is called "kukac" meaning "caterpillar".
http://en.wikipedia.org/wiki/At_sign#Names
I think I'm going to start calling it cygnus because it looks like the accretion disk of a black hole.
Consequently, I'm always on the look-out for more formal and concise terms where previously I may have used more simplistic language - in this case, 'braces', 'brackets' and 'parentheses' struck me as being the best way to describe {}, [] and (), compared to curly, square and normal brackets (as I've likewise always called them). <> will have to remain angle brackets though I think.
I'm guessing you don't know Perl? I think that's where I learned to call it that.
I usually say "arrow", or "dash-greater-than"... but come to think of it, I very rarely have to ever actually say this.
However, there are a couple that, despite the INTERCAL authors' best efforts, have entered common usage, according to the chart: "mesh" and "splat".
Might as well call it a "WTF mark".
http://en.wikipedia.org/wiki/Interrobang
The sibling post's author thinks that ( ) are brackets.
Clearly there are two different populations here. That's why the need to explicitly specify which "brackets".
I just searched quickly how to explain that the semi-colon is somehow half a colon. I couldn't find anything.
I'd like to add that it is wrong to think about commas, semi-colons, etc. in terms of duration of a pause in the speech. These signs articulate written sentences' syntax, and it sometimes relate to pauses when read aloud, but it is not a bijection. When analysing recordings, J. Drillon (Traité de la ponctuation française) showed that the correlation is really weak.
Although, confusingly, I believe the English semicolon functions more similarly to the punctuation associated with a Greek/Latin colon.
Of course, that may be cause it's exactly the same in my native italian.
Leads to some interesting PHP errors, like: Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
* Some Solaris commands use plus and minus to add and subtract things, but a) everyone hates Solaris commands b) this breaks with convention, hence a).
e.g. "3-74-4-E" would be pronounced "three tac seventy-four tac four tac echo" (3rd deck, 74th frame aft of the bow, 2nd compartment outboard of the centerline on the port side, and it's an engineering space)
I've also avoided calling it a "dash" since I left the Navy, since dashes and hyphens are different characters in typography.
How is this an improvement?
Maybe call them right-slash and left-slash, with the lean prefix implied? This would probably help our right to left language friends.
Let me explain: Assume that the slash begins like a pipe |. If the slash has a hinge at the bottom (like most people intuitively assume), then / is "leaning forward" and \ is "leaning back". However, if, when you look at the slash, you assume the hinge is on the top, then it looks like / is "swinging back" and \ is "swinging forward".
So until I figured out where people were putting the "hinge", "back" and "forward" seemed arbitrary. I know it sounds strange, but it was a great source of confusion for me.
Edit: The phrase "lefty loosey, righty tighty" also confused me until I figured out that "left" and "right" were relative to the direction that the top of the screw/bolt moved, not the bottom.
I tend to use "the slash with the question mark" and then either "the slash near backspace" or "the slash NOT near the question mark", since the backslash keyboard position isn't completely standard.
Of course, these experiences are when dealing with having to have an end user type them in (thank you, internet).
[1]http://en.wikipedia.org/wiki/Cave_story
Nitpick? Yes. This is HN, after all.
http://news.ycombinator.com/item?id=1181243
Openstache and closestache are two very good names for { and }, primarily because they are shorter.
Other characters are unsafe because gateways and other transport agents are known to sometimes modify such characters. These characters are "{", "}", "|", "\", "^", "~", "[", "]", and "`".
All unsafe characters must always be encoded within a URL.
A lot of people think that '\' is the slash and '/' the backslash leading to some confusion among non-programmers (and some escaped characters here and there.)