Como as linguagens de programação se beneficiam por serem baseadas em inglês? [fechadas]


14

Eu acho que o mundo agora programa em linguagens de programação baseadas em inglês, não apenas por causa de circunstâncias históricas / econômicas, mas porque a morfologia do inglês em particular tem algumas propriedades que melhor se adaptam ao pensamento algorítmico. De qualquer forma, seria interessante ouvir suas opiniões sobre isso, especialmente se você é multilingue.

Eu já vi algumas menções a linguagens baseadas em alemão (veja Plankalkul, por exemplo, de fato, a primeira linguagem de programação de que sabemos muito pouco, graças à Segunda Guerra Mundial), também um sabor de algol baseado em russo que existia nos anos 80 em menos no papel, não tenho certeza se ele já existiu em binário ou não. Ambos pareciam um pouco lentos porque havia mais palavras encurtadas e abreviações estranhas do que palavras completas, como nos idiomas baseados em EN. Portanto, se você souber de algum outro PL nacional, baseado em idiomas, mesmo completamente arcaico e irrelevante hoje, puramente teórico ou o que seja, seria interessante dar uma olhada neles.

E voltando à questão principal: então o que, se houver, torna a linguagem de Shakespeare tão boa para a programação?

(Na verdade, há uma lista de linguagens de programação que não são do inglês na Wikipedia (é claro, onde mais?), Mas seria interessante ouvir opiniões de falantes nativos dessas línguas sobre como realmente uma determinada linguagem de programação "nacional" se sente gostar.)


3
@ Michael: Ele disse "eu acho". Ele está expressando sua própria opinião. Você pode perguntar como ele chegou a essa opinião, mas não acho que ele precise citar uma fonte. Podemos acreditar que, se ele diz que é a opinião dele, é a opinião dele. Além disso, ele não disse que não havia circunstâncias históricas ou econômicas, apenas que ele acreditava que esses não eram os únicos fatores e que ele está mais interessado em discutir os outros.
HedgeMage

1
@ Michael: você diz "Os computadores foram inventados e estabelecidos principalmente em países de língua inglesa", agora são circunstâncias históricas / econômicas. Por exemplo, podemos trazer à tona a revolução industrial no século 19 no Reino Unido (e todo o império, na verdade), ou a "fuga de cérebros" durante / após a Segunda Guerra Mundial para os EUA, ou que os EUA provavelmente tiveram menos perdas durante a Segunda Guerra Mundial entre os países industriais, etc.
mojubá

3
Qualquer que seja a linguagem, ela deve ser gramaticalmente neutra em termos de gênero.
JeffO 4/11

1
@ Jeff O: absolutamente, e não apenas o gênero. Basicamente, todos os seus verbos devem ser neutros, porque, caso contrário, você acaba pensando de que forma exata (tempo, sexo, etc.) o "faça" no seu "enquanto ... faz ..." deveria ser. A morfologia dos verbos em inglês é tão relaxada em comparação com muitos outros idiomas europeus que acho que é, entre outras coisas, o que torna o inglês tão bom para a programação.
Mjuba

2
Também podemos perguntar por que o italiano fornece as palavras-chave para a música enquanto estamos nisso. Pode haver algumas idéias lá.
David Thornley

Respostas:


17

Isenção de responsabilidade: minha língua nativa é o alemão.

Não creio que exista qualquer razão para o inglês como idioma usar palavras-chave ser melhor do que qualquer outro idioma natural. Eu acho que é a única linguagem importante em TI, mas não por causa das propriedades linguísticas, mas porque a maioria das pessoas de tecnologia fala isso até certo ponto, é a língua nativa de muitas pessoas importantes no campo, termos mais relacionados à tecnologia já são ingleses etc.

Mas como falamos sobre linguagens de programação, não sobre documentação / API / nomes / etc, tenho que objetar: as linguagens de programação não se baseiam no inglês - ou em qualquer outro idioma natural, nesse caso. Linguagens de programação são linguagens formais. Eles usam, em graus variados, algumas palavras do (geralmente) inglês. Alguns até tentam imitar sua gramática - mas não conseguem ler como o inglês de qualquer maneira. Para acrescentar insulto à lesão, eles associam apenas um único (em casos raros, um punhado de) significados a cada palavra emprestada. Freqüentemente, esse significado é muito jargão-y, especializado ou baseado em uma analogia questionável. Portanto, conhecer os inúmeros significados da linguagem natural de uma palavra emprestada pela linguagem de programação não ajuda a entender o conceito de programação por trás da palavra-chave. Exemplos em cima da minha cabeça: array,type, goto, class, void. (Curiosidade que veio à mente como eu re-ler a pergunta: Tudo isso, com exceção goto, tem traduções em alemão, que são no máximo um caráter mais: Feld, Typ, Klasse, Leere. Todos eles som estranho para mim, mas isso é provavelmente uma questão de hábito .)


