This article is more than 1 year old

Why Microsoft C# is ‘paralysed or dead’

The C Octothorpe Blues

Letters Our recent etymological diversion Why Microsoft makes a complete hash out of C# prompted a huge response, more than 200 emails.

As you recall, reader John Timaeus attacked Microsoft's appropriation of #, the 'hash' or 'octothorpe' symbol for its software dev tool C#, pronounced C Sharp after the musical notation. Also Microsoft is using the wrong symbol - the hash and sharp symbols are different typographically, albeit subtly. We liked John's sentiment, but were unimpressed with his proposed alternative pronounciation: C Hash.

Let's move on.

Four readers didn't like the piece - the most succinct was Tux Racer: Got 4 words for this article: Who the f*ck cares?

Mr. Racer has a soul mate in Stephen Huyssoon, who writes:

Look here. You seem to have as much time to screw with as I do and I am quite unemployed for some time now. Why not write about the cattle mutilations? More interesting than the # symbol

Later, Stephen, later.

First, some constructive engagement.

Drawing upon a 'rare' meaning of #, as defined in the Hacker's Dictionary, we signed off our original piece thus: "C Splat, it is then".

Oh no it isn't, 30 of you replied. # does not mean splat to anyone, except maybe a few souls at MIT.

Says Peter Harach: Drew - you just can't call it SPLAT. That won't do at all!

The SPLAT is the asterisk *.

If anything ever looked more like a bug splat on a car windshield or a blob of ice cream dropped on a sidewalk - it just has to be the asterisk. This is very obvious - you just can't call the hash symbol a splat. Doing that is going in the wrong direction!

Besides, three of you say, the splat is also a nickname for that funny little four-leaf clover key on Mac keyboards.

C SPLat is also a name for a product - a "translation program worthy of everything that Microsoft would be proud to produce", Alan Harper writes - C-SPLaT: The Client-Side Pig Latin Translator



Thank-you for the Music

OK, so what about renaming C# D Flat then? Only one vote, from Simon Jones, a Brit we guess: By all means call "C#" "D flat". That's much funnier and won't confuse anyone, except Americans but they deserve it.

Simon, where's your spirit of international solidarity?

No, we are rapidly losing interest in Db or D Flat – although there is an astounding connection with the Beast, as Simon Ransome finds:

The frequency of bottom c-sharp (or d-flat) is 17.32Hz. With a speed of sound of 346.05 m/s (the speed of sound in air at a temperature of 24.41 degrees Celsius), the wavelength is exactly 1998 centimetres, which divided by the number of letters in "doh" (which is "C" in the doh-re-mi scale) is 666. Spooky, huh.

This man has talent. Ever thought of a career as the new Erich von Däniken?

Our reference to C Sharp and D Flat being the same note on a piano provoked a little abuse and much learned putting us right. Here's two contributions, the first from Chris Bidmead, who tells us our assertion is "completely incorrect. They are _different_ musical notes, each at a different pitch.
On the modern so-called "well-tempered" piano, sometime considered a musical instrument, these notes are accommodated on the same key, and indeed are identical, a compromise somewhere between the two pitches. This is a convenience, not a reflection of musical reality.

Martin Burns of New Media Whore is also a man of temperament.

C sharp is only the same as D flat if you're playing an instrument with equal temperament.

If you want *accurate* tuning, then the frequency ratios between notes are simple numbers: an octave=double, a fifth=3/2 etc. All well and good. If A below middle C is 440Hz, then you can work out all the notes in the scale of A reasonably easily.

However, if you've worked out that (say) a sixth above A is F#, which should be 733.334 Hz, and start working out frequencies from F# instead, you find that some of the notes are a wee bit out from what you calculated before.

And of course it gets more significant the further away you go from the original frequency.

This isn't a problem if you're playing an instrument which has analogue frequency control (eg a violin), but it really sucks if you're playing a keyboard instrument and you want to be able to play in more than one key without retuning the instrument.

So in the 17th century, they came up with a cunning plan - munge the frequencies a bit so that every semitone is equal. That way, the differences will be equally significant whichever key you play in, and that significance will be fairly low - particularly once you get used to hearing it.

