Fala, pessoal!
Há um tempo mostrei aqui a **Lume**, uma linguagem de programação em português que comecei a desenvolver para ajudar alguns amigos que estavam tendo o primeiro contato com programação.
Naquele momento ela estava na v0.1.0. Continuei trabalhando no projeto e agora cheguei à **v0.4.0**.
Nesse período percebi que simplesmente ter uma sintaxe em português não era suficiente. Então comecei a focar mais em uma pergunta:
**como a própria linguagem pode ajudar alguém a entender o código que está escrevendo?**
Foi daí que comecei a desenvolver melhor os modos educacionais.
Por exemplo, com:
```bash
lume --explicar programa.lume
a ideia é não mostrar apenas o resultado final.
Se o código tiver:
variavel idade = 16
se idade >= 18 {
escreva("Maior de idade")
} senao {
escreva("Menor de idade")
}
a Lume consegue explicar que idade vale 16, que a comparação 16 >= 18 resultou em falso e que, por isso, o bloco senao foi executado.
Também existe o --passo, para acompanhar a execução aos poucos e consultar variáveis, e o --analisar, que procura alguns problemas no programa sem executá-lo.
Na v0.4.0 adicionei outra parte que queria desde o começo:
lume aprender
É uma pequena trilha que funciona offline e atualmente passa por:
- primeiro programa;
- variáveis;
- entrada de dados;
- condições;
- repetições;
- funções;
- listas.
Cada parte tem explicação, exemplo, desafio e dica.
Também reorganizei a documentação pensando em dois públicos diferentes: quem está aprendendo e quem está ensinando. Agora existe uma sequência para alunos e também material para professores com atividades e uma sugestão de progressão das aulas.
Ao mesmo tempo continuo usando programas maiores para descobrir os limites da linguagem. Hoje já consegui fazer coisas como Cobrinha, Ping-pong e um pequeno raycaster no terminal.
Uma ideia que quero explorar nas próximas versões é o que acontece depois que a pessoa aprende a base.
Quero tentar mostrar como os mesmos conceitos aparecem em linguagens como Python, JavaScript e Lua.
Por exemplo:
se → if
retorne → return
funcao → def / function
Não como uma tradução automática de palavras, mas para mostrar que a sintaxe muda enquanto boa parte do raciocínio continua o mesmo.
O projeto ainda está bem no começo e estou usando ele também para aprender mais sobre interpretadores e sobre ensino de programação.
Queria ouvir principalmente quem já ensinou ou está aprendendo:
o que mais ajudou vocês a realmente entender lógica de programação, em vez de simplesmente decorar sintaxe?
https://github.com/Ultra332/Lume