2
Classe significa o que significa em inglês. Uma "classe" define um Tipo, que é uma "classe de objetos". Você pode dizer que todos os valores Int ou todos os registros Person são de uma classe porque compartilham certos recursos. No entanto, a maioria dos programadores do tipo C não pensa em termos categóricos, então "classe" significa apenas "blueprint de objeto" para eles.
CodexArcanum 04/11/2010

7
O seu inglês é excelente
Allen

Como colega alemão, devo dizer que concordo totalmente com você. Eu acho que a principal razão é, como você mencionou, que o inglês é o idioma no mundo da TI. Pessoas de todo o mundo falam, discutem e programam em inglês todos os dias - e quase todos os artigos relevantes são publicados pela primeira vez em inglês. O mesmo se aplica aos livros. Além disso, a maioria dos livros traduzidos para o alemão parece meio errada. Algumas frases e palavras-chave são traduzidas. Isso mata totalmente o fluxo .
FCM

Concordo plenamente que tentar enganar a gramática inglesa em linguagens de programação é um erro completo. Não concordo com "esse significado é muito jargão-y, especializado". Como um falante nativo de inglês, descrever conceitos como análogos a termos pré-existentes é típico da comunicação cotidiana. O inglês como idioma é apenas vagamente interpretado e muito específico ao contexto em geral. Quanto aos equivalentes alemães, não é uma grande surpresa. O inglês empresta grande parte de sua estrutura do alemão e muito do seu vocabulário de outras línguas. É como a 'carne misteriosa' das línguas naturais.
Evan Plaice

@EvanPlaice Sim, é discutível o quão antinatural realmente é. Há claramente algum mérito neles, caso contrário eles teriam sido abolidos há muito tempo. Não posso julgar se eles geralmente ajudam os falantes nativos de inglês, apenas sei que o equivalente (escolher a tradução mais próxima e depois construir analogias equivalentes com essa tradução) tende a criar associações erradas no cérebro dos alunos. Re traduções: Sim, não é surpresa que haja palavras semelhantes; Eu estava mirando no "havia mais palavras encurtadas e abreviações estranhas do que palavras completas" da pergunta.

8

O inglês é a língua lingua franca da programação.

Do mesmo artigo:

Não é nada além de grandes hackers perceberem coletivamente que aderir ao inglês para discussões técnicas facilita a realização de tarefas.


9
lingua franca - uma frase em latim que (hoje) significa francês. E, no entanto, usamos isso para significar inglês.

6
@ Graham Lee: Por mais irônica que seja, a frase passou a significar (como um termo emprestado em inglês) "uma linguagem comum usada por pessoas de diversas origens para se comunicarem".
greyfade

Por que o italiano é a língua da notação musical ou o latim a música da ciência? Para a tecnologia é inglês. Com a aceitação internacional como a 'língua franca', é inevitável que o inglês tenha o vocabulário específico da tecnologia mais abrangente. Um vocabulário rico é essencial para a comunicação eficaz (e universal), para que as pessoas estejam dispostas a adotar o idioma.
Evan Plaice

5

O idioma inglês é favorável porque:

  1. Adapta-se melhor às restrições dos periféricos atuais.

Facilidade de tipo. Você pode usar um teclado padrão. Sei que isso soa como "esterco de lhama", mas você já tentou digitar em chinês? Existem milhares de caracteres e, como o chinês não possui uma técnica adequada de criação de "caracteres" para se ajustar ao conceito de teclado, não seria fácil aprender para um público global.

  1. Pode ser transformado em não-palavras que são igualmente reconhecíveis. O inglês favorece abreviações devido à falta de símbolos de acentuação.

