Por que é quase impossível programar em português? (Ou qualquer outra língua que alguém ainda fala)

Karl Marx Alexander
investigacoesholisticas
2 min readFeb 24, 2019

Nesse fim de semana eu estava trabalhando em um interpretador para gerar objetos a partir de um arquivo SQL, o que envolve um arquivo gigante para testar expressões regulares em cada linha, várias regras retiradas da documentação em um monte de testes.

A minha leve surpresa, que motivou este artigo, foi notar que certas declarações par ao MySQL (único DBMS suportado atualmente pelo interpretador), permitem muitas variações. Um exemplo muito bom é criação de tabelas em um schema.

Na documentação existem “apenas” 147 linhas para possíveis declarações! É claro que para a intenção do interpretador, que é extrair o nome desta tabela, a expressão regular resultante é bem simples. Ainda assim, se fosse um objetivo atingir compatibilidade total com o MySQL, inserindo cada uma das chaves possíveis no objeto criado, eu estaria em um pesadelo.

E quando eu achava que as coisas eram relativamente “simples”, uma outra dor me atinge. Em alguns geradores de código (incluindo o MySQL workbench), os nomes podem ser definidos com delimitadores “`” (acento grave), seguidos do nome do banco de dados, para permitir a criação de múltiplos bancos em um mesmo script e é claro, isso significa trabalho em dobro, pois é preciso extrair os delimitadores de ambos os nomes.

O que finalmente me leva ao motivo de ser quase impossível escrever um interpretador que possa lidar claramente com a linguagem humana e transformá-la em código de máquina. Sabe de quantas maneiras eu poderia dizer um “if … else” naturalmente?

Se sim então faça, senão (clara e concisa)
Caso aconteça, faça isso [aqui], ou então (ainda fácil)
Será que aconteceu? então faça. Não aconteceu? então
Pode ser que sim, se for isso então, ou então
Isso existe? (minha preferida)

Talvez o exemplo tenha sido ruim, mas serve para demonstrar o ponto, supondo que o escritor siga regras gramaticais básicas, o que pode não ser o caso. E ainda pior, provavelmente durante a escrita desse interpretador um novo acordo ortográfico vai surgir, a academia brasileira de letras define novas regras, ou os seres humanos simplesmente decidem usar expressões diferentes, impedindo o interpretador de funcionar.

Ainda bem que estou acordado.

--

--

Karl Marx Alexander
investigacoesholisticas

The less smarter and Brazilian Feynman, Software engineer at Gaivota