Ferrugem - Rust, só que em Português
Recentemente eu vi um projeto no GitHub chamado Rouille, que é a linguagem Rust, mas com as keywords e algumas coisas totalmente traduzidas pro francês. Logo, se seguiram várias derivadas, como Rost (alemão), Rdza (Polonês), Ruggine (Italiano), e vários outros projetos no mesmo estilo.
Eu não tinha visto ninguém fazer em português, então eu resolvi fazer minha própria versão, usando como base o código do Rost.
É aí que surgiu o Ferrugem, a versão em PT-BR do Rust, e como qualquer versão PT-BR de qualquer coisa, eu dei um toque bem mais HUE BR pro README, ainda seguindo um pouco o padrão de todos os outros idiomas.
É um projeto interessante que mostra o poder das macros do Rust, e como você pode escrever uma linguagem inteira só usando macros:
ferrugem::ferrugem! {
usar pdr::coleções::Dicionário como Dicio;
atributo Eae {
função escrever(&eu, chave: Texto, valor: Texto);
função obter(&eu, chave: Texto) -> Resultado<Opção<&Texto>, Texto>;
}
estático mutável DICIONARIO: Opção<Dicio<Texto, Texto>> = Nenhum;
estrutura Concreto;
implementar Eae para Concreto {
função escrever(&eu, chave: Texto, valor: Texto) {
eis dicio = inseguro {
DICIONARIO.obter_ou_inserir_com(Padrão::padrão)
};
dicio.inserir(chave, valor);
}
função obter(&eu, chave: Texto) -> Resultado<Opção<&Texto>, Texto> {
se eis Algum(dicio) = inseguro { DICIONARIO.como_ref() } {
TaMec(dicio.obter(&chave))
} senão {
Erro("Deu ruim, rapaziada ".para_texto())
}
}
}
}
Vendo como as macros funcionam pra substituir as keywords por palavras e gírias em outras línguas dá uma boa noção de como as procedural macros do Rust funcionam, mesmo com um projeto de brincadeira assim.
O único problema é que dentro das macros você acaba perdendo algumas das funcionalidades do rust-analyzer, então é difícil saber se seu código tá certo enquanto você escreve.
Pra quem quiser testar e escrever algum programa totalmente em português usando Ferrugem/Rust, sintam-se à vontade pra testar e sugerir novas keywords. Eu não publiquei o projeto no Crates.io, mas talvez o faça em breve.
será que vemos um substituto para o portugol nas faculdades nascendo? rs brincadeiras a parte, muito legal😎
O interessante é ter uma noção como os americanos enxergam um software já que está na sua língua nativa.
Boa iniciativa. Se me permite, eu gostaria de fazer uma observação :)
Eu sou da época em que, tirando a linguagem, programávamos em português aqui no Brasil, e eu sempre achei que o padrão de tradução poderia ser diferente.
Usou-se o nome do verbo e não a sua ação, que seria mais adequado, na minha opinião. Por exemplo, implementar
ficaria como implementa
, escrever
ficaria como escreve
, obter
ficaria como obtém
, etc.
De qualquer forma, está legal, e eu diria que este tipo de projeto poderia mesmo ser olhado com mais "carinho". Trabalhar em inglês é bom devido a consistência, mas vira e mexe, enche o saco de quem está buscando o termo ideal para tudo, especialmente para termos de negócio :)
eu ficava pensando como seria liguagens traduzidas como python,js,C,C++ e outras achei que era um ideia aletoria minha mas não é não é tenho muitas outras ideias só no papel por que sou iniciante d estou aprendendo mas quando eu aprender mais eu faço.