Pergunta

Isso é algo que sempre me perguntei e não consigo encontrar nenhuma menção a isso em nenhum lugar online.Quando uma loja, digamos do Japão, escreve código, eu seria capaz de lê-lo em inglês?Ou linguagens como C, PHP, qualquer coisa, têm traduções para o japonês que escrevem?

Acho que o que estou perguntando é se todos os programadores do mundo sabem inglês o suficiente para usar exatamente as mesmas palavras reservadas que eu?

Este código seria:

If (i < size){
    switch
        case 1:
            print "hi there"
        default:
            print "no, thank you"
} else {
    print "yes, thank you"
}

exibir exatamente o mesmo que estou vendo agora em inglês, ou alguma outra pessoa que não fala inglês veria as palavras "if", "switch", "case", "default", "print" e " else" em seu idioma nativo?

EDITAR - sim, isso é sério.Eu não sabia se diferentes localizações de um idioma tinham palavras-chave diferentes.ou se existem localizações diferentes.

Foi útil?

Solução

Se eu entendi bem, a pergunta realmente é: "Todos os codificadores do mundo sabem inglês suficientes para usar exatamente as mesmas palavras reservadas que eu?"

Bem .. o inglês não é o assunto aqui, mas a linguagem de programação palavras reservadas. Quero dizer, quando comecei há cerca de 10 anos, não tinha idéia do inglês e ainda consegui programar coisas simples aprendendo a linguagem de programação, mesmo quando não sabia o que eles queriam dizer (em inglês). Na verdade, isso me ajudou a aprender inglês.

Por exemplo. Eu sei fazer uma "iteración" (iteração, é claro) que eu tive que escrever:

 for( i = 0 ; i < 100 ; i++ ) {}

Para mim o "para", o ";" e o "++" onde palavras ou símbolos estrangeiros simples. Mais tarde, aprendi que "por" significava "para" e "enquanto" significava "mientras" etc. Mas, nesse meio tempo, eu não precisava saber inglês, mas no meu caso o que eu precisava, era saber "C".

É claro que quando eu precisava aprender mais coisas, tive que aprender inglês, pois a documentação é escrita nesse idioma.

Portanto, a resposta é: não, não vejo se, enquanto, etc., no meu idioma nativo. Eu os vejo em inglês, mas eles não significaram para mim nenhuma outra coisa que eles quisessem para a linguagem de programação, por sua vez.

É como a declaração de interruptor em Bash: case .. ESAC. O que é "ESAC" ... Para mim, o final da declaração do Switch em Bash.

Eu acho que é isso que chamamos de "abstração"

Outras dicas

Estou tendo problemas para encontrar referências, mas me lembro de três histórias.

Um hacker Lisp defende funções sem sentido como "CDR" e "Car", comparando-as à programação em seu idioma não nativo:http://people.csail.mit.edu/gregs/ll1-discuss-archive-html/msg01171.html

Quando Yukihiro Matsumoto ("Matz") começou a desenvolver Ruby, ele usou palavras -chave em inglês Mesmo que ele estivesse escrevendo toda a documentação em japonês!. Não houve documentação em inglês para Ruby por alguns anos e muito poucos americanos usando o idioma. Mas agora é uma linguagem de classe mundial, e é o fato de ter nascido no Japão apenas de interesse histórico. Se o idioma estivesse usando palavras -chave em Hiragana, teria tido muito mais dificuldade em ganhar popularidade.

Eu li um ensaio uma vez- talvez alguém possa encontrá-lo, o Google não ajuda hoje- que sugeria que a tradução de palavras-chave fosse equivocada porque as palavras não são realmente inglesas- elas são jargões. Não apenas (para usar os exemplos acima) pára e derramar não tenho o significado exato de que por tem em inglês, para os não programadores, a frase "para loop" é desajeitada. Até os americanos precisam aprender um novo significado. Portanto, traduzir o significado superficial das palavras em outro idioma é mais como fazer um trocadilho entre idiomas, em vez de realmente ser útil.

