Tradução: Por que você não deve codificar em Português

2008 July 31, 16:41 h - tags: career translation

Achei esse artigo interessante, o título original é Why you shouldn’t code in Spanish. E como o autor mesmo fala, a parte engraçada é que ele publicou esse artigo no site chamado CodeSpanish. Eu coloquei “Português” no título porque senão ninguém iria ler :-) Mas vou traduzir o artigo original. Seja português, seja espanhol, a noção é a mesma, então lá vai:

Por que você não deve codificar em Espanhol.

Na realidade eu promovo a tradução de software para Espanhol e outras linguagens. Quando digo que você não deveria codificar em Espanhol quero dizer que não deve usar Espanhol ou qualquer outra língua que não seja Inglês como nomes de variáveis, nomes de arquivos, nomes de funções, etc. Linguagens de Programação, linguagens de script, comandos de sistema operacional, etc, são todos baseados na língua Inglesa. Então, por que você faria diferente no seu código?

Pegue por exemplo este código em PHP do post Construindo um forum em PHP e MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
require(?funciones.php?);
$id = $_GET["id"];
$citar = $_GET["citar"];
$row = array(?id? => $id);
if($citar==1)
{
  require(?configuracion.php?);
  $sql = ?SELECT titulo, mensaje, identificador AS id ?;
  $sql.= ?FROM foro WHERE id=?$id??;
  $rs = mysql_query($sql, $con);
  if(mysql_num_rows($rs)==1) $row = mysql_fetch_assoc($rs);
  $row["titulo"] = ?Re: ?.$row["titulo"];
  $row["mensaje"] = ?[citar]?.$row["mensaje"].?[/citar]?;
  if($row["id"]==0) $row["id"]=$id;
}
$template = implode(?", file(?formulario.html?));
include(?header.html?);
mostrarTemplate($template, $row);
include(?footer.html?);

Algumas palavras podem ser familiares para pessoas que entendem inglês já que têm pronúncias similares em inglês, por exemplo: configuracion é configuration, mas e mostrarTemplate? Mesmo formulario dará dores de cabeça a mais de um programador que não saiba Espanhol.

Você também tem que considerar que muitos programadores nem mesmo falam Inglês. Eles podem falar línguas que sequer tem raízes em Latin, para eles já é difícil o suficiente interpretar funções em Inglês como require, echo, etc. Você consegue imaginar um desenvolvedor Chinês tentando entender seu código em Espanhol? Escrever seu código em Inglês é crítico quando se quer trabalhar em um projeto Open Source.

Minha visão é que código deve ser escrito em Inglês: nomes de variáveis, nomes de funções, nomes de classe, campos de dados, etc. Quando digo código, também estou falando de bancos de dados. Existem exceções, objetos nomeados em inglês poderiam ser um problema se o usuário final tiver acesso livre para gerar relatórios, exportar dados, etc.

Não é difícil escrever seu código em Inglês. Use dicionários Espanhol/Ingles (Sua Língua/Inglês – eu recomendo Word Reference). Não entre em pânico, não é para escrever como Shakespeare, gramática não é necessária. Por exemplo, no código acima, mostrarTemplate poderia ser facilmente modificado para showTemplate.

Mesmo que você não tenha intenções de fazer outsourcing, compartilhar ou vender seu código, ter funções em Espanhol misturado com funções nativas de uma linguagem de programação em particular é uma má prática que pode levar a confusões e duplicação de código. Por exemplo, alguém poderia escrever uma função obtenerVariable (obtener significa ‘obter’, em Espanhol), quando já existe uma função chamada getVariable incluso na biblioteca padrão. Se tivesse escrito seu código em inglês e duplicado a função getVariable por engano, é bem possível que o compilador ou interpretador o avisasse. Isso não aconteceria se misturar línguas humanas no seu código.

E sobre comentários dentro de seu código? Embora seja desafiador para muitos que não falam inglês, a realidade é que a maioria dos comentários normalmente tem uma ou duas sentenças. Como disse antes, não é sobre escrever Inglês perfeito. Existem diversas ferramentas que podem ajudá-lo a traduzir sentenças simples. Free Translation é um dos meus favoritos. Mas saiba que essas ferramentas não são 100% perfeitas, traduções de línguas humanas ainda não foram vencidas. Se precisar traduzir um manual, o conteúdo de um website ou as mensagens mostradas ao usuários, por favor, contrate um tradutor profissional.

Não me entenda mal, sou um forte defensor da minha língua materna, Espanhol, mas não sou um idiota. No mundo de hoje, uma empresa estrangeira poderia chegar em você para comprar os direitos do seu produto a qualquer momento. Por exemplo, ano passado o Google comprou o Panoramio, uma empresa fundada pelo Espanhol Eduardo Manchón. Se seu código for ruim para quem não fala Espanhol, será mais difícil de terceirizar sua manutenção (você estará limitado a programadores que falam espanhóis). Esse último ponto poderia ser tópico de discussão com investidores internacionais.

Goste ou não, Inglês é o Esperanto da tecnologia e dos negócios dos tempos modernos. Você deveria escrever seu código em Inglês.

Nota do Akita: novamente, sou um antigo defensor da melhoria da educação pessoal de cada profissional. Cada um é responsável por sua própria capacitação, e ninguém mais. Como disse o autor, aprender – e realmente usar – inglês diariamente não é uma opção, é uma obrigação.

Anos atrás, muitos desenvolvedores reclamaram do código fonte do Ruby porque muita coisa estava documentada em Japonês (!) Imagino que isso deva ter sido um dos motivos que dificulta revoluções maiores no interpretador e a busca por novas alternativas.

Outro caso notório é da SAP, com sua linguagem ABAP/4. Provavelmente, 30 anos atrás, os alemães não imaginavam que seu software seria usado no mundo todo. Veja este pequeno trecho de código ABAP:

1
2
3
4
5
6
7
8
9
IF SUDATE = 'X'.
SORT ITAB BY UDATE EKKEY-EBELN CHANGENR EKKEY-EBELP
EKKEY-ETENR.
ELSEIF SNAME = 'X'.
SORT ITAB BY USERNAME EKKEY-EBELN CHANGENR EKKEY-EBELP
EKKEY-ETENR.
ELSE.
SORT ITAB BY EKKEY-EBELN CHANGENR EKKEY-EBELP EKKEY-ETENR.
ENDIF.

EKKEY, EBELN, EBELP … consultores SAP se acostumam depois de algum tempo, mas tudo isso são acrônimos – que já é ruim – de palavras em alemão! Não é pouco: estamos falando de centenas de milhares de acrônimos como esses, para cada tipo de campo, objeto, tabela em cada módulo empresarial de um pacote que atende Fortune 500. Boa sorte lendo um código desses. ABAP por definição não é a linguagem mais visualmente agradável de se trabalhar, junte a isso diversos nomes de variáveis, tabelas, funções, APIs, tudo em Alemão. Pior: com comentários de código em alemão! Você não precisa compilar nem nada: o código já é naturalmente obfuscado.

Portanto, façam um favor a todos: escrevam nomes em inglês. Não se trata de nacionalismo, idealismo, ou qualquer coisa assim. Isso é puro pragmatismo.

Comments

comentários deste blog disponibilizados por Disqus