Palavras abreviadas em inglês são símbolos reconhecíveis. Não é necessário aprender todo o idioma inglês para codificar; assim, pessoas externas ao idioma podem aprender rapidamente.

  1. E considere que linguagens de programação comuns apresentam mais símbolos matemáticos e menos palavras.

A Assembléia usou palavras pequenas que não tinham estrutura de sentença. Depois vieram idiomas, como COBOL e FORTRAN, que tentaram acomodar a estrutura das frases em inglês o máximo possível. As linguagens mais recentes implementaram mais confiança nos símbolos algébricos universais, porque tinham melhor previsibilidade. (Em COBOL, adicione X a Y, subtraia Y de X, Cálculo Y = X + A; Cálculo torna desnecessárias as instruções anteriores e reduz a complexidade da análise de idioma). Não demoraria muito mais para eu considerar linguagens como C ++ mais simbólicas do que baseadas em linguagem. Há um pouco de retorno à programação baseada em palavras com C #, mas isso deve ter ajudado os padrões de programação populares.

Conclusão:

Por fim, os periféricos se limitam a um idioma baseado em caracteres (como o inglês). Além disso, os idiomas ocidentais têm melhor suporte para conceitos matemáticos (como o conceito de 0, entre outros; a China empresta numerais em vez de sua própria representação de valores numéricos, para melhor transmitir números, porque é mais curto para escrever (em média)). Além dos valores numéricos, eu consideraria as linguagens baseadas em símbolos (chinês) mais adequadas à morfologia da linguagem de programação do que o inglês, pois a maioria das linguagens modernas já usa símbolos e seria universalmente equivalente a aprender. No entanto, teríamos de impor uma estrutura semelhante ao C ++, ter blocos de símbolos não seria fácil de ler para a maioria das pessoas no mundo.


4
Não é necessário aprender todo o idioma inglês para codificar, portanto, as pessoas externas ao idioma podem aprender rápido - não parece um bom argumento: na ciência médica, existem muitas palavras em latim, e você não precisa conhecer latim para estudar ciências médicas.
Mojuba

2
O que você disse sobre chinês é falso. É possível digitar chinês com um teclado padrão.
grokus

2
@mojuba Não é o que eu quis dizer. O que eu quis dizer é que o inglês é bom em abreviar palavras, MOV, cpystr, etc. Você não pode cortar metade de um símbolo chinês ou metade de uma palavra japonesa (que geralmente é uma combinação de palavras) e significa a mesma coisa. Considerando que você tem muito espaço para encurtar as palavras em inglês e transmitir o mesmo significado. Não quero dizer que outras profissões não incorporem palavras de outros idiomas; quero dizer que as palavras que a sintaxe do programa incorpora podem ser facilmente simplificadas em tokens.
perfil completo

@grokus A menos que você queira dizer PinYin, você não pode digitar diretamente chinês. Você deve pressionar as teclas ou usar o PinYin e selecionar o símbolo correspondente mais próximo. De qualquer forma, é necessário incorporar um processo de seleção porque o teclado padrão não suporta os quatro tons chineses. A menos que você modifique o teclado padrão, violando os requisitos.
amigos estão

-1, 0 não era um conceito ocidental (primeiro no Oriente Médio), o Assembly não usa palavras (geralmente com base em nomes off-line / registradores e comandos de 3-5 caracteres para que 0x86 seja LDA), estrutura em inglês mata a programação porque o inglês tem um dos piores conjuntos de estruturas nos idiomas "ocidentais". As não-palavras que são "reconhecíveis" são uma ideia específica da localidade e do assunto e podem ser tão ruins quanto um conjunto de palavras "Não-Inglês" para entender. Todas as línguas são simbólicos, é parte de como você torná-los uma linguagem formal: int representa Inteiros, Double representa bóias de precisão dupla ...
Jeff Langemeier

5

A única razão pela qual o inglês é amplamente usado na computação é que agora é um idioma amplamente difundido.

Se os computadores tivessem sido inventados há 2000 anos, eles teriam usado o grego. Se eles foram inventados há 200 anos, teriam usado o francês. Se eles tivessem sido inventados em 200 anos, provavelmente usariam chinês ...


3

Aqui estão alguns benefícios que uma linguagem de programação hipotética teria se ela assumisse o alfabeto inglês - latino.

  1. É um pequeno conjunto de caracteres (ao contrário do Kanji)
  2. Geralmente não usa marcas diacríticas (diferente do francês, espanhol, alemão etc.)
  3. Todas as letras maiúsculas têm letras minúsculas (ao contrário do alemão Eszett)
  4. Seu agrupamento é direto