No idioma Java, alguns métodos devem ser nomeados (pelo menos parcialmente) usando o idioma inglês por causa da Convenção Javabeans.

Esta convenção exige que uma propriedade x seja estabelecida através de um par de métodos getX () e setx (). Aqui em francês-Canadá, onde alguns desenvolvedores são obrigados a codificar no idioma francês, isso leva ao seguinte farói:

interface Foo {

  Color getCouleur();

  void setCouleur(Color couleur);
}

Eu realmente não pensei muito sobre programação em japonês antes, mas vamos lá, usando o exemplo de código da pergunta.

Usando apenas as instruções de idioma em japonês com as variáveis ​​em inglês:

// In Japanese, it makes more sense to put the keywords/modifiers as
// postfix expressions rather than prefix expressions.
(i < size)か {
     (l[i])は {
     1だ:
         「もしもし。」を書く;
     省略時値:
         「いいえ、いいですよ。」を書く;
     }
} ない {
     「はい、ありがとうございます。」を書く;
}

Como muitas pessoas já apontaram, na maioria das linguagens de programação, você só precisa aprender algumas palavras -chave, por isso não importa muito se elas estão em inglês (ou um idioma que não seja o seu, nesse caso). É apenas um símbolo que você associa a algum construto. Por exemplo, no VB, você tem "então", que em muitos idiomas de estilo C seria "{" e não faz uma grande diferença na legibilidade (bem, pelo menos é assim que eu vejo, sendo um inglero falante nativo).

Mas onde às vezes as coisas podem ficar peludas e onde a escolha da linguagem (natural) é importante para nomear identificadores. Se os nomes de variáveis, funções, aulas, etc., não têm um nome significativo para você por causa de uma barreira do idioma, seguir até o código mais simples pode ser bastante desafiador.

Lembro -me de alguém uma vez me deu um pequeno trecho do ActionScript retirado de algum blog. Os nomes estavam em alemão e, como não falo uma palavra dessa linguagem, as coisas poderiam ter sido chamadas de var_123, var_562 ou func_333 também (e provavelmente teria sido mais fácil para mim lembrar os nomes ou pelo menos ter um chance de soletá -los certos sem copiar e colar). Como era um trecho curto e independente, usei um tradutor on-line para dar a esses vars e funções de nomes significativos em minha língua nativa (espanhol) e depois disso, tudo estava claro. O ponto é que o código era realmente simples, mas eu só consegui fazer sentido sem muito esforço extra (desnecessário) quando superei a barreira do idioma.

Desde então, mudei para usar o inglês para nomear identificadores. Quer gostar ou não, é o "Koine" para programação, engenharia e coisas geralmente técnicas. A maioria das APIs é escrita em inglês e a maioria das documentação (e provavelmente os melhores recursos que você pode encontrar também são em inglês). Como um bom de lado, ele mantém seu código mais coerente com o código com o qual você provavelmente estará interagindo e acho que tende a ser mais compacto e sucinto do que outros idiomas como o espanhol (que de outra forma seria minha escolha natural).

Obviamente, se você não consegue entender pelo menos algum inglês, o problema permanece o mesmo, por isso não é uma solução perfeita. Mas, dada uma série de desenvolvedores de muitos países diferentes, é provável que o idioma comum de se comunicar (através do código e, é claro, outros meios) seja o inglês. Portanto, escolher o inglês talvez seja a melhor opção, mesmo que não seja a solução perfeita para esse problema.

A linguagem de programação define palavras-chave e nomes de classes padrão, e é uma prática recomendada fornecer tipos, variáveis ​​e funções definidas pelo usuário também nomes em inglês (como um falante não nativo, posso dizer ;-).

Então sim, se tudo estiver bem, você poderá ler o código.

