# CamelCase

CamelCase é 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 | InterCaps ou intercapping (abreviação de Internal Capitalization) mixedCase para letras iniciadas em minúsculas Python Pascal case (depois da criação da linguagem Pascal) Smalltalk case WikiWord ou WikiCase  HumpBack ou hump-back |

## Computação e programação
### Programação e codificação

Por fins de praticidade, 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.
* 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.
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.
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 identificadores. A tabela abaixo resume o uso da capitalização e dá exemplos de diferentes tipos de identificadores.
| Identificador | Linguagem | Exemplo de uso |
| Class | Pascal | AppDomain |
| Enum type | Pascal | ErrorLevel |
| Interface | Pascal | IDisposable |
| Method | Pascal | ToString |
| Parameter | Camel | typeName |
| Protected instance field | Camel | redValue |