Todas essas coisas são problemas que ainda não foram resolvidos adequadamente em todos os dispositivos. Por exemplo, títulos de músicas com marcas diacríticas não aparecem corretamente em vários players de música


5
Eu me pergunto se os computadores tivessem sido inventados na China, estaríamos debatendo como alguém poderia escrever código que não estava em chinês, porque todos os caracteres permitem nomes mais curtos.
CodexArcanum

3
Discordo. O alfabeto grego, por exemplo, é tão pequeno; marcas diacríticas poderiam ter sido eliminadas para programação específica, o mesmo para o alemão ß; Atualmente, o agrupamento é normalizado, ou seja, trazido para uma forma "direta" para computação / bancos de dados etc. em praticamente todos os idiomas existentes. Assim como os artigos "the" e "a" em inglês não são basicamente usados ​​ou evitados na computação, qualquer outro idioma poderia ter passado por alguma otimização.
Mjuba

3
Não vejo que maiúsculas e minúsculas tenham muito a ver com a linguagem de programação.
David Thornley

1
@ David Thornley ah, mas para um compilador o programa são os dados.
Conrad Frix #

1
@ Ingo Eu não tenho certeza do que você quer dizer. Por exemplo, vamos supor que eu usei uma variável chamada étudiant. Com unicode, a primeira letra pode ser expressa como U+00E9 LATIN SMALL LETTER E WITH ACUTEou pode ser eseguida por U+0301 COMBINING ACUTE ACCENT. Se você fosse o escritor do compilador para um desses idiomas, gostaria de oferecer suporte a nomes de variáveis ​​como este? Como exatamente você trataria duas variáveis ​​no mesmo escopo nomeadas \u00e9tudiante e\u0301tudiant?
Conrad Frix

2

Não tenho tanta certeza de que as próprias linguagens de programação se beneficiem do inglês. Na explicação:

  • O nome de métodos, variáveis, objetos etc. não importa para o computador
  • O conteúdo de um comentário não importa para o computador
  • A lógica da programação é expressável na maioria das línguas faladas (e presumo TODAS).

Portanto, se o inglês for benéfico para as linguagens de programação, isso ajudaria mais pessoas a usar a linguagem de programação. A esse respeito, aqui estão alguns pensamentos:

  • Muitas pessoas em países estrangeiros aprendem inglês se desejam ou não programar
  • As pessoas que projetam uma linguagem de computador e desejam que muitas pessoas a usem geralmente escolhem a linguagem falada mais conhecida para descrevê-la.

Resumindo esses pensamentos, não acho que o inglês realmente ajude as linguagens de programação de maneira significativa que a maioria das outras línguas poderia oferecer - além do que muitas pessoas falam.


Interessante que você mencione comentários; Eu trabalhei para uma empresa japonesa, onde todos os arquivos C foram armazenados em Unicode porque os comentários eram em japonês.
Mark Avenius

1

Na minha opinião, o inglês simplesmente possui um vocabulário técnico e matemático mais rico do que muitos outros idiomas (mas não todos). Os idiomas que não possuem esse vocabulário usam palavras de empréstimo em inglês para fazer o trabalho. Isso por si só é uma razão convincente para orientar as linguagens de programação para o inglês.

No que diz respeito às línguas que possuem um vocabulário suficientemente rico para descrever tudo o que precisamos descrever sem recorrer constantemente às palavras de empréstimo em inglês, a tradição do inglês como língua franca para as ciências é por si só convincente, mas nosso alfabeto nos dá outra pequena perna para cima:

  • O inglês pode ser representado com um conjunto de caracteres menor do que, por exemplo, chinês, japonês, cirílico ou mesmo idiomas românicos que usam caracteres latinos acentuados.
  • O alfabeto inglês, em grande parte devido à sua completa falta de caracteres acentuados, é muito claro visualmente. Temos bugs suficientes devido a colchetes incompatíveis ou ponto e vírgula ausente, seria tolice adicionar problemas de discernimento entre 'ē', 'ĕ' e 'ě'.