No entanto, linguagens como Java e Perl permitem o conjunto Unicode completo para identificadores; portanto, se alguém escrever seus nomes de classe em Kanji, provavelmente você terá um problema.

Atualizar:Para Perl há um módulo de piada que permite escrever Perl em latim.Mas na verdade é só isso, uma piada.Ninguém usa coisas assim a sério.

Segunda atualização:A ideia de linguagens de programação localizadas não é tão ridícula.A linguagem macro do Excel está localizada, mas felizmente está armazenada em um idioma canônico (inglês) no arquivo, portanto a localização é apenas uma camada acima do normal.Essas coisas só fazem sentido para pequenos “programas”, para programas “reais” torna-se difícil de manter.

Na verdade lá são algum Linguagens de programação não baseadas em inglês (Wikipedia)

Sou norueguês, mas sempre usei o inglês para todo o código, exceto a saída (ignorando algum código bobo da escola). Na verdade, geralmente escrevo tudo em inglês e depois traduzir Para minha língua nativa, usando getText (ou algo assim).

Eu sou britânico e um problema em que costumamos encontrar é o confronto de ortografia americano/britânico. Isso geralmente ocorre com termos relacionados à programação, como Initialise () ou Initialize (), Analyze () ou Analyze () etc. Isso pode (tem) levar a problemas para tentar substituir métodos e às vezes é difícil de detectar.

