O código-fonte em livros didáticos e similares deve ser traduzido?

16

Há algumas semanas, minha turma foi designada para traduzir para o português o livro Real World Haskell. Ao fazer a tradução do texto e dos comentários, comecei a me perguntar se eu deveria traduzir o código também, como sugeriu o instrutor. Por exemplo:

data BookInfo = Book Int String [String]
              Show derivado

se tornaria

data InfoLivro = Livro Int String [String]
               Show derivado

Como não li nenhum livro relacionado a software em português, não sei se essa é uma prática comum, nem se deve ser feita dessa maneira. No final, o código é uma mistura de idiomas (talvez o exemplo em Haskell não seja um bom exemplo, pois você pode criar sinônimos rapidamente type CadeiaDeCaracteres = String, mas você entende). Portanto, não importa o quanto você tente, você terá que confiar na experiência anterior do leitor com algum tipo de palavras básicas em inglês.

Sabendo disso, realmente não vejo sentido em traduzir código, uma vez que aprendemos nos primeiros dias de nossa vida de codificação que ele deve ser escrito no idioma universal. No entanto, se o texto circundante (comentários, por exemplo, e o próprio texto em um livro) precisar ser traduzido, o que é possível e viável nesse assunto? Você pode me fornecer algumas orientações sobre o que fazer?

rapfaria
fonte
9
O que o instrutor espera que você aprenda com isso? Sim, você pode aprender um pouco sobre Haskell, mas parece que é principalmente um teste de suas habilidades de tradução em inglês. Ele só quer uma tradução para as aulas futuras e acha que desperdiçar o tempo de todos os alunos dessa classe é a maneira de realizá-la? Minha aposta: tudo o que você aprenderá é por que a tradução é um campo especializado, melhor feito por especialistas.
Dori
Pergunta relacionada: programmers.stackexchange.com/questions/1483/…
David_001
@Ori Eu concordo completamente. Infelizmente, é assim que minha universidade funciona, pelo menos na área de CS.
rapfaria 21/10/10
você deve dizer a ele algo assim: "" "Professor, você está realmente louco. Eu prefiro dormir com sua mãe do que fazer isso. Aprenda inglês ou perecer." ""
Job

Respostas:

13

Na minha opinião, não. A maioria dos programadores é forçada, quer queira ou não, a aprender inglês, e atualmente é a língua franca do mundo do software.

Na minha experiência, no entanto, livros escritos por autores em um dos idiomas mais fortes têm uma tendência a fazê-lo - até agora vi a prática em livros em alemão, francês e russo (bem, o russo é um pouco diferente de um maiúsculas e minúsculas, pois também usam alfabeto diferente). É uma regra geral que depende da dependência do país em inglês.

Obviamente, o texto é traduzido, os comentários maiores também (um que descreve o funcionamento de um programa em mais detalhes), depois um pouco mais raros, comentários menores e nomes de variáveis. Também vi o caso em que nomes de variáveis ​​foram traduzidos, mas comentários menores foram deixados em inglês. No entanto, acredito que o autor, nesse caso em particular, contava com seu público para ter um conhecimento prático de inglês.

Desculpe se isso não resolveu seu dilema, mas ainda não há um consenso sobre este: - /

Torre
fonte
11

Eu sou brasileiro e, quando posso escolher entre a versão original ou a versão traduzida, eu sempre pego a original, já que quase todo livro é traduzido para pessoas que não são programadores, perdendo comandos e expressões seu significado original após a tradução.

Outro motivo para querer livros em inglês é que tudo na web [ou as melhores coisas, como este site] está escrito em inglês, para que você se familiarize com o termo em inglês e compreenda melhor o código de outras pessoas ... [como um bom programador codificaria em inglês, pelo menos no meu ponto de vista]

Se você precisar ler livros em português [ou outro idioma], prefira aqueles escritos nesse idioma [não traduzidos].

Para deixar claro: se você pretende traduzir esse livro, tente manter todo o código em inglês [os comentários podem ser traduzidos, mas não vars ou funcs] e não tente traduzir coisas como 'array' para 'arranjo' ou 'mouse' a 'rato' [pelo menos eu prefiro o termo em inglês, as pessoas em Portugal preferem o segundo, eu acho].

JulioC
fonte
3
+1 por precisar de um especialista em todos os três idiomas (idioma de origem, idioma de destino, programação) #
Frank Shearar 21/10/10
2

