88 comments

[ 89.7 ms ] story [ 3268 ms ] thread
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".

http://en.wikipedia.org/wiki/At_sign#Names

And in the Netherlands, we call it a ape's tail (we use 'ape' both for monkeys and ape's.)
In Poland it's very often simply called "ape" (often giving e-mail addresses), before I often heard "elephant's ear".
Some people in Germany call it 'Klammeraffe', which would roughly translate as 'an ape that clings to something' or 'spider monkey'.
Finns often call it "miumau" (meow meow) because it looks like a cat's tail.
Hungarians call it "kukac" = worm because it also looks like a worm.

I think I'm going to start calling it cygnus because it looks like the accretion disk of a black hole.

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»
No reference to {} as mustaches? Three years are a long time.
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 call them curly brackets {} to distinguish from square brackets [] and angle brackets <>.
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.

This is a blessing for, I imagine, everyone who has learnt computer programming in a non-English-speaking country.
` as backtick is rare? I thought it was the standard.
Where are you from? I've actually never heard it before (in the US).
This is the only name for it I've heard here in the Netherlands.
Yeah, I thought backtick was pretty normal myself and I'm from the US.

I'm guessing you don't know Perl? I think that's where I learned to call it that.

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'.
I've always heard it called that myself, but it's usually shortened to just "tick" where I work now.
He should have also listed "#!" AKA "shebang" / "hashbang"
For "hashbang" you can directly derive it from # ("hash") and ! ("bang")
There are also many different ways that people pronounce -> and =>, although it might vary depending on programming language.
How do you pronounce it?

I usually say "arrow", or "dash-greater-than"... but come to think of it, I very rarely have to ever actually say this.

=> is known as a fat comma or a rocket in Ruby circles.
Rocket makes sense, but fat comma?
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.
<=> is the "spaceship" operator in Perl, Ruby, and Groovy.
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".

Another source of confusion is the meaning of the word "brackets":

  +----+-----------------+-------------+
  |    | []              | ()          |
  +----+-----------------+-------------+
  | US | brackets        | parentheses |
  | UK | square brackets | brackets    |
  +----+-----------------+-------------+

  | AU | square brackets | parentheses |
  +----+-----------------+-------------+
:(
Is there nothing commonly called just 'brackets' in Oz?
Yeah, these are brackets for me (), these are square brackets [].
In high school, my maths teachers all insist ( ) are `parentheses`.

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".

  | CA | [[any of the above]] | [[any of the above]] |
  +----+----------------------+----------------------+
I don't think I've heard two different people refer to them consistently.

  | Indiana | square brackets | parentheses |
  +---------+-----------------+-------------+
That, or I'm a displaced Australian.
I work with French programmers, so that opens an entire other can of worms. Colon becomes "two points" and semi-colon becomes "point comma".
As a French speaker it make total sense to me; it just describes it.

I just searched quickly how to explain that the semi-colon is somehow half a colon. I couldn't find anything.

I'm not a French speaker, but those terms make perfect sense to me also, even though I've only just heard them here for the first time.
Maybe it has to do with the amount of time you pause when reading aloud? You pause for less time at a semi-colon then at a "full" colon.
(comment deleted)
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!
Is the difference between ":" and ".." when pronounced obvious in French? In German, I'd say "Doppelpunkt" and probably "Punkt, Punkt," respectively.
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.

that totally makes sense to me, it is either a pair of points and a pair of a comma and a point.

Of course, that may be cause it's exactly the same in my native italian.

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").
Perhaps double-full-stop and stroke-full-stop. Those sound kinda British to me.
And in Hebrew, double colon is literally something like 'four dots'.

Leads to some interesting PHP errors, like: Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM

So am I the only one who calls "-" a tack? As in chmod tack R
Never heard that one before. "dash" or "minus" is all I've ever come across.
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.
Yeah, "minus" is math and sounds wrong on the command line.
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.
"Big 'r'" and "small 'r'"?
What about 'hyphen'? I use 'minus' / 'hyphen' depending on context.
I use "dash" too, but the "-" character is technically a hyphen. Two hyphens ("--") make a dash.
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.
uphill and downhill assume going left to right. forward slash and backslash both assume going left to right.

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.

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.

  [1] http://www.dangermouse.net/esoteric/piet.html
  [2] http://en.wikipedia.org/wiki/Befunge
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'.

[1]http://en.wikipedia.org/wiki/Cave_story

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.

Nitpick? Yes. This is HN, after all.

    <> !*''#
    ^"`$$-
    !*=@$_
    %*<> ~#4
    &[]../
    |{,,SYSTEM HALTED
Pronounced:

     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.
http://www.ascii-art.de/ascii/pqr/poem.txt
Extra points for listing the INTERCAL names!
It annoys me when people on TV use "forward slash" when reading out URLs. Makes we want to tell people that URLs never use backward-slashes!
Never?
RFC 1738

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.

I have trouble believing that "apostrophe" is more common among programmers than "single quote"...
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.)