Como a estrutura (no nosso caso C#) foi projetada pelos americanos, descobrimos que é melhor ser consistente e usar grafias americanas. Até adotamos cores.

Temos uma mistura de nacionalidades em nossas equipes de desenvolvimento e a maioria das pessoas não britânicas tende a grafias americanas naturalmente.

AppleScript já foi disponível em dialetos franceses e japoneses. Não sei por que foi retirado.

Levando isso para o próximo nível, que tal poder substituir símbolos?

Depois de ver idiomas como Brainf ** k e Espaço em branco Pensei em fazer um idioma como este: seria idêntico a C, exceto que você usa os aparelhos de fechamento para abrir, abrindo aparelhos para fechar, trocar os significados de + e -, * e /,; e :,> e <, etc.

O conceito nada mais é do que um compilador C alterado e enigmático. Mas, como pensar em palavras -chave de maneira diferente, desafia você a repensar algumas suposições básicas se você nunca pensou em tais coisas antes. Ex:

int foo)int i, char c( }
    int six = 2 / 3:
    int two = six + 4:
    if )i > 0( }
        printf)"i is negative"(:
    {
{

Estou em uma equipe francesa desenvolvendo um sistema de software em C#.Apesar do fato de as palavras-chave da linguagem de programação serem ostensivamente inglesas, imagino que você teria grande dificuldade em ler o código, pois todos os nomes de funções, variáveis, comentários de código, tabelas e colunas de banco de dados, especificações técnicas, protocolos e assim por diante, estão todos em Francês, incluindo aqueles lindos caracteres com sotaque ç, é, è, ù, etc.Não tenho certeza se o sistema funcionaria em outro lugar devido a erros de localização, como confiar na vírgula como o separador decimal padrão.

Caso contrário, WinDev é uma plataforma de programação popular na França, e sua linguagem de programação WLanguage possui palavras-chave em francês ou inglês, veja um exemplo aqui: Texto do link

Eu já vi o VBA traduzido para comandos espanhóis. É uma das coisas mais feias já vistas. Eu teria vergonha de ter algo assim no meu computador.

PD: Por acaso, acho que o espanhol é uma linguagem muito mais agradável que o inglês; Mas traduzir está errado

Bem, como outros apontaram, as palavras-chave e as chamadas do sistema provavelmente permaneceriam em inglês.

No entanto, entender as palavras -chave do idioma é apenas uma pequena parte na compreensão do código. Nomes variáveis, nomes de funções e comentários correm o risco de estar no idioma nativo do autor.

Editar: Acabei de aparecer para minha juventude, onde fui nas mesas de mapeamento do meu Basic Basic interno do TRS-80 para trocar as palavras-chave para o francês. Eu poderia mudar todas as palavras -chave, mas não consegui aumentar nada delas. Feito para programas engraçados.

Não tire sarro disso. Alguns anos atrás, a Microsoft havia anunciado G# (alemão Sharp) - C# com palavras -chave alemãs e API. Claro, era uma piada de abril, mas todo o site parecia tão real e profissional (e estava no Microsoft.com). Apavorante.

No trabalho, usamos dois sistemas de ônibus de campo, ambos desenvolvidos em países de língua alemã, que têm uma mistura assustadora de alemão e inglês para identificadores, incluindo alguns amigos falsos adoráveis. É uma bagunça.

Não, palavras -chave e identificadores em inglês estão bem. Embora alguns possam argumentar se deve ser cor ou cor :)

Em vários projetos do VBA em que trabalhei (sim, muito cedo na minha carreira), tivemos que detectar a versão do Office que foi instalada na máquina do usuário e alterar as fórmulas usadas nas folhas de Sperads de acordo.

Como eu o programa em português, a "soma" teria que ser traduzida para "soma" e assim por diante. Eu simplesmente não consigo imaginar o trabalho necessário para que isso aconteça em vários idiomas. Alguém mais sofreu com esse problema?

O único Língua Eu vi localizado se destacar com suas macros. Se você tentar resumir uma coluna usando uma versão italiana do escritório, você deve escrever SOMMA(A1:A10) e não soma. Isso é uma vergonha.

A propósito, só porque é divertido, eis como o seu código deve ser com as palavras -chave italianas:

se (i < size){
    commuta
        caso 1:
            stampa "hi there"
        normalmente:
            stampa "no, thank you"
} altrimenti {
    stampa "yes, thank you"
}

Existem alguns idiomas que traduziram palavras -chave. Fórmulas do Excel, por exemplo. Se você escrever alguns cálculos em uma planilha, isso estará no seu idioma.

Felizmente, essa não é uma prática geral, e mesmo falantes não ingleses como eu graças a Deus que existe uma linguagem padrão para palavras-chave:

  • É mais fácil compartilhar seu trabalho.
  • Isso evita que a documentação se torne um pesadelo maior que já é.
  • Palavras e frases em inglês são geralmente curtas e sintaticamente pragmáticas. Na literatura, as línguas latinas são muito mais bonitas, mas para coisas técnicas, pedras inglesas.

E onde parar? Você pode imaginar um C no grego antigo?

As palavras -chave devem permanecer em um idioma e, bem, começou com o inglês, deixe -o permanecer assim. Isso poderia ter sido pior (idioma asiático?). E assim temos que escrever métodos e comentários em inglês. Ok, mais trabalho para nós, mas pelo menos a base internacional de código permanece congruente.

Há, no entanto, um caso em que o uso de nomes e comentários de métodos de idiomas nativos pode ser uma boa prática: no país do terceiro mundo. Vou para o Senegal em alguns meses para gerenciar um projeto de Django. O Senegal tem uma enorme taxa de analfabetização e, portanto, é ótimo que eles espalhem energia para melhorar o conhecimento de programação. O francês é o idioma nativo aqui, por isso seria ineficiente forçá -los a aprender a computação e uma nova língua ao mesmo tempo.

BTW, esse seria o seu código com palavras -chave francesas:

Si (i < taille) {
    cas par cas :
        cas 1:
            afficher "salut"
        défaut:
            afficher "non merci"
} sinon {
    afficher "oui, merci"
}

Não que traduzir as palavras -chave não tenha nada a ver com a tradução das strings. Claro, temos "Oi, lá" traduzido em nosso idioma. Os codificadores europeus até tendem a usar o I18N muito mais do que o American SOT, seu serviço pode alcançar um público mais amplo.

De modo geral, a maioria dos programadores se adapta à forma inglesa.Aprendi a programar aos 7 anos e só falava hebraico (da direita para a esquerda) e não falava inglês, o que tornou a experiência bastante fascinante.

O problema que você normalmente teria é com documentação, variáveis ​​e nomes de funções.Já vi minha cota de variáveis ​​em outros idiomas usando o alfabeto inglês.

A única linguagem que conheço que foi traduzida foi o bom e velho Logo (ainda incrível até hoje).

Quando eu era criança, fomos para a França e, em um museu que fomos, lembro -me de encontrar uma exibição que mostrou como escrever programas de computador. O idioma era algum tipo de variante básica e eu me lembro claramente de usar o Pour em vez de, e assim por diante. Eu tinha 7 anos e acabara de aprender básico, e parecia completamente natural para mim que os franceses teriam seu próprio dialeto como este !!

Eu acho que pode ter sido LSE que eu vi?

Filemaker's scripting language is localized. The scripts (and data!) are stored in a terrible "sorta canonical" form.

So if you write a script in the American version, then open it up in the French version, all the keywords and built-in function names will be in French. But why won't it run?! Aha! The French version uses "," as the decimal point, and therefore to avoid ambiguity uses ";" to separate function arguments -- where the American version uses "." and "," respectively. This conversion you have to do yourself.

So you work through the incredibly bad script editing interface (you can't write scripts as text files) to fix all these things. It runs! Great! The results are all wrong! Oh no! Aha! The Jan-7-2004 date you entered in the American version is being interpreted as July-1-2004 -- apparently dates are not only displayed but stored in locale-dependent order. Am I kidding you? No.

[Note: Filemaker 8 and 9 may be sane -- I only ever worked with 3 - 7.]

Your question is an interesting one with regard to Perl because it's syntax is designed to follow (English) natural language. I wonder if that makes it more difficult for non-English speakers...

Of course, Perl and Perlers refuse to play by conventional rules. Mad scientist Damian Conway wrote the Lingua::Romana::Perligata module which uses the black magic of source filters to allow you to write Perl in latin!

Here in Australia we still need to spell colour like color. However, I do find it annoying when other (Australian) developers, working on an Australian project, decide that internal variable names need to be spelt the american way.

Seria inútil, IMHO, para i18n uma linguagem sintaxe. Isso apenas mataria qualquer tipo de portabilidade.

A única exceção são os idiomas educacionais, como o logotipo. Eles foram projetados para facilitar o aprendizado, portanto a portabilidade não é um problema.

Eu li muito código, mas o problema sempre está em nomes e comentários de variáveis/métodos, se eles estão comentando seu código em seu próprio idioma, usando um idioma personagens especiais como japonês ou cirílico, estamos com problemas! Mas as palavras -chave que acho que elas permanecerão em inglês como são.

em italiano

se (i < dimensione){
    scegli
        caso 1:
            stampa "ciao"
        mancante:
            stampa "no, grazie"
} altrimenti {
    stampa "sì, grazie"
}

Para confirmar as preocupações de algum pôster anterior, vi um código fortran com uma macro incluir para traduzir todas as palavras -chave do inglês para o francês. Permita -me não continuar nisso.

Eu também tive que trabalhar com um código contendo simultaneamente identificadores em italiano, alemão, inglês e francês, não apenas porque foi desenvolvido em muitos lugares diferentes, mas também porque o principal desenvolvedor achou divertido e o ajudou a não duplicar nomes de identificadores ( Claro, com uma rotina de 2000 linhas ....)

Eu acho que o WordBasic foi localizado. O Wordbasic foi usado para escrever macro's for in word antes que o VBA fosse usado.

Se bem me lembro, apenas o WordBasic escrito na versão em inglês seria executado em toda a versão localizada. Se você escrevesse uma versão holandesa, só poderá executá -la em uma palavra holandesa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top