Como falante de inglês não nativo, não gosto de código traduzido.

  1. Cria boas práticas. Como profissional, não apenas o inglês é o idioma principal do campo, mas as pessoas com diferentes origens compartilham e trabalham no mesmo código. Escrever seu código em outro idioma reduz bastante o número de pessoas que podem trabalhar com seu código - eu me diverti com algum código escrito em outro idioma e isso é horrível. Então, por que não incentivar bons hábitos?

  2. Parece feio. A maioria das linguagens de programação usa palavras-chave em inglês e, com uma boa opção para identificadores, a leitura de um programa pode ser uma experiência próxima à linguagem natural. A menos que você use outro idioma para identificadores, o que o torna semelhante à leitura em 2 idiomas ao mesmo tempo.

  3. Não acredito que ajude muito. Mesmo para quem não fala inglês, o inglês usado para identificadores em um programa regular é bastante simples e pode ser aprendido muito rapidamente.

Paul92
fonte
2

Um bom argumento contra a tradução de exemplos de código é que, se você o fizer, terá que testá-los , pois espera-se que os exemplos de código traduzidos estejam corretos, assim como os originais.

O esforço de teste está incluído no custo da tradução? Acho que não, na maioria dos casos.

Se você não testar o código traduzido, corre o risco de quebrar ou estar incorreto, danificando a reputação do material traduzido e do original.

Se você não deseja incorrer no esforço de testar os exemplos de código, traduza apenas comentários, mas não altere o código de forma alguma.

Outra coisa a considerar é o fato de o autor original provavelmente ter uma base de código, talvez um aplicativo ou biblioteca completa que seja compilada como um todo. Os exemplos de código são extraídos dessa base de código e espalhados por todo o livro. Você não terá isso; portanto, depois de traduzir os exemplos de código, poderá acabar com exemplos de código que, no livro traduzido, se contradizem devido a decisões de tradução diferentes em diferentes partes do livro, enquanto no livro original eles não porque foram extraídos da mesma base de código.

Tulains Córdova
fonte
0

Não falo outro idioma além do inglês. (Bem, eu sou latino no ensino médio. Útil se eu visitar a América Latina. :-) Com esse pano de fundo, eu diria:

Como outros observaram, muitas informações sobre programação, na web e em livros, estão em inglês, portanto, certamente ajudaria se você aprender inglês.

Alguns idiomas de computador usam muitas palavras em inglês, como o Visual Basic, por exemplo. Outros usam principalmente símbolos, como C / C ++ / C #. Então, se você estiver programando, precisará aprender ALGUM Inglês. Mas não acho muito. SE, QUANDO, VOLTAR, etc. Dependendo do idioma, talvez 10 ou 20 palavras para algumas dúzias. O Visual Basic é a linguagem mais escrita em que posso pensar, e acabei de verificar uma lista e ela tem, por uma contagem rápida, cerca de 160 palavras reservadas, mas há muita duplicação nela. Como END e WHILE e END WHILE listados como três "palavras" separadas. Percebo que isso é inconveniente para quem não fala inglês, mas essas palavras costumam ser usadas com significados apenas vagamente relacionados aos seus significados comuns em inglês, então, em muitos casos, acho que é ' não é muito mais difícil para quem não fala inglês do que para quem fala inglês. Assim, o significado de HANDLER ou CAST provavelmente não é mais óbvio para um novo programador que fala inglês do que para um novo programador que fala português. Se, em vez disso, algumas dessas coisas fossem chamadas por palavras que não fazem sentido em inglês, como se, em vez de dizer CAST, disséssemos FOOBAR, isso tornaria mais difícil para mim aprender programação? Duvido que teria feito muita diferença. isso teria dificultado o aprendizado de programação? Duvido que teria feito muita diferença. isso teria dificultado o aprendizado de programação? Duvido que teria feito muita diferença.

Você menciona que alguns idiomas têm opções para definir palavras alternativas para palavras-chave de uma maneira ou de outra. Então, sim, você pode definir palavras do seu próprio idioma como sinônimos para as palavras-chave em inglês. Eu não faria. Agora, seus programas têm vários termos não padronizados que você criou. É improvável que alguém que tente a mesma coisa use exatamente o mesmo conjunto de palavras que você. Então, agora, lendo o programa de outra pessoa, você precisa descobrir o que ele quis dizer com "traduções". Suponho que se todos na empresa usassem o mesmo conjunto, você os aprenderia e poderia trabalhar nos programas um do outro com facilidade. Mas o que acontece quando você se muda para outra empresa ou baixa software da Web? Parece-me que você está apenas montando uma armadilha para si mesmo. Melhor apenas aprender as palavras padrão.

Se você está escrevendo um programa em português e as únicas pessoas que provavelmente o lêem são outros brasileiros, e todos vocês presumivelmente falam português, mas talvez não sejam particularmente fluentes em inglês, faz sentido criar nomes de variáveis ​​em português. Não vejo o que se ganha ao tentar criar nomes de variáveis ​​em um idioma em que você não é particularmente bom.

Jay
fonte