A few weeks ago, we talked about how the rise of computing, a field wherein English is the primary language, is affecting smaller languages, and more specifically, the Dutch language (because that’s my native tongue). Of course, it’s not just the smaller languages that are affected – English, too, experiences the pressure.
We have to talk about something called camel case. Camel case, as the name vaguely suggests, refers to the practice of using capital letters for elements in compound words or phrases – like iPod, PowerPoint, or WordPerfect. You also see a lot of camel case in names, such as MacGuyer or McDonald’s.
Not too long ago, this was a practice quite frowned upon. Up until 1999, The New York Times only allowed for one stray capital letter, but only if the second element of a compound was a proper noun. For instance, somewhere in the 1950s, the Bank of America dropped the “of” and became BankAmerica, which was allowed by The New York Times. From 1999 onwards, The New York Times allowed up to three stray capitals, and today, we are instructed to just follow the whim of corporations.
Camel case quickly took off from the 1950s onwards, mostly because of the rise of computing. There are a number of different theories as to why camel case became so prevalent in the computing industry especially, and many claim it has something to do with the limited space programmers had to write identifiers. The small size of displays in the early days of computing may have played a role too.
In any case, it didn’t take long for camel case to spread like wildfire. CompuServe, WordPerfect, NetWare, ClarisWorks, HyperCard, PowerPoint, ThinkPad, and so on, and so forth. In the late 1990s and early 2000s, Apple decided to take it all to a whole new level with their iMac, iPod, eMac, iPhone, and all the other i-somethings that the rest of the industry copied.
In fact, I’m currently involved in a silent and lonely struggle concerning the name of this very website – a struggle vaguely related to the issue of camel case. Certain individuals (you know who you are) are secretly trying to change “OSAlert” and “OSN” into “OSAlert” and “OSn”. These certain individuals argue that this is the way our logo is written, and that we should respect that. I say to hell with our logo – common sense dictates that our name is OSAlert. In fact, I’m starting a secret counter movement to preserve the proper and traditional way of writing our name. I’d even prefer “OS News”, but I’m willing to let go of the space.
Right.
When it comes to camel case, it isn’t actually the capital letters that are the issue. It’s actually all about word spacing, or more specifically, about how corporations think it’s cool not to use word spacing. Apparently, someone in a dusty marketing room decided that camel case was cool, and the entire world just kind of ran with it.
Caleb Crain of The New York Times draws an interesting parallel between today’s camel case and ancient Greek and Latin. Most of you are probably aware of the fact that the ancient versions of these two languages did not use word spacing at all. More specifically, ancient Greek didn’t use them, and Latin ceased to use them by the second century. This may make reading more difficult, but that wasn’t a problem since readability was not a goal of the ancients.
Back then, reading wasn’t a strictly private matter as it is today. There were few books, and few people could read anyway so that wasn’t a problem. Those who could read were supposed to read aloud and commit entire texts to memory; I even learnt the rhythm in which they did this in Latin/Greek school (I envy those who didn’t). In short, reading was a public act – not a private one.
Spaces in Latin and Greek texts didn’t start coming back into fashion until somewhere around the 8th century. Monks and clerics had a lot of troubles with ancient texts without spaces, and as such they were added back in to make it easier for them to copy these texts. As a very important side effect, this made it possible for them to copy these texts in silence. In fact, people noted that reading became easier for everyone if you used spaces.
This was a major shift. For the first time, reading became something you could do in silence, as a private thing. You could read texts without anyone ever knowing you did, because you read silently. You might be able to see how this subtle shift made a whole lot of things possible – it caused a psychological shift. “Psychologically, silent reading emboldened the reader,” paleographer Paul Saenger explains, “because it placed the source of his curiosity completely under his personal control.”
Consequently, you could argue, says Crain, that camel case is not something new and modern, but in fact harks back to a time in which reading was “effortful, public and loud – like a visit to a contemporary shopping mall”. I’m sure you can see the link here, right?
“Perhaps camel case, like intrusive music, baffling floor plans and aggressive fragrances, is deployed to weary and bewilder us, to render us so addled that we have to say corporations’ trademarks aloud to be sure of what we’re looking at,” Crain argues, “It doesn’t have to be this way. Put some distance between you and your Master Card; don’t let your Iphone make the rules. You don’t have to buy their language. It already belongs to you.”
as far as i know:
1996: iPhone by infogear (later cisco)
1998: iMac
1999: iRiver was foundet (maker of mp3/media players)
2001: iPod (again a mp3-player with an i )
2007: iPhone again
I think the Apple iWhatever is distinct enough from any convention. It’s more of a marketing/identity thing than a readability solution.
I hope Apple will name their tablet something modern, and not just something boring like iPad, iTablet or whatever.
… that’s another thing, perhaps it’s just me, but Apple has a real hard time naming things that sound appealing to me, that aren’t operating systems that is.
It’s either iBoring, or some nebulous thing like “Time Machine” or “Boot Camp”. They sound more like bad puns and play-on-words than communicative titles of technologies.
NeXT anyone?
I’m enough of an old-timer to remember that it was the SmallTalk language and development environment that probably got everyone writing function and method names like doNotPassGoOrCollect200Dollars().
However, the size difference between the upper and lowercase letters makes the above much more readable than DONOTPASSGOORCOLLECT200DOLLARS(), so we haven’t transitioned back to Greek or Latin.
Case-mixing can make text easier to read; it’s too bad that English dropped the German practice of capitalizing nouns (it was still common practice in English in the 18th century, see the US Constitution for an example).
I prefer programming languages with do_not_pass_go_or_collect_200_dollars() method name conventions.
Another annoyance are wiki engines that automatically linkify CamelCase words.
The language itself is called Smalltalk, though. Not SmallTalk as too many seem to think. The correct capitalization just reads better in my opinion, and apparently also in that of the language designers.
I was about to post that Greek, Hebrew and Latin used all the same case …
Besides our old variables in BASIC and FORTRAN were more like BOC (for something like bufferOverflowCounter) or if verbosity was encouraged, BOCTR. Never more than six characters in the OLD days.
Actually, to this day when I think I can get away with it I use 6 char. var. names.
Ah well… that reminds me that I must get back to work. I have dallied too long and not finished my Sprint in time.
Not SmallTalk but Turning long ago in school if not VB and VC afterward; txtName, varName, funcDoesThingy(). I’d suggest that the programming teacher may have learned it from SmallTalk but she was barely keeping up with course book she was reading from. (nice teacher, just not a coder)
As far a I know, the reason was that spaces where not allowed in identifiers (and still aren’t) and the underscore character was not added until a lot later. But even today, it’s infinitely easier to write aFunctionThatDoesSomething that lifting your hand or stretching your small finger to write a_function_that_does_something. Consider that when you are programming you have to write these identifiers all the time and that for most the two are equally readable and you can see why camel case is so common in programming.
After languages (like RPG, older versions) required identifiers to reside in a certain position within the line (e. g. colums 2 – 6 for this and that, column 7 for something else), the space character has been introduced as a statement separator. Later on, the space character and the tab character were means of “pretty coding”; in some languages, they even are a syntactic element today.
The easyness of _ depends on its place on the keyboard, and this depends on the keyboard layout. The german layout, for example, places _ where ? is on the english / US one, this means it’s exactly left to the right shift key. But because most programmers are used to the english / US layout, camel case (camelCase?) has been so widely adopted, I think.
According to reading: I agree that myNiceFunction() and my_nice_function() are relatively equal. A problem can arise when you follow conventions that suggest the case for certain text elements within the source code, such as in C: full UPPERCASE for #define macros, beginning with a Capital for enums (I’m not sure about this, but I think I remember that I read that somewhere) and regular lowercase for all other identifiers.
Using _ instead of space gives the advantage of automatic parsing: For example, function names with _ can be easily found and turned into documentation, simply by replacing the _ by a ‘ ‘ (a literal space). It’s not that easy with camel case where the end of one word has to be determined by the case of the letter, then turning the letter into lowercase again and preceeding it by a ‘ ‘. If you now have scripting tools in mind, you recognize that automatically processing _ is much easier.
Finally, just giving a very individual opinion: I mostly use the_underscore_convention for longer identifiers. If the identifiers get really too long, I shorten them and give a comment about what the abbreviation stands for, sviftdft() /* some very interesting function that does funny things */. But in the past, I even wrote right away, without capitalizing the beginning of a word, justallinone, which I today would consider a quite bad style. But much better than my Pascal days, without spaces and cases and everything, init;bk(0);setpicardcolor(x0+x1+xk+ax(rs(r,10,12),qq[x])+q,f[q[ni],kk[ i+1]); – just plain terrible…
Here if what I like in order of preference:
– OS News
– OSAlert
– OSN
if we follow the .NET conventions, it would be
OsNews
and looks nice
Well, actually it would be OSAlert.
Source:
http://msdn.microsoft.com/en-us/library/ms229043.aspx
you’re right, sorry.
You must be killed.
I thing it should be TB… short for ThomsBlog.com.
JUST KIDDING Thom!
Actually the last 5 or 6 articles have been decent.
Although it is a complete off-topic (sorry), I must say that I’m really put off when I see the word “I” throughout the whole article. It is OK to present the editor’s view, but in a separate section. Otherwise it does look like a blog post.
Despite the fact that Thom sometimes get carried away and writes very biased articles, I think that he is doing a very good job. Besides, you cannot always do your best when you’re writing 90% of the articles. I wish there were more editors actively involved.
I’d volunteer but honestly, if I were to write articles it would take me a week at a time, because I’d want to go over it again and again to make sure the content makes sense, is valid, etc… because I know all of you people reading OSAlert would pick it apart.
Plus I’d probably get all defensive about my articles.
The reason why CamelCase was popularized in programing was not because of the size required by an identifier.
In the grand scheme of things an extra character in a multi-word identifier is not that impactful.
The primary motivation behind CamelCase was that, in many cases, early compilers and interpreters only permitted alpha-numerics in identifiers which gave rise to CamelCase for readability reasons.
Microsoft, of course, had a great deal to do with popularizing CamelCase as the entire API is CamelCase.
Agreed,
The rational on this is because compilers use identifier names [variables, classes, functions, methods, etc.] as an entity that just contains alphanumerical characters and a reduced number of symbols.
Space is generally treated as a separator, so, if a variable is called “my salary” instead of “mySalary” would create ambiguity for the compiler: “what is the variable name? ‘my’? if the variable name is ‘my’… what the hell is ‘salary’ here? I do not know a reserved word called ‘salary’ and after the variable ‘my’ I expect an operator or a function name to invoke”… or something like that
Quite easy: “my” is the (data)type of “salary”.
The biggest kudos I give to Qt is their non strict camel casedness of their class methods.
My knee jerk reaction is to look at someone’s code with CamelCased methods and immediately identify “oh, they must be another windows programmer”.
I’m not sure Microsoft used Camel Case all that much until .NET – their legacy APIs (DOS, Win32, etc.) are full of Hungarian Notation, which they had a great deal in promoting. Basic/VBasic may be a different issue though.
Qt, on the other hand, has been using CamelCase for longer than .NET has been around; as have many others.
“We have to talk about something called camel case. Camel case, as the name vaguely suggests, refers to the practice of using capital letters for elements in compound words or phrases – like iPod, PowerPoint, or WordPerfect. You also see a lot of camel case in names, such as MacGuyer or McDonald’s.”
I prefer to think of them this way:
iPod is camelCase.
WordPerfect is PascalCase.
Wikipedia says that with Camel Case the first letter can be lower or upper, but PascalCase is “always” with the first letter uppercased. I personally like to keep these separate and think of them as camelCase and PascalCase.
Edited 2009-12-03 01:20 UTC
Actually, the accepted definition of CameCase encompasses both forms …
http://en.wikipedia.org/wiki/CamelCase
Opposing so called ‘camel case’ is really like fighting windmills.
As is clear from just a handful of responses by now camel case is useful when the use of spaces is prohibited. Besides that it is an easy way of improving brand and/or style recognition when used in single monikers/brand names.
Neither use decreases the legibility of any written language (be it text or code) in these respective contexts.
– ITNews
– IT News
– ITnews
I have a pet peeve about CamelCase myself. I recently started having repetitive strain injury issues, and I found that switching from C++/java style CamelCase to C-style lower_case_with_underscores is a hell of a lot friendlier to the tendons in your hands when typing (especially if you map underscore to a key for which you don’t have to press shift). I think the designers of C++/Java didn’t have ergonomics in mind when designing their language, but perhaps in the future language designs should take that into account; the less modifier keys you have to hit when typing, the kinder you are being to your body.
I wonder how well it would work to make . a valid character for entity names, and not use it for any operators, in a language? Then you could get away with much less mod key use.
Nitpick, re: “OSAlert”
http://www.osnews.com/images/styles/logo.gif
I’d say that makes it a fairly valid way to express the name.
The author lost me in how spaces enabled silent reading. I think the author made that up. I use Camel Case on my file names because they are easier to read without spaces.
Without entirely agreeing with you, I do think Thom at least implies something wrong when he says, For the first time, reading became something you could do in silence, as a private thing. (emphasis added) Silent reading as a private behavior most definitely existed in Imperial Rome, for example but it was usually done by moving one’s lips. Augustine of Hippo, in the Confessions, relates the amazement of him and some friends when they came to meet Ambrose of Milan and found him reading silently. That said, Augustine was a highly educated and cultured man, so this also implies that Thom isn’t far off the mark.
On the other hand, Thom is definitely wrong about spaces between words. Spaces don’t appear in nearly any writing before the Romans and Greeks (in fact, I can’t find any reference to spaces in writing before them). To the contrary, the Romans specifically invented a word divider that everyone else lacked, called the interpunct.
See more fully here:
http://www.stanford.edu/class/history34q/readings/Manguel/Silent_Re…
http://en.wikipedia.org/wiki/Word_divider
http://en.wikipedia.org/wiki/Interpunct
Further, Greeks did use spacing and punctuation in earlier than the 8th century, and it wasn’t added in for the monks – it was added in for people whose second language was Greek. Prior to that there was (i) no spacing, (ii) no sentence punctuation, and (iii) no breathing marks.
Allthoug spaces are allowed in file names in many file system definitiions, it’s obvious that spaces usually are the delimiter character in dialog shells and scripting tools. If file names contain spaces, there’s always a need in scripts to include proper quoting, because a space could keep a program from working.
There are other characters that are allowed in file names. You actually *can* use them. But should you?
someFotos of Jim & Bob @ the “OS” convention “booyah!” in Bl~APdmanntown \ N~Ao~A"Ybauml~A|nd / near Jane’s farm[1].JPG
Imagine the fun when you have tons of such file names and you have to script something for them…
As I mentioned before, I prefer the underscore character, even in file names. And I don’t use umlauts, eszett ligatures or any possibly special character in them, just [a-zA-Z0-9] and _ – , and #. This has the advantage that file names are readable under any circumstances (no special character map required, no support for UTF-8 needed); this is an essential criterium especially for data recovery needs, where following such a “minimal approach” convention can save you some trouble.
I actually like CamelCaps. But most of the time they’re abused; they never look pretty if two or more capitals occur in series for me. Something like:
new XMLReader();
new XmlReader();
The second looks a lot nicer to me. OSAlert for that reader seems better OSAlert. So yes, up with the movement for vested interests!
I agree with Thom that the site should be called OSAlert and not OSAlert. A possible way to clear some confusion (though not the whole debate) would be to have the logo changed, with the cooperation of the original designer.
The ScummVM game interpreter actually did this about a month ago, as their logo used to include a lowercase “s”. http://www.scummvm.org/news/20091030/
Logo design has never strictly followed the same capitalization rule as written English, but nowadays brands are being more and more liberal with capitalization so it can be hard to know what’s correct for normal written usage.
Edited 2009-12-03 06:28 UTC
The logo has always been like that, since 1997 http://www.osnews.com/1997osnews/
“OSAlert” makes the word “news” more readable, where as “OSAlert” puts more impact on “OSN” with some trailing letters. “OS News” is fine, because the N does not mess with the “OS”. Basically I^aEURTMm concerned that the “OS” part should be stressed, and “OSN^aEUR|” de-stresses that.
Thom won^aEURTMt have it because he is passionate about language and doesn^aEURTMt like churlish web 2.0-isms AFAIK. Not that I do either (can^aEURTMt stand awkward domain hacks), I just think the lowercase “n” looks nicer and helps to keep OS as O.S.
David doesn^aEURTMt seem to mind either way, which doesn^aEURTMt help separate the scrapping school boys.
Off topic i know, but how good is this quote from the above link :
Edited 2009-12-03 12:34 UTC
KNF.
Urgh.
K&R!
Allman FTW!
CamelCase is annoying, but what about all caps?
To add more: TIME, KISS, ASCII
I would prefer osnews
The American Standard Code for Information Interchange (acronym: ASCII; pronounced /"E^~A|ski/, ASS-kee)
I’d agree with “time” and “kiss” though unless somehow being used for a specific acronym. If it’s done intentionally for emphasis then someone’s parents needs take there keyboard away for a while.
Ok, so it has a hyphen. Does that mean it doesn’t qualify?
I don’t think newspapers and similar should care at all about what the logo or trademarks use for typographic decoration, but write it in the way that makes it as legible as possible.
iPod => Ipod
IKEA^A(R) => Ikea
I mean, what to do when even more companies start using : and _ etc in their product names? Newspapers would have to start using logo images instead of plain text…
…and I prefer OS News.
I agree, also .NET should be spelled out Dot-Net.
The reference to ancient Greeks and Romans is a bit far fetched. Both of them had only capital letters. Minuscules were only developed in the middle of the Middle Ages for both scripts. Plato probably would not be able to read a modern edition of his books. And neither would Ceasar recognize his Gallic War. But if he could, he would also manage to read it silently as he is said to have been the only exception in regard.
From the article:
“Camel case quickly took off from the 1950s onwards, mostly because of the rise of computing.”
Ahhhh… no. Back in the 1950’s, people were still almost exclusively punching cards and everything was still pretty much upper case.
It wasn’t until the early 80’s, believe it or not, that lower case become (more) common on computer terminals.
So… we may be seeing a rise in camel casing, and maybe that rise started in the 50’s, but it sure wasn’t due to computers in the 1950’s. Or the 1960’s. Or even the 1970’s.
Bad example. Both names come from Scots Gaelic/Irish. For example, McDonald comes from something like “Mac Dhomnuill”, where “mac” means “son” and “Domnuill” is a given name, and “Mac Dhomnuill” means “son of Donald”. Traditionally they are two words and English mashed them together – a long, long time ago (we are probably talking, like pre 1600 AD, though I don’t know precisely when.) We also have names like O’Neil (~A“ N~A(c)ill) and O’Connor (~A“ Conchobhair), where “~A“” means “descended from” in a honorific way. You’ll find the same names with Mac or Mc or even without either and also some have a version of the more English “son” variant, likewise with the O, so MacDonald, McDonald, Donald, Donalds, Donaldson and O’Connor and Connor.
I know where it comes from, but it is still camel case – just with a different origin. More tolerable, if you will.
I think you need to rethink that. Most mainframes of that generation used paper tape or punched cards for input. When VDU’s came in to the picture, most computers used all caps letters. It was much later (some time in the 60’s I guess) that non caps came about. So, the influence from the use of computers was pretty minimal. As a programming concept, it didn’t really catch on till the 70’s. Indeed, most programmers used upper case and underscores or dashes LIKE_THIS or LIKE-THIS even in the 70’s and early 80’s.
Yes, I worded that wrong. What I meant to say was not “because”, but something else.
“Camel case quickly took off from the 1950s onwards, [later on] mostly because of the rise of computing.”
Or something like that. Degree in English or no, I still mess up .
I dunno. I was born in 1963. And I never even got to touch a computer until I was 16. And that was far earlier than most people of the time. Computers were very much “glass room” items, and most people’s interaction with computers was limited to those puch card electric bills we got that told us not to spindle, fold, or mutilate.
It was not until the mid to late 80s, at the earliest, that many people really interacted with computers. And even then, not in a way that would expose them to camel case.
It seems to me that even today it would be a stretch to associate the use of camel case in marketing, etc. with its coincidental use in computing. And claiming it was having an effect back in the 50’s seems *way* beyond the pale.
I almost hate to say this. But this is one time that I really do have to ask myself, “What is this doing on OSAlert?”.
Edit: Which is not to say that it has not sparked some interesting conversion. I knew that the concept of “zero” was a relative late-comer. But I’d never even thought about the “Space” character as being an innovation.
Edited 2009-12-03 16:26 UTC
CamelCase ( ) is most beneficial in helping string pattern matching algorithms find exactly what is desired while still providing the human reader a logical break between words.
Could you images what would happen if I simply did a google search for ‘os news’ ?? BUT ‘osnews’, works perfect.
Granted I can encapsulate the search string with quotes, but that destroys the utility completely. Typing quotes is a three-step operation – press shift, press ‘ key, release shift and takes notably longer to complete than the typical osnews, versus “os news.”
Just my money on loan from BankAmerica…
–The loon
I’m surprised no one mentioned final letter forms. Sometimes, the jamming of words together resulted in ambiguity, and sometimes it didn’t. To deal with some of the ambiguity (I presume), final forms evolved. So for instance, sigma has the intermediate form "If and the final form "I‘. Only a few letters in Greek, Hebrew, and even Gothic script have final forms, which I guess is an interaction with the morphology. You’ll see “os” as a morphological ending in Greek, for instance.
Those were present in German, too, especially in the “Fraktur” font families. A “round S” (that looks like the s we know) indicated the end of a word, while the “long S” (that looks quite like a f, but without the horizontal line) was used inside words. This was helpful because the german language knows concatenated words (while english language just puts words after another with a space to create a combined meaning).
Example:
Wachstube (Wachs-Tube) = the wax tube
Wachftube (Wach-Stube) = the guard room
Without the obsolated “long s”, both words look the same.
Another example is the use of the Eszett ligature (it’s not a letter!) to indicate that a non-truncatable ss is present. This of course indicates the end of a word, or the end of a word part, and makes reading easier, especially when the next word part begins with another s.
Example:
Me~A"Yger~A¤t = the measuring device
Me~A"Ystrecke = the measuring line (compare: Messstrecke)
The Eszett ligature, because it IS a “long s” followed by a “round s”, exactly looks like the combination of f and s – some good printing fonts even show this.
(Note that I’ve abused the letter f in my examples to represent the “long s” – it’s not a literal f, of course.)
In some regards… camel case is something like the german concatenated noun; long words consisting of shorter words. In some middle-age dated ancestors of today’s German, the hyphen has been used to indicate the “gap” between word parts, and due to the ongoing “spelling reforms”, this idea is revived again, such as “Ein-Bett-Zimmer” instead of “Einbettzimmer” (one bed room), but it’s used completely arbitrary and without any logical decision, such as “Autobahnrastst~A¤tte”, “Autobahn-Rastst~A¤tte”, “Auto-Bahnrastst~A¤tte” or “Autobahnrast-St~A¤tte” (highway rest stop).
So it’s NEWSos, then?
Hebrew has final forms for k/ch, ts, m, n, p/f. That’s about a quarter of its alphabet.
I don’t see the morphological interaction there, perhaps others do. Both -im and -in are plural endings, so that is convenient.
There are still hieroglyphs visible in our own Latin alphabet, by the way.
If the site was, say, a newspaper or magazine, it would be OS News, just like The New York Times or The Wall Street Journal (not Wall street journal). Eash word is part of a title, none is a conjunction or article or anything, so it’s all caps. I don’t see how removing the space changes anything.
Besides, it’s your site; call it what you like. DNS is case-insensitive.
Full disclosure: I don’t particularly like camel case in programming. Underbars to separate words make more sense to me visually.
Edited 2009-12-03 18:17 UTC
That’s just karma biting you guys back in the ass for all those videos released on P2P with the hard-coded Dutch subs. Payback’s a bitch, ain’t it ?
Camel casing in brand and product names would come from an interest to make a new name (one word) that can be copyrighted, yet the camel casing help to make it readable and pronounceable as words, even when seeing it first time.
E.g. “my space” could be a part of any sentence. “Myspace” is a distinct word, but would you pronounce it mys-pace or my-space? Hence MySpace, a brand name distinct yet pronounceable.