This was known as equal temperament, and was the mechanism by whichcomposers could write cycles of keyboard pieces using all 24 keys (12 major and 12 minor). Example - Bach's Well-Tempered Klavier. 2 preludes and 2 fugues in each key.

But getting back to C#, in a non-equal temperament, C# and D flat are subtly different. The frequencies you get if you work out the correct ratios in a key which includes C# (eg A major or B minor) are not quite the same as those in a key which includes Db (eg Gb major).

For more temperament info, take a look here.



D Flattered

That's enough of the music claque. Five of you tell us the name D Flat is already taken. Says John Faulkner:



Sorry, you can't rename C hash as D flat, attractive as the proposition reads. This name is already taken. Back in 1991-1992 Al Stevens who wrote (maybe still writes) the "C Programming" column in Dr Dobbs Journal invented D Flat, an OO C-ish language for the C purists who disliked C++ (and there's a hash of a language!).

Oh. So does this mean a return to C Hash, the suggestion of John Timaeus, the inspiration of our original piece? Twenty or so of you like this, and its variants C (h)ash - with a silent aitch or 'hache', or C Rash. Says Roddy MacKenzie:

"C#" is actually an abbreviation for "Complete Hash", therefore I back John Timaeus' request that the intermediate abbreviation "C Hash" be used in place of "C#" to minimise confusion

Having been forced to try beta editions of "C#", I can confirm that the Beast from Redmond has made a Complete Hash of it.

Isn't there anything better? Two of you wanted C Gate, for mischievous reasons, to provoke a spat with Seagate. That's not going to work, guys.



What’s this got to do with the Liberal Party?

But hey, let's not forget the octothorpe. Six votes here for C Octothorpe and some Baroque variations.

Says John Ridley: "My friends and I (all Windows programmers) have been calling it "C Octothorpe" since MS announced "C#" - including near MS people; they don't like it :-)".

Ralph Bearpark adds: "C#" should really be pronounced "C Octothorpe" or simply "cocktothorpe", which would probably bring a smile to the lips of a former leader of the UK Liberal Party. Were he not dead already.

John Styles warms to this theme with our favourite contribution - send us your snail mail and we'll send you a Reg t-shirt.

I propose that C Octothorpe be pronounced Cocteau-Thorpe commemorating:

1) Jean Cocteau, who in the words of kirjasto.sci.fi 'made his name widely known in poetry, fiction, film, ballet, painting, and opera. Cocteau's works reflect the influence of surrealism, psychoanalysis, cubism, Catholic Religion, and the use of opium.'

2) Jeremy Thorpe, former leader of the Liberal Party who was involved (and of course aquitted) in one of the most bizarre political scandals of the century.

Somehow opium and dead dogs seem not inappropriate for a new language invented by Microsoft.

By analogy J# should presumably be called "Jock Toe" Thorpe. I recommend you do not look up "Jock Toe" on Google Otherwise you will discover a fetish I was certainly not aware of. (We did: it sucks.)

Coctothorpe. Sounds good. And will it get through Hotmail registration? But what about C Paralysis?



C# on life support

In our piece we wrote that the everyone knows that # is really 'hash'. Err, wrong.

Just to let you know, # is also the abbreviation for fracture in medicine ( can't speak for the US though). For example C-Spine # = fracture of the cervical spine ( a broken neck). So the new M$ product C#, accordingly is either paralysed or dead, says Pete W.

John Quirk adds: This was particularly handy when I worked on an implementation of a system called HISS a few years (8/10) ago. The system was American, had American keyboards, hence no # sign and for two years the whole of the hospital communicated monetary values by writing things like "35 pounds", because #35 indicated a radial fracture.

The NHS is not alone in its confusion: "The UK Department of Trade Industry website still has not discovered the £ sign and uses the #, Patrick Brennan notes. Check out this recent press release It is Highway to success.



And from around the world

In Austria, it is also called "Raute" which means diamond or rhombus. Walter Pleyer

In Brasil, this is called (officially at least by the Telcos): "jogo da Velha", which literally means: "The Old Lady's game", in fact the local name for Tic-tac-toe. Eric C. Forat

