Heurística 1: Quando se deparar com mais de uma maneira possível de fazer algo enquanto estiver projetando uma linguagem, escolha a mais comum e mais intuitiva, senão você terá Perl +.
Agora, como é mais natural (pelo menos para um falante de inglês)?
Vamos ver como escrevemos / dizemos coisas em inglês:
Steven agora tem 10 anos (ao contrário de Steven, com 10 anos).
Eu peso mais de 190 libras (ao contrário de mais de 190 libras eu peso).
no código:
steven = 10
i > 190
O seguinte também parece mais natural:
"Se Mary tem 18 anos, ela pode ter um doce".
"Se eu tiver menos de 21 anos, pedirei ao meu irmão por tequila".
if (mary == 18) { ... }
if (i < 21) { ... }
do que:
"Se 18 anos, Mary é ..."
"Se o 21 for maior que a minha idade ..."
Agora o código:
if (18 == mary) { ... }
if (21 > i) { ... }
Observe que isso não é natural nem para programadores nem para falantes de inglês. As frases soam como yoda-speak, e o código é apelidado de yoda-conditions. Isso pode ser útil em C ++, mas tenho certeza de que a maioria das pessoas concordaria: se um compilador pudesse fazer o trabalho pesado e aliviar a necessidade de condições de yoda, a vida seria um pouco mais fácil.
Claro, alguém poderia se acostumar com qualquer coisa. Para exemplos, o número 81 é escrito como:
oitenta e um (Inglês)
Oitenta e um (espanhol)
Um e oitenta (alemão).
Finalmente, existem 4! = 24 maneiras válidas de dizer "maçã verde encontra-se na mesa" em russo - a ordem (quase) não importa, exceto que 'on' deve vir junto com 'table'. Então, se você é um falante nativo de russo (por exemplo), então você pode não se importar se alguém escreve a = 10
ou 10 = a
porque ambos parecem igualmente naturais.
Embora lingüística seja um assunto fascinante, eu nunca a estudei formalmente e não conheço muitas línguas. Espero ter fornecido contra-exemplos suficientes.