thumb|right|250px|A origem do Camel Case vem da corcova do Camelo. Na imagem o exemplo camelCase está escrita na forma lowerCamelCaseCamelCase é a denominação em inglês para a prática de escrever as palavras compostas ou frases, onde cada palavra é iniciada com maiúsculas e unidas sem espaços. É um padrão largamente utilizado em diversas linguagens de programação, como Java, C#, Ruby, PHP e Python, principalmente nas definições de classes e objetos. Pela sua associação com tecnologia, o marketing se apropriou dessa maneira de escrever, injetando certo ar de "tecnologia" nos produtos assim nomeados: iPod, eBay, GameCube, OpenOffice.org, StarCraft, dentre outros.

A provável origem do termo é a semelhança do contorno de expressões CamelCase, onde as letras em maiúsculo "saltam" no meio das minúsculas como corcovas de um camelo.

A primeira letra de uma palavra composta por CamelCase pode ou não ser capitalizada, não há consenso sobre a maneira certa de sua utilização. Existem duas formas de classificá-la: a primeira é conhecida como UpperCamelCase (de letra inicial maiúscula, também conhecida como PascalCase) e a segunda lowerCamelCase (de letra inicial minúscula). Algumas referências quanto ao uso do CamelCase para codificação de programas de computadores ditam que o CamelCase segue a regra que a primeira letra da primeira palavra deve ser escrita em minúscula enquanto que a primeira letra das palavras subsequentes concatenadas devem ser escritas em maiúsculas. Além disso, algumas organizações como, por exemplo, a Microsoft, usam o termo CamelCase apenas para as que começam com a inicial minúscula.

O CamelCase se distingue do snake case (estilizado snake_case) em que as palavras são separadas por underline, e do kebab case (estilizado kebab-case) em que as palavras são separas por hífen (semelhante ao espeto que atravessa um espetinho estilo kebab bem ao meio).

Variações O nome original da prática, usado em estúdios de mídia, gramáticas e no Dicionário Oxford é, em inglês, "medial capitals". Outros nomes como "InterCaps" ou "CamelCase" são relativamente mais recentes e mais comuns em comunidades relacionadas e computadores. Outros sinônimos incluem: BumpyCaps ou BumpyCase NerdCaps camelBack, camel-back ou CamelCaps CapitalizedWords ou CapWords para letras iniciadas em maiúsculas em Python       compoundNames Embedded Caps ou Embedded Capitals InterCapsIverson, Cheryl, et al. (eds) (2007). AMA Manual of Style (10th ed.). Oxford, Oxfordshire: Oxford University Press. ISBN 978-0-19-517633-9. ou intercapping (abreviação de Internal Capitalization) mixedCase para letras iniciadas em minúsculas Python Pascal case (depois da criação da linguagem Pascal)http://wiki.c2.com/?PascalCase Smalltalk case WikiWord ou WikiCase  HumpBack ou hump-back

Computação e programação

Programação e codificação Por fins de praticidade,Dave Binkley and Marcia Davis and Dawn Lawrie and Christopher Morrell (2009). "To CamelCase or Under_score". IEEE 17th International Conference on Program Comprehension, 2009. ICPC '09. IEEE: 158–167. CiteSeerX 10.1.1.158.9499. In terms of camel-cased identifiers, this has a greater impact on identifiers that include short words and especially acronyms. For example, consider the acronym ID found in the identifier kIOuterIIDPath. Because of the run of uppercase letters, the task of reading kIOuterIIDPath, in particular the identification of the word ID, is more difficult. utiliza-se as regras CamelCase/PascalCase para escrever palavras curtas e anônimos sobre as seguintes normas: Está de acordo com a norma lowerCamelCase palavras compostas iniciadas por letras minúsculas. Usa-se tal. na programação, ao definir variáveis e métodos. Exemplos: nomeCompleto, valorDesconto, tipoCliente. Está de acordo com a norma UpperCamelCase (que também pode ser chamada de PascalCase) aquelas iniciadas por letras maiúsculas. Usa-se tal, na programação, na definição de classes em orientação a objetos. Exemplos: CalculaDesconto(), ValidaEmail(), ImprimeCadastro(). Além de ser uma boa prática, seu uso é frequentemente obrigatório no mercado. Abaixo, um trecho de código exemplifica o uso dos padrões PascalCase e CamelCase.int totalContador = 0; /*Uso da lowerCamelCase ao declarar a variável int*/ void ExibirMensagem(string nome) /*Uso da UpperCamelCase ao declarar a função ExibirMensagem */ { string mensagemCompleta = string.format("Olá {0}, você é o visitante de número {1}", nome, totalContador); totalContador++;

}Na programação, também é comum o uso dessa forma de capitalização para manter a compatibilidade com configurações preexistentes em certas linguagens. Por não serem gerenciáveis, o uso correto da escrita por lowerCamelCase e UpperCamelCase, nesse caso, é obrigatória. Muitas linguagens utilizam esse tipo de formatação devido a diminuição no tempo de reconhecimento de identificadoresBonita Sharif and Jonathan I. Maletic (2010). "An Eye Tracking Study on camelCase and under_score Identifier Styles". IEEE 18th International Conference on Program Comprehension, 20010. ICPC '10. IEEE: 196–205. (download PDF). An empirical study to determine if identifier-naming conventions (i.e., camelCase and under_score) affect code comprehension is presented. An eye tracker is used to capture quantitative data from human subjects during an experiment. The intent of this study is to replicate a previous study published at ICPC 2009 (Binkley et al.) that used a timed response test method to acquire data. The use of eye-tracking equipment gives additional insight and overcomes some limitations of traditional data gathering techniques. Similarities and differences between the two studies are discussed. One main difference is that subjects were trained mainly in the underscore style and were all programmers. While results indicate no difference in accuracy between the two styles, subjects recognize identifiers in the underscore style more quickly.. A tabela abaixo resume o uso da capitalização e dá exemplos de diferentes tipos de identificadores. IdentificadorLinguagemExemplo de usoClassPascalAppDomainEnum typePascalErrorLevelInterfacePascalIDisposableMethodPascalToStringParameterCameltypeNameProtected instance fieldCamelredValue

Ver também Case-sensitive

Ligações externas - CamelCase, por NetVillage - CamelCase, por Cunningham & Cunningham, Inc.

Categoria:Escrita Categoria:Programação Categoria:Tipografia Categoria:Palavras, frases e expressões em inglês