3
O vocabulário técnico em inglês é rico, porque a computação foi desenvolvida principalmente em países de língua inglesa, e não o contrário. Tipo de problema com ovos de galinha realmente;) Quanto aos caracteres acentuados, ponto interessante de fato.
Mjuba

@mojuba eu discordo. O vocabulário técnico em inglês é rico, porque as tecnologias anteriores aos computadores foram desenvolvidas principalmente em inglês. Essas tecnologias foram desenvolvidas em inglês por razões principalmente econômicas, mas quando os computadores surgiram, o idioma inglês já estava preparado e pronto.
HedgeMage

2
Pulchra é a língua latina! ("A língua latina é linda!") Na verdade, falo latim clássico e me diverti muito usando-o no meu código. Infelizmente, ele fica constantemente à beira de ser uma linguagem morta, portanto, não é prático basear uma linguagem de programação. (Porém, agora estou tentado a projetar uma apenas por diversão.) Muitas tecnologias boas vieram de falantes que não são o inglês, mas não o suficiente em qualquer idioma para combinar com o rico vocabulário oferecido pelo inglês em qualquer idioma que também atenda o outro fator que mencionei: um alfabeto pequeno e claro.
HedgeMage

1
@mojuba + HedgeMage, realmente não importa onde as tecnologias são desenvolvidas, o inglês é uma mistura tão grande de palavras e vocabulário emprestados, que qualquer terminologia que não foi desenvolvida em inglês é rapidamente absorvida no idioma. A principal vantagem do inglês é que ele oferece muitos tempos complicados que podem descrever bem conceitos abstratos, o que é muito útil.
Whatsisname

5
O idioma inglês é rico por causa de seu hábito de assaltar outros idiomas em becos escuros e roubar todas as suas palavras úteis. Não é tanto uma fonte de palavras de empréstimo, mas um bazar de palavras.
David Thornley

1

Para uma leitura divertida sobre o contexto da linguagem e como acabamos grunhindo as coisas:

Material de Pensamento de Steven Pinker

Lembre-se, estamos falando sobre a construção da linguagem, não sobre como comunicamos as informações (não uma na mesma). Trabalhei com código em que o idioma principal das variáveis ​​era todo em alemão (o código não era menos fácil de entender ) O inglês não tem inerentemente nada que melhor se adapte à programação; se estivermos pensando diretamente em como a nossa linguagem está estruturada, provavelmente será pior , e não melhor, e isso pode ser honestamente por vários motivos:

  1. Falta de estrutura (podemos colocar assunto / predicado / substantivos / adjetivos onde quisermos),
  2. Mutabilidade de nossas palavras (sentimos que podemos abreviar QUALQUER COISA)
  3. GRANDE UM: Alguém que sabe inglês fluentemente não entenderá melhor uma seção do código do que alguém que não entende o idioma inglês.

Perguntar por que as linguagens de programação usam "inglês" é como perguntar por que a tabela periódica ainda tem a letra 'W' identificando o tungstênio, a maioria das pessoas não pode dizer o porquê, a menos que conheça a história. E se você quiser o histórico das linguagens de programação, devemos voltar para cartões perfurados, instruções de byte e montagem.

Assembly não possui grandes construções em inglês, mas é o mais próximo possível do código da máquina sem se odiar. Além disso, todos os elementos estruturais de linguagens de nível superior podem e são regularmente implementados por aqueles que são loucos o suficiente para se divertir. LD, MV, ST, BRA e o restante do conjunto de instruções não se parecem em nada com o inglês, mas posso lê-lo perfeitamente e obter o significado completo.

Atribuímos o mesmo significado do LD ou MV na montagem a construções de nível superior, não preciso saber o que significa uma variável e, em muitos casos, não o fará se estiver em inglês de qualquer maneira por causa do nº 2 da minha lista. O conjunto de identificadores como int, str, enum e assim é uma maneira de dizer com o que você está trabalhando, não mais. Se, em vez de int, o identificador fosse gaivota , todos saberíamos o que significa gaivota em um contexto de codificação, não porque seja em inglês, mas é isso que o identificador cobre.

TL; DR: linguagens de programação, como qualquer linguagem, precisam de treinamento para entender. A razão pela qual seus comandos estão em inglês, em vez de espanhol, alemão ou russo, é mais do que provável que seja esotérica e histórica do que por algum construto necessário do idioma inglês, sendo mais ou menos adequado para os identificadores no construto Formal Language.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.