As programmers, we deal with a lot of unusual keyboard characters that typical users rarely need to type, much less think about:
$ # % {} * [] ~ & <>
Even the characters that are fairly regularly used in everyday writing -- such as the humble dash, parens, period, and question mark -- have radically different meaning in programming languages.
This is all well and good, but you'll eventually have to read code out loud to another developer for some reason. And then you're in an awkward position, indeed.
How do you pronounce these unusual ASCII characters?
We all do it, but we don't necessarily think much about the words we choose. I certainly hadn't thought much about this until yesterday, when I read the following comment left on Exploring Wide Finder:
A friend sent me a Java code fragment in which he looped through printing "Thank You!" a million times (it was a response to a professor who had extended the deadline on a paper). I responded with a single line of Ruby to do the same, and a single line of Lisp.He wrote back: "Underscores, pipes, octothorpes, curly braces -- sheesh... I'll take a mild dose of verbosity if means I don't have to code something that looks like it's been zipped already!"
What the heck is an octothorpe? I know this as the pound key, but that turns out to be a US-centric word; most other cultures know it as the hash key.
I'm often surprised to hear what other programmers name their ASCII characters. Not that the words I personally use to identify my ASCII characters are any more correct, but there's far more variability than you'd expect considering the rigid, highly literal mindset of most programmers.
Perhaps that's why I was so excited to discover the ASCII entry in The New Hacker's Dictionary, which Phil Glockner turned me on to. It's a fairly exhaustive catalog of the common names, rare names, and occasionally downright weird names that programmers associate with the ASCII characters sprinkled throughout their code.
How many of these ASCII pronunciations do you recognize? Which ones are the "correct" ones in your shop?
| Common Names | Rare Names | |||||
| ! |
exclamation mark bang pling excl not shriek |
|
||||
| " |
quotation marks quote double quote |
|
||||
| # |
|
|
||||
| $ |
dollar sign dollar |
|
||||
| % |
percent sign mod grapes |
double-oh-seven | ||||
| & |
ampersand amp amper and and sign |
address reference andpersand bitand background pretzel |
||||
| ' |
apostrophe single quote quote |
|
||||
| ( ) |
opening / closing parenthesis left / right paren left / right parenthesis left / right open / close open / close paren paren / thesis |
so/already lparen/rparen opening/closing parenthesis opening/closing round bracket left/right round bracket wax/wane parenthisey/unparenthisey left/right ear |
||||
| [ ] |
opening / closing bracket left / right bracket left / right square bracket bracket / unbracket |
square / unsquare u turn / u turn back |
||||
| { } |
opening / closing brace open / close brace left / right brace left / right squiggly left / right squiggly bracket/brace left / right curly bracket/brace |
brace / unbrace curly / uncurly leftit / rytit left / right squirrelly embrace / bracelet |
||||
| < > |
less / greater than bra / ket left / right angle left / right angle bracket left / right broket |
from / into (or towards) read from / write to suck / blow comes-from / gozinta in / out crunch / zap tic / tac angle / right angle |
||||
| * |
asterisk star splat |
|
||||
| + |
plus add |
cross intersection |
||||
| , | comma |
cedilla tail |
||||
| - |
dash hyphen minus |
worm option dak bithorpe |
||||
| . |
period dot point decimal point |
radix point full stop spot |
||||
| / |
slash stroke slant forward slash |
diagonal solidus over slak virgule slat |
||||
| \ |
|
bash reverse slant reversed virgule backslat |
||||
| : | colon |
dots two-spot |
||||
| ; |
semicolon semi |
weenie hybrid pit-thwong |
||||
| = |
equals gets takes |
quadrathorpe half-mesh |
||||
| ? |
question mark query ques |
|
||||
| @ |
at sign at strudel |
|
||||
| ^ |
circumflex caret hat control uparrow |
xor sign chevron shark (or shark-fin) to the fang pointer |
||||
| _ |
underline underscore underbar under |
score backarrow skid flatworm |
||||
| ` |
grave accent backquote left quote left single quote open quote grave |
|
||||
| | |
bar or or-bar v-bar pipe vertical bar |
vertical line gozinta thru pipesinta spike |
||||
| ~ |
tilde squiggle twiddle not |
approx wiggle swung dash enyay sqiggle (sic) |
If you're curious about the derivation of some of the odder names here, there are an extensive set of footnotes (and even more possible pronunciations) at the ascii-table.com pronunciation guide.
So the next time a programmer walks up to you and says, "oh, it's easy! Just type wax bang at hash buck grapes circumflex and splat wane", you'll know what they mean.
Maybe.
| [advertisement] Peer code review without meetings, paperwork, or stopwatches? No wonder Code Collaborator won the Jolt Award. |
Posted by Jeff Atwood View blog reactions
« Markov and You Don't Go Dark »
"andpersand"?
That guy's just making stuff up
What about we all agreeing on a standard?
Standard for weird characters - SWC
Or much better, we should select tje funniest names and start using them...
Or even better, use different varieties in the same context. Let us confuse 'em
@ is spanish is arroba.
Fenris on June 12, 2008 05:26 AMThe symbol wich gives me mmore headaches is the ~ symbol, mostly because no one uses it ever, so no one knows how its called. The easiest way I found to explain it is by using the word "ñoflo", which a fellow programmer invented: basically, since no one knows what a ñoflo is, I don't have to come up with an esoteric (although correct) name - all i have to do is wait for the "what?" question, and draw the symbol in the air (sometimes I roll my eyes just to make the other guy feel bad for not knowing what a ñoflo is). It doesn't work very well on the phone, though.
Martin on June 12, 2008 05:30 AMcool topic!
David on June 12, 2008 05:31 AMTalking about pronunciation, today I was talking about some LINQ code and we both wondered, how do you guys read out loud lambda expressions such as "t => t.Name" ?
Rod on June 12, 2008 05:31 AMSo if # has 'pound' and 'pound sign' as common names, what are the common names for £ ?
PJH on June 12, 2008 05:32 AMIn Ruby, the names of methods that return true or false end with a question mark. I like to pronounce it as a Canadian "eh", so that "empty?" becomes "empty, eh?"
isani on June 12, 2008 05:35 AM> The symbol wich gives me mmore headaches is the ~ symbol
I've always heard "tilde" or "squiggle" for this one.
> how do you guys read out loud lambda expressions such as "t => t.Name"
Oh man, I don't even want to go there -- there have to be completely different rules for multiple character ASCII sets.
> So if # has 'pound' and 'pound sign' as common names,
I've called it 'pound' for a long time, but I think I will switch to 'hash' from this point on. I guess for a .NET ecosystem developer, I could call it 'sharp', as in C# .. we may say "csharp" but certainly don't want to go around saying "coctothorpe" :)
Jeff Atwood on June 12, 2008 05:35 AMReally you should consult a dictionary and find out which is the 'correct' answer for each symbol. This may not reflect common usage in the computing industry, but that's normal for all forms of language.
And saying c-octothorpe to annoy C# devs never loses its shine.
Did you know Microsoft is making a new language to replace C#? Its C$, pronounced "ca-ching" :)
That's one (of rather few) things I like about the VB or VB.NET language: You can read it more or less without having to pronounce too many ASCII characters.
Matthias on June 12, 2008 05:41 AMWhat happened to 'ampersat' ('tis a common word, round my way).
Or even 'asperand'
Dan on June 12, 2008 05:43 AMI'd avoid using 'quotation marks' to describe the " character as that is a very English-centric term as the table on this page shows:
http://en.wikipedia.org/wiki/Quotation_mark,_non-English_usage
I prefer to use 'double quote'.
Skizz
Skizz on June 12, 2008 05:43 AMPresumably you've come across geek poetry?
http://www.cise.ufl.edu/~ddd/poem.htm
# has always been "number sign" to me.
I think it would be neat to standardize on unambiguous, one-word, preferably one-syllable, names for each character. Bang, quote, hash, square, unsquare, grave, pipe, etc. You would probably want to do the same for certain multi-character ones like => (pointed out above), ==, ->, //, .., /*, etc. Unfortunately there's also context to deal with... '.' may be "period" inside a string but I only hear "dot" everywhere else....
Rhywun on June 12, 2008 05:46 AMI started playing around with BASIC when I was around six years old on a Vic 20 - due to this early age I didn't have a clue what the proper names for most of the symbols were so I invented my own. The only one I can remember today was calling a semi-colon a jig.
Burns on June 12, 2008 05:47 AM@AndyB: "saying c-octothorpe to annoy C# devs never loses its shine."
True, but it's not actually correct since the language is "C-Sharp" not "C-Hash".
The two are distinct symbols. Hash (aka Number Sign, aka Octothorpe) is Unicode U+0023, whereas Sharp is U+266F and typically has sloping horizontal bars on the glyph.
http://en.wikipedia.org/wiki/Number_sign
http://en.wikipedia.org/wiki/Sharp_(music)
Burns: Same here, we used to call quotation marks for "birds".
i've always gotten by by drawing the characters into the air. I don't know what i'd do if i'd have to explain say ~ (tilde) to someone on the phone. Even more so if the person wasn't really computer savvy.
But now that i think about it i remember doing that on the phone more than once. It musn't have been all that traumatizing an experience after all, otherwise i would of remembered it.
Jazz on June 12, 2008 05:57 AMSurely these things have different names based on the context.
! is 'bang' in #! /bin/perl and 'not' in if(!a) well in my house they are :-)
Also you missed ... is that an elipsys?
& = 'et', so et cetera (etc.) becomes &c.
JL on June 12, 2008 06:01 AMUnder normal circumstances, I call # the pound sign, but Perl standard calls it hash, and the UNIX tagging at the beginning of most perl programs (#! /usr/bin/perl ) is called the hash-bang.
Dave on June 12, 2008 06:04 AMI find it strange that you put 'full stop' in the rare section. Periods are (almost) always called full stops in Enlgand, as a certain youtube video featuring Al Murray's standup will show: (couldn't find the video, so I'll try to remember what he said)
[speaking to an American audience member]
"...We're divided by a common language, see to you, 'period' probably means 'full stop' doesn't it? Which is essentially the same thing to an English man a certain time of the month..."
mike on June 12, 2008 06:05 AMIn greek some people call the @ sign "duckling" (the greek equivalent word)! Could never figure out why they do that.
Nikos Steiakakis on June 12, 2008 06:06 AMWhen you said pound you meant £ not # (hash symbol in my books)
I guess that comes of being English though.
Andy on June 12, 2008 06:07 AMIn spanish we often call the # "ta-te-ti" which is spanish for Tic-tac-toe.
Petruza on June 12, 2008 06:08 AMI agree with Gilbert. I use different words for ASCII chars depending on context, and the example of the bang/not/factorial is a good one especially since that switch in context can also be in the same code, i.e. Perl in this case. The converse is also true that a particular pronunciation can be a homophone for multiple ASCII chars. So, if I say to a colleague, "Type if x equals y," this implies a certain form based on context. In one language, the parens may be optional. In another, they may be required but the other party should know that and as such they don't require pronunciation.
Where this gets really screwed up is with slash v. backslash. Can't count the number of times I have had someone telling me how to do something at work and messed it up because they said backslash when they should have said slash.
Jamie Phelps on June 12, 2008 06:10 AMMy new word of the day is gozointa.
dnm on June 12, 2008 06:10 AMJamie Phelps: I'm sick and tired of the damn commercials that're run by multibillion dollar corporations on TV and radio that still get FORWARD SLASH (/) confused with BACK SLASH (\)
If they want, they can throw me a few thousand bucks and have me look over their radio/TV scripts.
dnm on June 12, 2008 06:11 AMCaret, underscore, and pipe are far more commonly used here than the bolded words. Pipe especially - have you ever heard of "bar-delimited" text?
Coming from a Delphi background, I've also always known the @ character as address or address-of.
Aaron G on June 12, 2008 06:13 AMMost of those rare names sound like some sort of exotic drug nicknames.
I usually just end up calling things 'squiggly line' and 'uppy squarey bracket thing' while waving my arms about and trying to form the shapes with my fingers. I'd take the time to learn the proper names but nobody would understand anyway.
I understand the word parenthesis, but in the UK, () are nearly always just 'brackets' with the other two being square and curly brackets.
aka on June 12, 2008 06:16 AMnicely done and much better laid out than the other site. because of that i'm linking to you rather than the source, cuz 'dang! who needs all the visual chaos?'
thanks for the heads-upBANG
BTW: love the show but let's see if you can work the word "imprecation" in during the next show...and no cheating; it has to be unobtrusive. ;o)
Keng on June 12, 2008 06:17 AM@dnm I totally agree! Like they couldn't have some intern from IT clarify for them that the thing was wrong...
Jamie Phelps on June 12, 2008 06:17 AMIn order to avoid being too US or English-centric, let me tell you how I spell some of these characters in french (the other one are probably sharing some latin origin and sounds like their counterparts) :
" : guillemets
# : dièse
& : esperluette
[] : crochets
{} : accolades
, : virgule
@ : arobase
_ : espace souligné
As our fellow Fenris said above, @ is spanish is 'arroba' which was a mass unit, like a barrel, equivalent to 11.502 kg.
^ is "techito" ( Rooftop )
I've also heard someone call the vertical bar | "hurón" Which means Ferret. ( the animal ) Wonder why...
Petruza on June 12, 2008 06:20 AMnojhan: I live in Canada, where our French is horribly bastardised. Let me translate to french for you our interpretation of those symbols.
": le quote.
#: le hash (or le signe de numero)
&: l'ampersand.
[]; les brackets
{}: les braces
,: le comma
@: le at
_: l'underscore.
These are all things we use to send 'le email' sur "l'internet"
I'm le serious.
dnm on June 12, 2008 06:21 AMNow you are making 'Le hash' of it all.
Chris Chubb on June 12, 2008 06:26 AMIt's funny how @ gets animal names in other languages.
igorsk on June 12, 2008 06:28 AMI prefer the intercal pronunciations
hova on June 12, 2008 06:28 AMEveryone knows the proper way to convey these symbols when talking out loud is to make some sort of inarticulate noise while tracing the symbol in midair with your fingertip.
In ISO 646-GB the character at position 35 (# in ISO 646) was replaced with a £. C compilers on 7-bit machines used the underlying character codes, as you would expect, so you would have seen:
£include "stdio.h"
etc. So I suppose you could call # the 'pound' character, but a Brit would never call it that!
The GB variant was pretty minor, I recall Stroustrup (either in the ARM or in Design and Evolution of C++) referring to coding in C in Denmark, where [\]{|} are replaced with ÆØÅæøå, so the "Hello {name}" program becomes:
int main(int argc, char* argv)
æ
if ( argc > 1 )
æ
printf( "Hello, %sØn", argvÆ0Å );
return 0;
å
å
Unsurprisingly programmers tended to use macros to replace these horrors with usable symbols. The names were eventually standardised in iso646.h, and two workarounds went into C and C++: trigraphs and digraphs. Trigraphs offer more coverage and work within strings; digraphs are only recognized as top-level tokens but are much easier to understand.
With trigraphs:
int main(int argc, char* argv)
??<
if ( argc > 1 )
??<
printf( "Hello, %s??/n", argv??(0??) );
return 0;
??>
??>
Digraphs (C++ and C99):
int main(int argc, char* argv)
<%
if ( argc > 1 )
<%
printf( "Hello, %sØn", argv<:0:> );
return 0;
%>
%>
(note that there's no replacement for \ and it wouldn't work within a string even if there was)
Mike Dimmick on June 12, 2008 06:30 AMWow! Little did I know when I shot off a tweet that it would instigate the writing of a blog post!
The rest of the Jargon File is a fascinating read as well.. I used to recommend it in my "Introduction to UNIX" class, many years ago. In it contains a lot of the roots of what made the original UNIX developers who they were, and subsequently, how that affected UNIX. For example, did you know that, before writing the first UNIX kernels, most of the developers at MIT were part of a model train club? Not so unusual if you remember they grew up in the 40s and 50s. But a lot of the jargon is derived from railroad terms.
Also, check out the entry on WOM. Good stuff.
J. Phil on June 12, 2008 06:31 AMI like the suck and blow symbols...
Imagine a program
if( you < me or you > them )
...
}
Does really someone use these pronunciation?
Sounds like a joke.
Luc M on June 12, 2008 06:31 AMWell,
My program has been censured... lol
Luc M on June 12, 2008 06:33 AMWe (English people who program in ksh) at work call < and >, left chevron and right chevron respectively.
coldclimate on June 12, 2008 06:36 AMMy C++ and Java Teacher always called these: {} "Curly Braces"
He also called parenthesis "Man and Wife" because "they always go together"
Matt on June 12, 2008 06:38 AMI like to call < and > "alligator lips" - I first heard the term to describe long crescendo and decrescendo marks in written music. (The things that tell you to play louder or softer.)
Likewise my background in music has always made me refer to "#" as "sharp", not "pound". I think it's more standard to call it "sharp" than people think, as I've always heard the first 2 characters of the first line of a *nix shell script (#!/usr/bin/bash or whatever) referred to as "sh'bang".
Josh Kodroff on June 12, 2008 06:41 AM# isn't the pound sign. The symbols for pound are £ for currency and lbs. for weight. :D
Actually, on a British keyboard the £ is shift-3. I think thats where # is on US keyboards, right? So at least as far as keyboard designers are concerned there is some relationship between the two symbols.
I only see one other US-centric item on the list. Who outside of the US calls a '.' a period? Well, I've never in my life heard of anyone call _ underline, but I don't know if thats a US thing or what.
Mat Scales on June 12, 2008 06:42 AMI sometimes refer to the Curly Braces {} as "Bob Hope"s.
Thom on June 12, 2008 06:44 AM? is also called "quem".
Dave Aronson on June 12, 2008 06:44 AMalso
() small brackets
{} middle brackets
[] big brackets
My usages are highly dependent on context.
. "period" at end of sentence.
. "dot" in url, appending method to an object
. "point" in numbers.
' apostrophe when used as such. (you're)
' single quote when used to enclose a char or string 'your a looser'
amongst knowledgeable users,
\ "windows slash"
/ "unix slash"
amongst dummies:
\ - backslash above the enter key
/ - slash on the same key as the question mark.
` - back tick (or more frequently: "back tick at the upper left corner of your keyboard. No, that's the escape key. Up there, beside the one. No, to the left of the one. That's a two. Under the tilde. The squiggly dash. Here, let me type.")
^ - hat (from math x-hat, y-hat)
To users on the batphone
0 - Zero, not oh
o - oh not zero
cool.
I must say as a brit the name "pound sign" for the # has always irritated me. It seems to me that it requires some cultural ignorance to even consider the name a good one to begin with. After all there has been a pound sign in the english language far longer than there has even been an American nation...
It may sound petty, but consider if we called this the "dollar sign". I'm sure it would be just as irritating in reverse.
<3 america. :)
Jheriko on June 12, 2008 06:52 AMIn my experience (en_GB), the brackets have always been:
() = left/right bracket
[] = left/right square bracket
{} = left/right curly bracket ('bracket' can be omitted)
<> = left/right angle bracket ('bracket' can be omitted)
The last pair tend to change depending on context (e.g. less then/greater than in comparisons). And using bra/ket is just WRONG.
[The Wikipedia page for bracket (http://en.wikipedia.org/wiki/Bracket) suggests that the difference between the default bracket type is another English vs. American difference.]
Michael on June 12, 2008 06:53 AMMartin said: "The symbol wich gives me mmore headaches is the ~ symbol, mostly because no one uses it ever..."
You must not be an embedded designer. We use it all the time to invert bits. Very useful for masking all but certain bits in a byte.
e.g.
#define ENABLE_BIT 0x02
x = register & ~ENABLE_BIT;
This will mask out all the bits except the Enable bit of "register".
Fred on June 12, 2008 06:54 AMSome danish pronunciations:
" = gåseøjne = goose eyes
{} = tuborgklammer = tuborg braces (as it resembles the old logo of a danish beer brewery named Tuborg)
Chris. on June 12, 2008 06:54 AMHopefully this won't mess up the characters... The first two are the less than and greater than, sometimes referred to as "waka".
An ASCII poem:
<> !*''#
^"`$$-
!*=@$_
%*<> ~#4
&[]../
|{,,SYSTEM HALTED
The poem can only be appreciated by reading it aloud, to wit:
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.
-matt
Matt Newby on June 12, 2008 06:55 AMI personally pronounce the * as "pointer" when this is its intended meaning, e.g., "int *x" becomes "int-pointer x". x is, after all, a pointer to an int.
Thomas on June 12, 2008 06:56 AMAwesome post. Really made me wonder what I say for each, and more often than not, it was the bold term.
Benjamin M. Strozykowski on June 12, 2008 06:59 AM\/ are called Obliques too (well... according to a scottish collegue)
AlexK on June 12, 2008 07:01 AMMy C++ teacher invented the pronunciation of 'row for => which is also how I pronounce the php -> since they're basically the same, you just need to know what I'm talking about to know what I'm talking about....
also for php, the $ is silent in a variable name. Though in Perl you probably should pronounce it--or just never explain Perl to begin with.
Andy Fundinger on June 12, 2008 07:02 AMTo be fair, it's relatively rare that you have to read source code "letter by letter" to someone. As someone above mentioned, if you say "if a equals b" everyone you would possibly say it to would know that it's supposed to mean "if (a == b)".
In the few instances of having to dictate a shell script to your mom over the phone, I find it helpful to say "that key left of the 1 key" :)
J. Stoever on June 12, 2008 07:02 AMquote:
> So the next time a programmer walks up to you and says, "oh, it's easy! Just type wax bang at hash buck grapes circumflex and splat wane", you'll know what they mean.
Sounds like a PERL program.
Leonel on June 12, 2008 07:02 AMI think I'm the only one who actually decoded "wax bang at hash buck grapes circumflex and splat wane":
(!@$%^&*)
DallonF on June 12, 2008 07:05 AMAgain, it depends heavily on the context.
I've come around to "paren" and "brace" over "bracket" and "curly bracket" (though it's still "square bracket" for me) as they're easier to say, despite not being terribly British. I'm also slightly disheartened to discover we Britains aren't meant to say period either, aaah well.
I find I need to find ways of "reading code" perhaps a little more than most because I find I think best when walking, so I think a lot about code while not at a computer. It rarely comes down to naming symbols though, unless I'm thinking up a new syntax.
As for reading C# lambdas, for something of the form "x => somecode" I read as "given x, somecode" or if you want to be more expressive "given x execute/perform/become somecode". I've also heard "lambda of x is somecode" which makes it's role as a form of anonymous function explicit, though one could argue technically it's incorrect. I do remember people on the C# team mentioning how they read it somewhere, but I can't find it now. Most likely on Channel9.
[ICR] on June 12, 2008 07:05 AM"Martin said: "The symbol wich gives me mmore headaches is the ~ symbol, mostly because no one uses it ever..."
You must not be an embedded designer."
Or a game player. Tilde is used to bring down the console in Quake based games and many others. It causes a lot of headaches when it's not internationalized properly and on my english keyboard I have to press Shift+# instead of `.
[ICR] on June 12, 2008 07:10 AMActually "cedilla" is only used in french and is much different than a comma. Cedilla is the little tail that is added to 'C' in this character : 'Ç'
In french, comma is 'virgule' and cedilla is 'cédille'.
OlivierP on June 12, 2008 07:10 AMThe funniest ones i heard recently was someone referred to a : (colon) as a "double dot" and an apostrophe (') as an "up comma" - you couldn't make it up! :-)
Phil on June 12, 2008 07:14 AMBtw,
In Deutsch ist ein "-" bitte ein Bindestrich und kein Minus!
@DallonF: No, I did it too. You were just the first to post a comment on it. ;)
"!@#$%^&*? That's amazing! I use the same combination on my luggage!"
mbhunter on June 12, 2008 07:22 AMThe => is really difficult - just yesterday I tried to tell a colleague some C++ stuff and didn't know how to call this. Explaining it with "derefencing" seems to be the least bad way...
Btw. for single chars there's the "ascii" command line tool (http://www.catb.org/~esr/ascii/). And I now noticed that it will even give correct albeit verbose results if you run "
ascii wax bang at hash buck grapes circumflex and splat wane" on command line :-D
What, no "wave" for tilde? I must be extra-rare...
sapphirecat on June 12, 2008 07:24 AMWhen I was in first year I had a C++ professor who had a background in typography. And one day he just went off on a tangent and said "Oh, by the way, you'll never be able to guess what '#' is actually called." Ever since then, I've been using the word "octothorpe" to irritate my friends.
Skrud on June 12, 2008 07:25 AM>>"I think it's more standard to call it "sharp" than people think, as I've always heard the first 2 characters of the first line of a *nix shell script (#!/usr/bin/bash or whatever) referred to as "sh'bang".<<
That's funny, I never thought of that in terms of the word sharp. The first perl book I ever read called it a hash-bang, and said that it could be shortened to sh'bang -- the sh deriving from the end of 'hash.'
I guess it works for either.
Neil on June 12, 2008 07:28 AMHere in Brazil we pronounce "#" as "lasagna".
Tiago S. on June 12, 2008 07:29 AMThanks!
One of the most useful blog posts I have seen in awhile. The most often misused/misunderstood here at my work: slash/backslash and brackets & braces.
~Lee
Lee Brandt on June 12, 2008 07:33 AMJulian: Bindestrich is way too long; Minus is much more efficient to say. And the computer doesn't distinguish that anyway (it's always ASCII 0x2d).
[ICR]: Tilde is also bad on certain german keyboard layouts, where you have to press AltGr+~ and then Space. Really annoying for a "quick" /donate 100 on the console...
For me:
'<>' are "of"
'std::vector<int>' is pronounced "stid vector of int"
'[]' are "sub"
'array[i]' is pronounced "array sub i"
'@' is pronounced "AT" with more emphasis than if you has just written 'at'
'#!/bin/bash' is "hash bang bin bash" also called "drum-set falling down stairs"
- somehow became tack when I first encountered it (vice dak I suppose).
You know: net use wack wack server wack share tack 1 space slash user colon company dot com wack steve
I also learned #! as sh'bang.
SteveJ on June 12, 2008 07:42 AM" - inverted commas
< - left quack
> - right quack
<> - quack quack!
I'm surprised to see "strudel" on the list for @. I've only heard it in Hebrew. Are the names listed in any particular order? I wonder how much an effect Hebrew speakers have on programming. For example, the name for "::" in one dialect of PHP: Paamayim Nekudotayim (http://en.wikipedia.org/wiki/Paamayim_Nekudotayim)
Nathan Fellman on June 12, 2008 07:47 AMI've been calling <%= this thing %> a "butterfly tag" (squint at the percent sign), but I really only do it to annoy my co-workers at this point.
Matt on June 12, 2008 07:47 AMIn Malaysia, @ is also "read" as "alias".. I still don't know why..
How do you folks read this btw: <=>
astigmatik on June 12, 2008 07:49 AMargh.. that should have been <=>
astigmatik on June 12, 2008 07:49 AM@ sign has some really funny names around the world. For example in Poland we call it a monkey (małpa).
http://www.experiencefestival.com/a/At_sign/id/304590
Calling '#' for hash may be confusing if you're also dealing with hash maps or hashing algorithms... ;) (In Norway we just call it 'square'.)
'&' is also called 'et' (from Latin/French).
Regarding 'qoutation marks', that also quickly gets wrong in Norwegian, since we often use << and >> (they don't have ASCII chars) to quite stuff. Usually we just say single and double quotes for ' and ", but a lot of people confuse ' and `, which can be dangerous if you're ever doing anything in a *nix shell.
BTW: Trying to pronounce obscure variable and function names can also be quite entertaining.
Sign Swedish (direct english translation if available)
' fnutt
" dubbelfnutt (double fnutt)
{ } vänster/höger måsvinge (left/right seagull)
# brädgård (lumber yard)
Great topic!
Ruby's comparator method <=> is sometimes called the spaceship because it looks like a UFO! Also, I've heard the => operator called the hash rocket because it's used to assign values to hash keys and looks like a rocket. I can't understand why most of you folks don't seem to like Ruby...
John Topley on June 12, 2008 07:58 AM> So the next time a programmer walks up to you and says, "oh, it's easy! Just type wax bang at hash buck grapes circumflex and splat wane", you'll know what they mean.
Yes. They mean "I'm a poser who thinks using obsolescent vocab words from the Jargon File makes me leet."
(*Reading* the jargon file is fascinating and educational. *Emulating* it, not so much.)
Dan on June 12, 2008 07:58 AMWhen I worked for a software company that had telco customers, ! was bang, * was splat, and # was either pound or octothorpe. I still like hearing bang for !, but I never got used to splat for *.
Jim on June 12, 2008 08:01 AM# python -c "print 'Thankyou' * int(1e6)"
Funny stuff in Spanish.
@ is "arroba" which is equivalent to 25 pounds (12.5kg)
$ is "pesos" because I'm in Colombia we have here the COP (Colombian Peso)
[] is "corchetes" from the french "crochet" which is some kind of hook.
{} is "llaves" which literally means keys.
^ I call this "sombrerito" which means little hat.
_ is "barra al piso" this sounds kinda funny.
~ I call this "virgulilla" some people call this "gusanito" which means little worm.
AndresVia on June 12, 2008 08:02 AM> How do you guys read out loud lambda expressions such as "t => t.Name"
Using the phrase "goes to", as in "t goes to t.Name".
jalbert on June 12, 2008 08:03 AMI have heard, and I do call, the * a kleene star...
stetic on June 12, 2008 08:04 AMYou left out the all-important "broken-bar" on UK keyboards, a real tragedy of a character for US developers, especially when it is used as a string delimiter: ¦
http://en.wikipedia.org/wiki/Vertical_bar
Jonathan on June 12, 2008 08:06 AM/ uphill \ downhill
Name on June 12, 2008 08:07 AM/ divide(d( by))
Name on June 12, 2008 08:09 AMConflating hyphens and dashes really bothers me. There are very few true dashes in programming contexts. They're mostly hyphens and subtraction operators.
But I'm a writer in addition to a programmer, so I need to keep these concepts distinct.
I've recently been trying to figure out which ASCII symbol is most overloaded. It's either ' or -.
Adrian on June 12, 2008 08:09 AMI remember "@" being called pig-tail early in my experience as a touch-typist.
I also know of "£" being pronounced "lambda" because it was the available printer character for that (leading to the name Pound-Sterling-calculus).
The same functional programming Brits also enjoyed referring to bras and kets. That is, "(" is a bra, ")" is its ket. Don't recall how (, [, and [ were differentiated.
\ downright
\ upleft
/ downleft
/ upright
I once had an IT instructor from the South who read "*" as "spuh-LAY-it".
Chris on June 12, 2008 08:11 AMReminds me of the Victor Borge 'Phonetic punctuation' sketch, in which he reads a story with all the commas, fullstops, dashes, etc pronounced...
Anyone else here old enough to remember that?
I work for a multinational company, so I believe it's important to use terms understood by everyone, and also not to refer to keyboard positions.
As a multilingual programmer, I also prefer the language-neutral terms rather than 'pointer', 'not', etc.
DavidR on June 12, 2008 08:17 AMI find it interesting that there are so many different names for the same symbols. I'll definitely be paying closer attention to which terms the people around me are using. =]
Ari Patrick on June 12, 2008 08:25 AMHello!
Why isn't it possible anymore to enter characters
by pressing "Alt GR" and the numeric ASCII code into
the numpad?
Was that a feature of good old MS-DOS or of old keyboards?
So instead of saying "backslash" you say "Alt-GR 134" (octal)
or "Alt-Gr 92" (decimal).
(Can anyone remember if this system was decimal
or octal based?).
Erik
Erik on June 12, 2008 08:26 AMWOW! The splat ("*")...
I was sure close.
When I cut my eye-teeth on a teletype terminal, I called it SPLOT.
...that's what it sounded like to me :-)
I just use the ASCII values instead of names. Saves time and reduces ambiguity. Doesn't everybody do that? :p
Derek on June 12, 2008 08:34 AMInspiring. I will now only refer to quotes as "dirks". :) (Two spot - wane)
Mark on June 12, 2008 08:35 AMMy colleagues use "drop" for \ and /. I soooo hate that :)
Erik: it still works, with both Alt keys (well, not in some keyboard layouts). And it's decimal.
Rytis on June 12, 2008 08:37 AMGood topic. And fundamental to communicating programming syntax.
In conversations, we were always mixing up - [] {}. We came to this resolution: brackets have hard corners [], thus the hard "k" sound. Braces have round corners {}, thus the soft sound.
Although, that doesn't seem to be the end of it:
http://en.wikipedia.org/wiki/Bracket
I thought the math/engineering discipline would help, but at www.wolfram.com (makers of Mathematica):
"The rules for using brackets are just as simple. Arguments to Mathematica functions are always enclosed in square brackets [ ]. Lists, matrices, and arrays are always enclosed in curly brackets { }. Matrices and arrays are implemented simply as lists of lists."
Although the Open Standards Group glossary at
http://www.opengroup.org/onlinepubs/7990989775/xbd/glossary.html:
braces::
The characters "{" (left brace) and "}" (right brace), also known as curly braces. When used in the phrase "enclosed in (curly) braces" the symbol "{" immediately precedes the object to be enclosed, and "}" immediately follows it. When describing these characters in the portable character set, the names <left-brace> and <right-brace> are used.
brackets::
The characters "[" (left-bracket) and "]" (right-bracket), also known as square brackets. When used in the phrase "enclosed in (square) brackets" the symbol "[" immediately precedes the object to be enclosed, and "]" immediately follows it. When describing these characters in the portable character set, the names <left-square-bracket> and <right-square-bracket> are used.
I've usually heard the accent grave ` mark pronounced "thorn".
MattS on June 12, 2008 08:40 AM"Pound Bang User Bin Bash."
"Whack Whack Host Whack Share Whack Folder Whack Program Dot Bat."
In the office, I sometimes get strange looks from passers by when talking with my fellows.
~ is clearly a cornflake, that's what I always call it!
The "@" sign is sometimes called "monkey tail" ("coada de maimuta") in Romanian.
Cristian on June 12, 2008 08:55 AMAlthough I would never say it aloud, I still think of < and > as alligator symbols, because that's the way they were taught to me in grade school. As in, the alligator always wants to eat what's larger.
Burton on June 12, 2008 08:57 AMin mexico we call
# = "gato" like cat its the same as tic-tac-toe,
@ = arroba
* = asterisco
$ = pesos
M$ = u know
| = pipe
~ = tilde
Tis one i dont know ^, i call it the "techo" (cieling) like in a house
above post referring to > and <;, they got stripped out!
Burton on June 12, 2008 08:58 AMAt work we use Ruby, and we have weekly code reviews. Usually, the line of code is spoken, for example:
if foo.exists?
instead of saying "if foo dot exists question mark" we read it like you would read a sentence, raising the tone at the end of "exists" -- like asking a questsion.
Of course, we need to drag out exists to exiiiiiists and shift the tone up an octave or two ;)
Tom on June 12, 2008 09:00 AM@Jeff:
"Oh man, I don't even want to go there -- there have to be completely different rules for multiple character ASCII sets."
You _have_ to go there, if you're talking about reading code aloud.
In a C++ context, I've heard "link" for ->, and "sub" for ::.
"Gozinta" for the pipe character is a new one to me. A former colleague who cut his teeth on Delphi, though, said that when reading assignment expressions aloud---backwards:
a = a + b;
became "a plus b gozinta a" (but, confusingly,
a += b;
became "a plus equals b").
Are you going to tackle the correct pronunciation of "char" next?
Alex Chamberlain on June 12, 2008 09:00 AMIn Spain # is frequently called 'almohadilla' which could be translated as pad, cushion or small pillow.
Venkman on June 12, 2008 09:06 AMIn Argentina we share most of the pronounciations as written by the Colombian guy, except:
_ : guión bajo, or simply "underscore"
~ : tilde or "ñuflo", also "viborita" (little snake)
Others:
# : Numeral
% : Porciento / porcentaje
* : asterisco
+ : (signo) más
- : (signo) menos / guión
| : barra vertical, or "pipe"
" : comillas / comilla doble
' : apóstrofe / comilla simple
/ : barra
\ : contrabarra
<> : menor, mayor
My personal favorite for @ is 'amphora', pinned to a 16th century Italian merchant (if I'm remembering the possibly-apocryphal story right) who used the symbol as a short hand for ledgering up goods by unit volume -- which seems to line up nicely with the Spanish "arroba" folks have mentioned already.
Josh Millard on June 12, 2008 09:08 AMI wonder where you get all these blog topic ideas from :)
sdon on June 12, 2008 09:15 AMIn Turkish:
$ dolar (dollar)
# sharp, numara (number), kare (square)
% yüzde (percent)
() parantez (paranthesis)
{} kıvırcık parantez (curly paranthesis)
* yıldız (star), çarpı (multiply)
[] köşeli parantez (paranthesis with corners)
~ tilda, tilde
& ve (and)
<> küçük/büyük (small/big), küçüktür/büyüktür(is smaller/is bigger)
=> ise (if. Word order in Turkish is not like 'if a, b' but 'a if b' so it fits perfectly)
' tek tırnak (single quote)
" çift tırnak (double quote)
/ bölü (is divided by)
\ ters bölü (reverse is divided by)
1000000.times {puts "thank you!"}
(dotimes (i 1000000) (write-line "thank you!"))
Why are you using "underscores, pipes, octothorpes, curly braces" for such a simple task? Your friend is right to question you! :-)
<i>The symbol wich gives me mmore headaches is the ~ symbol, mostly because no one uses it ever ... The easiest way I found to explain it is by using the word "ñoflo", which a fellow programmer invented:</i>
You don't have to invent a name for it '~' has a name - tilde.
http://en.wikipedia.org/wiki/Tilde
Must not spend a lot of time in shell ...
Brian on June 12, 2008 09:30 AMLuc M
- I like the suck and blow symbols...
- Does really someone use these pronunciation?
Yes, for harmonica notation (you get different notes from the same hole depending which you do)
Also, there must be a right single quote if there's a left one, surely?
Jim Cooper on June 12, 2008 09:32 AMIn America there is no "common name" for the £. We simply never have to describe that symbol. Occasionally it may be useful to express a price in British pounds, but you don't need to name the symbol for that, you just refer to the money in a normal casual way. ("Amazon dot co dot yoo-kay has that for fifty pounds. That works out to approximately a million dollars.")
On the very rare occasions when I do need to describe that symbol, there's no need for a short, quick way to say it, so I just describe it fully : "The symbol for the British Pound"
(By the way, I'm not defending our crazy habit of calling "#" "pound". I'm just answering PJH's question. )
AndyL on June 12, 2008 09:33 AMM'colleague Maf decided that [0]-> (used to double-dereference inline in C on the Mac, when we had Handles) was pronounced 'sprong' - an excellent idea.
A Handle is a pointer to a pointer, used so that memory could be reallocated before we had MMU's - if you have nested data structures in Handles, sprong is much clearer than the alternatives GetMainDevice()[0]-> gdPMap[0]-> pixelSize instead of (** (** GetMainDevice() ).gdPMap ).pixelSize
The subject of pronouncing => in lambda expressions came up on Eric Lippert's blog a little while ago:
http://blogs.msdn.com/ericlippert/archive/2008/05/16/reading-code-over-the-telephone.aspx
He suggests "goes to" and mentions "becomes" or "such that" as alternatives. Personally, I use "goes to", but there are some other interesting possibilities in the comments there.
Interesting topic. Pronunciation is one of those invisible things, you don't really notice the way you pronounce something until someone you're talking to doesn't know what you're talking about.
sandstone on June 12, 2008 09:35 AMre: Jheriko
Silly Brit. A pound is a unit of measurement, while a pound sterling is a unit of currency (although the two are closely related). The number sign was formerly used for indicating weight, e.g. 5# = 5 pounds. Hence, we call it the pound sign. I like how in choosing between harboring mild anti-American sentiments or, say, doing a Google search, you chose the former. :)
.b
Bart on June 12, 2008 09:43 AMHeh, in portuguese we call @ "arroba" which is a weight measure used for livestock.
http://en.wikipedia.org/wiki/Arroba
Hoffmann on June 12, 2008 09:52 AMThe | character has a special name for its use in logic, the "Sheffer stroke" ( http://en.wikipedia.org/wiki/Sheffer_stroke ), where it represents what would normally be called NAND (confusingly, in C-family languages, | tends to mean OR).
Matthew L. on June 12, 2008 09:56 AMSome other language (Haskell) specific pronunciations would be :: read as "has type" and -> read as "to" ..
map :: (a -> b) -> [a] -> [b]
This is usually pronounced "map has type, function from a to b, to list of a to list of b".
Of course, I wonder why nobody has suggested the language-agnostic "[right] arrow", "[right] double-arrow", "left arrow", "left double-arrow" for ->, =>, <-, <= respectively.
Kyle S on June 12, 2008 09:57 AMI started a Google Document for the localization of these pronounciation rules, and added the Dutch language:
http://spreadsheets.google.com/ccc?key=pRrnmp1WXt-faAxKFXex9FQ&hl=en
I was aghast at the lack of "store" for "!". But on the extended version in the link it is present.
Daniel on June 12, 2008 10:11 AMIn the Netherlands @ used to be 'apenstaartje' which i guess in English would be monkeytale. But since email has become common, more and more people use the English 'at'.
^ is a 'dakje', a roof.
Oh yeah, and # is a 'hekje' here, a fence. You know, b'cos it really looks like the fence of your front garden...
The '-je' at the end of each word means that the thing you describe is small. So actually it's small monkeytale, small roof and small fence.
alwinuz on June 12, 2008 10:19 AMGreat post Jeff - really.
This should almost be mandatory reading for development teams.
James Skemp on June 12, 2008 10:19 AMThis can't be a serious post. It can't be...
Codewiz51 on June 12, 2008 10:24 AMRyan North (http://qwantz.com/archive/001239.html) says $ sounds like the sound dogs make when they're just about to throw up.
$$$$$
Jacob on June 12, 2008 10:27 AMLet me put a more complete spanish translation, we also have this problem between spanish developers.
! Signo de Admiracion
" Comillas
# (every body call it "Signo de gato" or "cat sign")
$ Signo de Peso
% Porcentaje
& Et ("a lot of person thinks it's Amperson")
' Apostrofe
() Parentesis
[] Corchetes
{} Llaves
<> Manor que, Mayor que (Not so sure)
* Asterisco
+ Signo de más (not so sure)
, Coma
- Guion
. Punto
/ Diagonal
\ Contra Diagonal
: Dos Puntos
; Punto y coma
= Signo de igual
? Signo de Interrogación
@ Arroba
^ Acento circunflejo
_ Guion Bajo
` (I didn't find this but for sure starts with "Acento" someting)
| Barra
~ Tilde
I hope this is userful to somebody
Proteo5 on June 12, 2008 10:28 AMI always refer to the ampersand as the cheerio sign, seriously
upper left corner of pic
http://www.lotn.org/~calkinsc/coins/cheerios_front_150.jpg
circumflex....?
Vinny on June 12, 2008 10:36 AMTiago S.:
>Here in Brazil we pronounce "#" as "lasagna".
Sorry, but where in Brazil do people pronounce it like that? I've always seen "cerquilha" (little fence?) or "sustenido" (sharp) or "jogo da velha" (tic-tac-toe).
Wilerson on June 12, 2008 10:37 AMHurrah for Strudel! There's a whole wikipaedia article about it:
http://en.wikipedia.org/wiki/At_sign
When I see a $ in code I refer to it as String. In BASIC, Text$ was a string variable. So over time I started calling it the "string" character. I still get a lot of weird looks because of that. I generally catch myself right after I've said it though.
Doug on June 12, 2008 10:42 AM # A corridor, or iron bars, or a tree, or possibly a kitchen
sink (if your dungeon has sinks), or a drawbridge.
> Stairs down: a way to the next level.
< Stairs up: a way to the previous level.
@ You (usually), or another human.
) A weapon of some sort.
[ A suit or piece of armor.
% Something edible (not necessarily healthy).
! A potion.
( Some other useful object (pick-axe, key, lamp...)
$ A pile of gold.
* A gem or rock (possibly valuable, possibly worthless).
^ A trap (once you detect it).
" An amulet, or a spider web.
_ An altar, or an iron chain.
{ A fountain.
} A pool of water or moat or a pool of lava.
The nice thing about using the terms "hash" and "bang" is that they are composable into "'shebang", as in the common
#!/usr/bin/ruby
idiom.
Frank on June 12, 2008 10:50 AMOne thing I noticed when I started exploring the Unix/Open Source world as a young programmer was that they had WAY better names for these characters (and by better, I mean easier to say; but also usually more fun to say) than I had ever been introduced to at my defense contractor job. It's so much easier to say "bang" than "exclamation point".
Some of the names for operators are fun too:
<=> (order comparison): "Spaceship"
=> (in Ruby): "Hashrocket"
Whoops, the filter ate my spaceship operator. I don't know how to escape it in this comment box :-/
Avdi on June 12, 2008 11:01 AMI've heard some Latinos says "Sey-sostenido" for "C-sharp" where "sostenido" is the # used in the musical scale.
Scott Hanselman on June 12, 2008 11:02 AMI've always pronounced ASCII 'a-sic' but that can't be right it's more like 'as-key'?
Will on June 12, 2008 11:08 AMIn Russia "@" called the "doggy" (like a small dog) sometimes. I have no idea why. But other then that other ASCII symbols names are similar to most commonly used once, mentioned here already.
Maggus on June 12, 2008 11:08 AMI call the $ symbol the "ching". I was speaking to a colleague about $$ and said "doesn't the ching ching get the process id in perl?"
In the UK:-
() - brackets
[] - square brackets
{} - curly brackets
I would like to bring this into the limelight that some people use start/stop parenthesis, bracket and braces for (), [] and {} respectively. Using this convention allows listener to clearly visualize what speaker is trying to convey.
Mohit Soni on June 12, 2008 11:25 AMevery technical speaker should read this.
Caleb Cushing on June 12, 2008 11:29 AMIn Python they use a lot of double underscores. I've heard of a movement to call that character combo a "dunder" as in __mifflin
Nik Molnar on June 12, 2008 11:33 AMI don't know how this originated, but growing up (in Florida) my programmer friends and I called '{' & '}' "french brackets/braces". I've never found anyone else who used those terms, and I don't know where they originated.
Paul on June 12, 2008 11:36 AMUm, a cedille has nothing to do with a comma.
Andrew on June 12, 2008 11:56 AMAn old teacher of mine consistently called [ and ] "sub" and "bus", respectively. It has a nice symmetry to it, don't you think?
Peter on June 12, 2008 11:56 AMA professor at my university taught me and everyone else on the course to say 'fnut' for ' and 'double-fnut' for ". It is now the standard term for those characters among the students.
I'm not sure about the American Qwerty keyboard, but at least on the Norwegian it is very difficult to reach those characters. The tilde for example, will only appear if you enter some other letter after it. To get only a single tilde you are forced to enter it twice and then delete the second one.
Someone should design a keyboard for programmers where all the special keys are easy to reach and can be entered with a single keystroke.
Marius Gundersen on June 12, 2008 12:02 PMFor some unknown reason my RSS reader has some difficulties reading this post and listing it. I am using "iGoogle" RSS gadget with the last three entries listed. And this lastest one just doesn't appear. It was even weirder earlier today because then the list was just toootally corrupted.
I guess iGoogle RSS gadget doesn't like all those strange characters. Maybe one of those is improperly escaped by the gadget.
Philibert on June 12, 2008 12:03 PMPaul, I'm sure I've heard "french" brackets/braces for {} on occasion. I can't say where or when, but it's familiar.
Googling for either of
- "french braces" programming
or
- "french brackets" programming
turns up a scattering of hits, so at least we're not nuts.
Josh Millard on June 12, 2008 12:07 PM><)(*&!
Bruce Lewin on June 12, 2008 12:12 PMback tick for ` is heavily used here.
tic-tac-to for # has been used as well.
both cases by the non-programmers
eric on June 12, 2008 12:17 PMI really appreciate the inclusion of the INTERCAL pronunciations.
Mike Daniels on June 12, 2008 01:19 PMI've always referred to the one labeled Bar as a Hard Return. Not sure why but I think it made sense to me at one point in time.
blaineT on June 12, 2008 01:20 PM> "andpersand"?
> That guy's just making stuff up
The word ampersand is derived from the phrase "and per se and", (i.e., and in and of itself). So it's a reasonable way to spell it, really.
Evan on June 12, 2008 01:27 PMI'm surrounded by people who call this character "whack": /
Would that make this one backwhack? \
It's probably useful to note that much of the usage of these characters and the terms for them came about (a) in the U.S., and (b) in the Unix culture (which includes shell and C and Perl programming cultures, predating the rise of Python and Ruby and C#).
This is why the solution to Marius Gundersen's problem is to get an American keyboard for programming. It's also why there's so much apparent ignorance of non-U.S. usage of these terms or characters in the list.
And I'm amused at all the references to Ruby terminology that actually originated in Perl, such as the "spaceship" operator.
rfunk on June 12, 2008 01:34 PMIt should probably be noted that all of these symbols have typographical names that are standardized. It's true that an "exclamation point" can be used in some languages as the logical "not" operand, for example... but that doesn't change the name of the symbol itself.
One need only refer to a typographic specification / font specification to learn the names of those symbols. (BTW, some of the names given above refer to a different symbol tha the one pictured -- a cedilla, for example, is nothing like a comma).
Also, there's a difference between a hyphen, a dash, and a minus sign -- functionally and typographically. On a keyboard, they may be one and the same, but software that deals with typography will differentiate (in fact, there are different "dashes" of different sizes intended for different purposes; look up "emdash").
Bill Pullman on June 12, 2008 01:36 PMNo one else calls "," the "sequential separation operator"?
Craig Ludington on June 12, 2008 01:41 PMCommon perl pronunciations:
-> # arrow
=> # fat arrow
<=> # spaceship operator
~ # tilde
# # hash
! # not , bang
@ # at, ampersand
$ # dollar
[] # square brackets
() # brackets
{} # curlies, curly brackets
` # back tick
"" # double quote
' # single quote
| # pipe
* # asterix, star
<> # left angle bracket, right angle bracket
In perl there are operators that have identical pronunciation, eg "==" and "eq" which differ by the context they give to. Both pronounced equals.
I rarely pronounce symbols them the same unless I'm actually dictating. Usually, when paring or discussing code, it's just a matter of describing the intent or effect.
ah, "no HTML" includes the spaceship operator - though it got mentioned above for ruby.
left angle bracket, equals, right angle bracket # spaceship
re: pound # from wikipedia:
In some regions of the United States and Canada, the symbol is traditionally called the pound sign, but in others, the number sign. This derives from a series of abbreviations for pound, which is a unit of weight. At first "lb." was used; however, printers later designed a font containing a special symbol of an "lb" with a line through the ascenders so that the lowercase letter "l" would not be mistaken for the number "1". Unicode character U+2114 (℔) is called the "LB Bar Symbol", and it is a cursive development of this symbol. Ultimately, there was the reduction to a combination of two horizontal strokes (cf. skewed "=") and two forward-slash-like strokes (cf. "//").
Kearns on June 12, 2008 01:53 PM~ is used a lot if you're using *nix. Shortcut for the current user's home directory.
zack on June 12, 2008 01:53 PMIf the $ is called "string" shouldn't you list the ? as "print"?
Kearns on June 12, 2008 01:54 PMSo what is an octothorpe then?
Jon on June 12, 2008 01:56 PM@Rod: As for how to pronounce the 'lambda' symbol => in C# 3.0, MSDN says it's pronounced as "goes to", which I never really grokked. Anyone care to explain?
--snip--
x => x * x;
The lambda expression x => x * x is read "x goes to x times x."
--snip--
Source: http://msdn.microsoft.com/en-us/library/bb397687.aspx
Jesse on June 12, 2008 01:57 PMRegarding < and >
I've always called these "inequalities" when pressed beyond "less than" or "greater than"
Since, you know... it IS an inequality.
liveinvt on June 12, 2008 01:58 PMI'm surprised ` = back tick is listed as rare. That's the only way I hear it in computing circles (linguistic circles is obviously a different story).
Michael Greene on June 12, 2008 02:04 PMMy everyday use:
bang, quote, octothorpe, dollar, percent, ampersand, tick, open paren/close paren, open square/close square, open curly/close curly, left angle/right angle, splat, plus, comma, dash, dot, wack, backwack, colon, semicolon, equal, question mark, at, caret, underline, backtick, bar, tilde
I will say full-stop when dictating sentances, and sharp when talking about C#/F#,etc#.
My favorite spoken punctuation was a Chinese doctor who called the colon a (read REALLY fast with weak T pronunciation) "dot over dot".
Marc Brooks on June 12, 2008 02:05 PMI installed a british voice on my Tom Tom and it refers to the "dash" as a "minus" as in: "Take exit 48A minus 48B in 300 yards"...
Kearns on June 12, 2008 02:07 PM@ is an 'atmark'.
Michael on June 12, 2008 02:10 PMWhy is about 1% of my keyboard (and in a prime location) given to ± and §, what the hell are those symbols, and who uses them?
"plus or minus" might be useful when comparing variables, ut I don't know of a language which implements such a function, let alone uses that symbol.
It's just that I hit them a lot accidentally...
Sacha on June 12, 2008 02:22 PMJust coincidence that Americans call # the pound sign when the UK pound £ sign is on the same key in UK keyboard layouts?
Simon on June 12, 2008 02:23 PMLOL, the good ole ampersand. LOL
JT
http://www.ULtimate-Anonymity.com
in Germany, I heard for the @-sign Klammeraffe (clinging monkey) and for # Zaun (fence) - although from someone not familiar with PCs and/or programming
starly on June 12, 2008 03:18 PMI pronounce Ln (the natural log), 'lawn' usually, a high school calc teacher did it and it stuck
nickL on June 12, 2008 03:22 PMIn French you call @: arobase...
Toh on June 12, 2008 03:36 PMAs another poster already pointed out, I have always referred to ~ as "home" .. since usually that's the context that it comes up in.
As an interesting tidbit, my Russian friends call @ a "doggie" (loose translation).
@Sacha: What kind of keyboard do you have? Typical EN-US 101-key layouts do not have either of those keys.
kRYPT on June 12, 2008 03:38 PMFunny no one has mentioned ==
Oddly enough everybody I know simply says this as 'Equals' though I suppose I'm the odd ball since when reading this aloud I say, "equates to".
wow, i guess my quick read though the comments missed a few who did mention ==
Brian on June 12, 2008 03:45 PMI used to work with someone who referred to left and right angle brackets as "wicka" / "wacka".
Michal Migurski on June 12, 2008 04:07 PMFascinating post. Made me have a "meta-language" momement.
ee on June 12, 2008 04:11 PM@AndyB:
"Really you should consult a dictionary and find out which is the 'correct' answer for each symbol. This may not reflect common usage in the computing industry, but that's normal for all forms of language."
Ah, the rancid smell of naive linguistic prescriptivism - one of the hallmarks of the true unreconstructed geek. And where on the autism spectrum are _you_, little boy?
Alex Chamberlain on June 12, 2008 04:26 PMcoding horror just jumped the ^
p3p on June 12, 2008 04:34 PMIn the Gries and Schneider book, "A Logical Approach to Discrete Math", There is a lengthy footnote where one of the authors relates a funny story about how he was giving a lecture, and pronouncing both the assignment operator and the boolean equivalence operator as "equals", when a voice piped up from the back saying "becomes!". The entertaining story has caused me to pronounce them distinctly ever since.
To avoid the ambiguities of "equals", I pronounce these two as:
= "becomes"
== "equivales"
When there is a misunderstanding, I often have to switch back to the lenghty C++ operator names:
=> "member access operator" (informally "arrow")
<< "insertion operator" (binary left shift)
>> "extraction operator" (binary right shift)
Which I must admit is a mouthful. Somehow it stuck.
Wow, my last post had it's double angle brackets swallowed. too bad.
Bill on June 12, 2008 04:45 PMWhat no mention of my favourite. the Interrobang. !? (U+203D)
http://en.wikipedia.org/wiki/Interrobang
davey on June 12, 2008 04:55 PMWhatever happened to my favorite?
* = squishy bug
Jakemon on June 12, 2008 05:05 PMI found the story for you. Unfortunately I cant copy paste if for you thanks to Google books DRM crap. Footnote 5 at the bottom.
<a href="http://books.google.com/books?id=ZWTDQ6H6gsUC&pg=PP1&dq=gries+and+schneider&sig=AW8id9uGQv12GBDojuiSiKkzYWk#PPA17,M1">http://books.google.com/books?id=ZWTDQ6H6gsUC&pg=PP1&dq=gries+and+schneider&sig=AW8id9uGQv12GBDojuiSiKkzYWk#PPA17,M1</a>
Apparently it was Edsgar Dykstra who corrected him!
Excellent post! Although all the common names look familiar to me, I must admit that I have only seen 10% of the rare names before. Nice collection.
kukuciao on June 12, 2008 05:11 PMYou've got '\' listed both as whack and backwhack. IMO '\' == whack and '/' == backwhack.
JosephCooney on June 12, 2008 05:25 PMMy comp sci teacher in high school called { } "scrollies."
Andy on June 12, 2008 05:27 PMI reckon back tick is common, not rare, certainly in the UNIX/Linux community.
I've also heard # referred to as "sh", in the context #! = "sh-bang", but now maybe I'll call it flash bang! :-)
Officially, the - sign on the keyboard is a hyphen/minus. A dash is longer.
Mikel on June 12, 2008 05:50 PMPaul and Josh,
I've never heard { and } referred to as french quotes, but it's certainly possible. Some Perl documentation calls « and » French quotes, but of course they're not ASCII. ;-)
Mikel on June 12, 2008 05:53 PMI refer to ^ as simply "shift 6" when telling someone what to type. It seems to cause less trouble than actually naming it.
Nathan on June 12, 2008 05:53 PM@Jesse: Pascal's variable assignment := is called "gets". "a := a + 1" or "a gets a plus one". Seems similar to that. Comes from those mathematicians (as they also seem to like to write programs) who seem to always ensist that "a = a + 1" makes no sense from a mathemetical point of view.
Carleton on June 12, 2008 05:58 PMAny old IBMers out there? When I was there for a brief stint a long while back, I noticed that they seem to use their own names for things (e.g. Monitor = CRT, Hard Disk = DASD, etc.). Anyone know "traditional" IBM speak for these characters?
Carleton on June 12, 2008 06:03 PMYou mean nobody calls a * a dereference?
Chris on June 12, 2008 06:05 PMTechnically, a sharp sign has two strictly vertical lines and two crossing horizontal lines that rise slightly from left to right. It predates the typewriter symbols by a few centuries.
In casual conversation, the symbol on the keyboard is pretty close, but you wouldn't want to do something like ... mistake the hash for the sharp symbol when naming your programming language.
♯ <> #
Will on June 12, 2008 07:17 PMyeh i go with back tick for `
and whack for /
and when thinking in XML, for "<", ">" and "/" I use "blond", "brunette", "redhead".
Aren't "french quotes" those little chevron like characters correctly called Guillemets (or sometimes 'duck feet').
They're used in ML and F# for quoting code.
"circumflex"?
Though I haven't been a native French speaker for 30 years, I would swear we called that (essential) part of French writing the "circonflex".
Perhaps someone is confusing it with circumcision.
Yves on June 12, 2008 09:03 PMIn Swedish @ is called snabel-a, i.e. an a with the trunk of an elephant.
风幽暗 on June 12, 2008 09:11 PMI say "paren-paren" for ()
Brian on June 12, 2008 09:48 PM(!@$%^&*)
Nope, still seems like gibberish to me.
Some contributions from Sweden (poorly translated)
@ = Elephant trunk A
@ = Cinnamon bun
{} = Sea gul wings
# = Lumber yard
# = Pile of sticks
# = Fence
I've used "Whack" to specify the "\" key to fellow geeks, all I get is blank stares back, I'm assuming it's an age thing also since I'm senior to them (8 years) which is like grandpa to grandson in computer years right?
Scott on June 12, 2008 10:45 PMIn German @ is "Affenschwanz" or monkeytail.
Twist on June 12, 2008 10:49 PMI would like to take this opportunity to take the bold, prescriptive stance that
THERE IS NO SUCH THING AS A FORWARD SLASH, AND NO SUCH THING AS A BACKWARD SLASH.
There is a slash. There is a backslash. That is all.
Atario on June 12, 2008 11:41 PMHI,
Really a nice topic to talk on, It would be fun if we all try this thing among ourselves and check what we all pronounce..This is certainly going to b a fun Session for me on next weekend...Thanks for a nice list and a excellent idea...
And i was amased to c the "@" is called APE, ROSE, CAT and CABBAGE????
How this name came upon?????
We generally use the word 'sub' for the underscore in code reviews. Its faster as one syllable.
Corporate Drone on June 12, 2008 11:57 PMAll you have to do is visit the Unicode Consortium web page
to find a formal definition that is Universally applicable (that means outside the states as well as inside).
Your pound key would confuse with Ux20A4 Lira sign and UxA3, pound sign
Dave P on June 13, 2008 12:10 AMSome Danish translations
# garden gate (havelåge)
" goose eyes (gåseøjne)
@ elephant trunk A (snabel-a)
In norwegian, we often refer to the dot "." and "->" in the context of class/object members as 'sin' wich is the 'his genetive' ( http://en.wikipedia.org/wiki/His_genitive ).
"window.document.height()" becomes "window sin document sin height()"
wich rougly translates to
"the window's document's height"
It sounds slightly awkward since we're mixing english and norwegian, but it quite accurately describes the intention indepent of actual syntax.
Jeff: "...most other cultures know it as the hash key."
You mean, most English cultures. We ofcourse have our own words for all these characters in our own languages. Some examples of how I call these characters in Dutch:
# - hekje (little fence)
{ } - accolade openen / accolade sluiten (opening accolade / closing accolade); I guess that's a French word
: - dubbele punt (double point)
; - puntkomma (point comma)
@ - apenstaartje (monkey's tail)
^ - dakje (little roof)
@Nathan: Great example of what I suggest should be avoided: shift+6 on a US keyboard might give a ^ (carat, up-arrow), but on mine (Swedish) you'd get a &.
@Yves: 'Circumflex' is indeed English for the French 'circonflex'.
And there a