In China, the '#' sign is also a Chinese letter meaning 'well' (as in drinking well), 'mine shaft', or 'pit'. You can find the information of Chinese '#' (C#?) here. So in China, it's 'C well'. Jacob Poon

I don't know how commonly used in China it is any more, but # was used in ancient china to donate a field. It was a three by three matrix, communally used by eight families, with the ninth piece going to the government in taxes. - James Governor

The French will tell you that they named the # sign hache (pronounced ash - silent h) for its similarity to the letter H, which is, of course, hache in French. - Alan Thomas

Maybe MS speaks French? # is called the "dièse", and that's the French for "sharp" (when you're talking about a note) - alexandre

In Iberian Portuguese the # sign is named as "Cardinal".The same word used (in English as in Portuguese) for the Roman Catholic Church honour. Anyway, there is a story that it was used as prefix to a number when it was supposed to be read as a cardinal number instead of and ordinal number ( #21 = read this as _twenty first_ instead of _twenty one_ ) - Julio Anjos

In Israel it is called "sullamit" meaning a little ladder. - Ori Redler

In Japanese, the key is called a "sharp" (sha-pu), and you often get told on the phone to press it. Also, when typing, you call it the "sharp key" - Srdjan Sobajic

In reality, every Swede knows it should be 'timber yard'. - Goran Marnfeldt

Swedish computer engineers often refer to that sign (#) as "brädgård", which means lumberyard, since the sign is very similar to the old map symbol for a lumberyard. Telephone people call it "fyrkant" which translates into quadrangle or square. - S Ingemar Johansson



Highways and Byeways
Intercal (http://www.tuxedo.org/~esr/intercal/), a
remarkable programming language that provides useful names for several ascii characters. # is "mesh" (as mentioned in passing in your article), = is half-mesh, " is rabbit ears, @ is whirlpool, and so on.


The Intercal manual can be found at http://www.tuxedo.org/~esr/intercal/intercal.ps.gz



At HomeHardware.ca

In deference to the weak decision making skills of certain members of our staff, we have adopted '#' as the 'waffle' symbol as it resembles the breakfast food of the same name. Thus C# should rightly be pronounced 'quaffle' - an obvious subversive reference to books endorsing witchcraft and wizardry and leading our children astray. Once again Microsoft is revealed as an instrument of Satan. Thank you and beware...

rsf.




I happened to work for the Beast as a contractor in the middle 1980s, back when vendors insisted beta versions of Windows 1.0 should run on two-floppy PCs. (Also back when all their Apple, PC, and Windows development was written in vi and compiled on Microsoft's Xenix operating system.

Their internal development team was working on a Xenix-based enhancement to C++ which they jokingly referred to as C++++ and then C#.

I don't think it ever saw the light of day (it was intended for internal development only anyway.) But the name C# is undoubtedly derived from that.

If Unicode existed back then it wasn't common since many mini computers were still 8 bit and only maybe IBM and DoD had 32 bit anything. - David Innes



Early attempts at selling British style tabloids in America (Larry Lamb and the other British journalists imported) were inundated with complaints that 'no' appeared in the middle of sentences. Which would make for odd reading. The American public at the time was used to the pound/hash prefixing numbers and not seeing 'The no. of escaped lunatics was 278,058,881 give or take 92,686,294 who are sane' instead of 'The # of escaped lunatics was 278,058,881 give or take 92,686,294 who are sane'.

- John Everitt




Surely musical notation must pre-date the use of pounds, hashes or numbers?

After a bit of research I found a few examples, plus http://www.highhopes.com/musicsymbols.html.

The # was used in Germany in the 15th Century, which somewhat pre-dates 1971 so I think we can conclude on that basis that C# can be legitimately pronounced as C-Sharp.

What is interesting that the # symbol derives from a natural symbol that has been 'crossed out'. If we follow this logical train of thought, it can be argued that natural crossed out is 'unnatural'.

Hence Microsoft has a product we can call C-unnatural :-)) - Howard Richards



Jimi Hendrix wrote and performed "C# Blues" many years ago, and I doubt that he thought of it as "C Octothorpe Blues" or "C Splat Blues."

- Robin ®

More about

TIP US OFF

Send us news


Other stories you might like