Blogaro!

Criando uma nova linguagem de programação em época de AI agents

Created by Thiago Massari Guedes on 2026-10-13 04:54:39

Tags: #rust   #expressa  

Este ano eu estava de férias no Brasil e resolvi resgatar um projeto antigo - criar uma nova linguagem de programação, voltada para falantes de português.

Minha idéia era (e ainda é) criar uma linguagem de programação voltada para crianças e adolescentes que queiram aprender a programar. O desafio é criar um design que seja simples o suficiente para que a pessoa aprendendo não fique perdendo tempo com coisas como ponteiros, alocação de memória, classes (private/public), etc, e foque no que é mais importante aprender: algoritmos.

Mas por quê ensinar a programar nessa era de AI?

Para que se tenha inovação tecnologica, alguém tem que saber programar. Para entender a arquitetura das aplicações, precisa de experiência criando software. E acima de tudo... por que é divertidíssimo

O plano

O que me fez engavetar o projeto no passado não foi a linguagem em si, mas sim outras coisas como syntax highlight, material didático, um bom suporte de um editor que seja simples de usar, etc. Ah, essa época é anterior ao vscode.

Meu plano de trabalho foi o seguinte:

Enquanto eu estava de férias, escrevi o lexer e o parser. Não consegui terminar o interpretador.

Chegando em casa, vida real, trabalho, levar filhas na escola, etc. Não quis engavetar o projeto novamente, então decidi usar ajuda não humana para terminar.

Usei GenAI para criar a primeira versão do interpretador. Eu criei toda a arquitetura manualmente quando fiz o lexer e o parser. A AI só preencheu a parte do interpretador. Como eu me importo com o interpretador, revisei todo o código e fiz alguns ajustes.

Tudo o que eu não me importava tanto em ter algum problema (ao menos, não nesse estágio), fiz completamente com AI e deixei a AI fazer as alterações sem revisar cuidadosamente tudo (afinal, eu realmente queria que o interpretador funcionasse bem e o meu tempo é bem limitado)

Então eu usei AI para

O que AI foi mais útil?

  1. Achar problemas na especificação da linguagem -> mesmo tendo achado só um, achou um difícil de perceber
  2. Implementar novas funções e alterar documentação.

O que AI não fez direito?

Quando eu discutia para tentar decidir seguir um caminho A ou B, frequentemente a AI simplesmente seguia o que eu estava fazendo, mas não existia a criatividade de pensar numa forma diferente. Por exemplo, quando eu estava pensando em uma forma de fazer mapas, coleções e listas, as sugestões estavam deixando a linguagem mais complicada e ambígua. Eu tive que, eu mesmo, definir uma nova forma e dizer para a AI segui-la e ouvir: "Fica muito melhor desta forma"

E como ficou a linguagem?

Inspirada por SML, Rust, D, C, Pascal e Lua, ela ficou assim:

Linguagem Inspiração
Lua índice começa em 1, tabelas, funções como first-time citizens
C e Pascal imperativa, bloco { } ou inicio/fim, laço explícito
SML e Rust a última expressão da função é o resultado; tratamento de erro explícito
D UFCS: tamanho(xs) e xs.tamanho() são a mesma coisa
Minha cabeça Números são decimais de verdade (0.1 + 0.2 é 0.3)

Na escola, não existe int8, int16, int32, float32, float64, etc, só existe número.
Então, na linguagem só existe número.

Usuários avançados podem usar float64, se quiserem

UFCS para poder encadear chamadas sem boilerplate de return this. Além de que a legibilidade fica bem melhor

se_falhar para tratar erros (inclusive divisão por zero) e blocos com {} ou início/fim

E onde eu acho essa linguagem fantástica?

Feedbacks são extremamente bem vindos!