CamelCaseBicapitalization or camel case, frequently applied to the term itself and written CamelCase, is the capitalization of more than one word within a compound word or multi-word symbolic name. This is also known as BumpyCase, StudleyCaps, and WikiWord.
Originating with a naming convention in the C programming language, it spread via hacker culture into mainstream use and became fashionable for corporate trade names during the popularization of the personal computer in the 1980s and 1990s. It is file name convention on Amiga computers. In the original version of the WikiWiki software, CamelCase is used for automatically making links.
- AlabamA (CamelCased words need at least two capital letters)
- aNaRcHy cAsE
Another solution is to use lower-case letters for most of the symbol, with upper-case at the starts of separate words. For instance, if one wanted to name a symbol "the colour of the bar", this would typically be camel cased as "TheColourOfTheBar". In lower camel case it would be "theColourOfTheBar". Coding standards, which many software developers adhere to, outline preferred uses of CamelCase for method names, fields and properties.
CamelCase synonyms include:
- CapWords (used in the Python style guide: http://www.python.org/peps/pep-0008.html)
CamelCase and WikiCamelCase is also the original wiki convention for creating hyperlinks, with the additional requirement that the capitals are followed by a lower-case letter, hence AlabamA and ABc will not be links, see http://c2.com/cgi/wiki?WikiCase.
CamelCasedTerms are not useful for search engine spidering and indexing, as search engines cannot rank links based on individual words in the url describing that link. Having a word in the url generally rates a page as related to that word. Separating words out individually (by placing hyphens between words in local paths or in dns names; the underscore is not a valid character for dns names) addresses this. Removing case sensitivity from links also allows use of tools such as Apache's mod_speling, allowing easier guessing of urls by humans.
CamelCase and Wikipedia
Wikipedia started requiring CamelCase for links, but soon enabled and recommended free links, by putting [[square brackets]] around phrases to be linked, and a year later the automatic linking of CamelCase was disabled:
On January 27, 2001, Clifford Adams, author of the original UseMod software used for Wikipedia, posted the following to the Wikipedia mailing list:
- I've done a lot of thinking about WikiLinking recently, and I'm not sure that the WikiName (capital letters) convention is a good fit for the encyclopedia. The AccidentalLinking is a nice feature, but it has a price in harder-to-read links and confusing conventions.
- For instance, when I recently wanted to link to "democracy", I first did a search to see if someone else had linked the name (I thought someone might have already used "DemoCracy"). I found that nobody else had linked that name, so I made the link "DemocracY" (to follow the new convention of last-letter-capitalized). In short, it took me far more time to make that link than it would have to just type [[democracy]]. Someone unfamiliar with the local wiki conventions might guess otherwise on another page and link to a separate "DemoCracy" or even "DeMocracy". Ick.
- To make a longish story short, I added code (about 150 new lines of Perl) to my development copy to allow (site-optional) "Free" linking within [[double brackets]]. You can use spaces, numbers, commas, dashes, and the period character in these kinds of links. Valid link names include [[George W. Bush]], [[China-Soviet Relations]], [[Physics]], [[music]], and [[Year 2000 bug]]. User names can also use these new links. Internally and within URLs the spaces are replaced with _ (underline) characters, which are translated back to spaces for display purposes.