[Thiago Cafe] Programming is fun!

Creating a new programming language in the era of AI agents

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

Tags: #rust   #expressa  

This year I was on vacation in Brazil and decided to revive an old project - creating a new programming language, aimed at Portuguese speakers.

My idea was (and still is) to create a programming language aimed at children and teenagers who want to learn how to program. The challenge is to create a design that is simple enough so that the person learning doesn't waste time on things like pointers, memory allocation, classes (private/public), etc., and focuses on what is most important to learn: algorithms.

But why teach programming in this era of AI?


Disclaimer:
This post was translated using AI with some correction of weird translation errors. The original is in pt-BR, fully human written, and can be seen on the blogaro website


For technological innovation to exist, someone has to know how to code. To understand application architecture, you need experience creating software. And above all... because it's incredibly fun

The plan

What made me shelve the project in the past wasn't the language itself, but rather other things like syntax highlighting, creation of educational material, good support from an editor that is simple to use, etc. Oh, it was prior to vscode.

My work plan was as follows:

While I was on vacation, I wrote the lexer and the parser. I couldn't finish the interpreter.

Arriving home, real life, work, taking daughters to school, etc. I didn't want to shelve the project again, so I decided to use non-human help to finish it.

I used GenAI to create the first version of the interpreter. I created the entire architecture, lexer and parser manually. The AI only filled in the interpreter part. Since I care about the interpreter, I reviewed all the code and made some adjustments.

Everything I didn't care as much about having an issue with (at least, not at this stage), I did completely with AI and let the AI make the changes without carefully reviewing everything (after all, I really wanted the interpreter to work well and my time is quite limited)

So I used AI to

Where was AI most useful?

  1. Finding problems in the language specification -> even having found only one, it found one that was hard to notice
  2. Implementing new functions and changing documentation.

What did AI fail to do?

When I argued to try to decide whether to follow path A or B, frequently the AI simply followed what I was doing, but there was no creativity to think of a different way.
For example, when I was thinking of a way to make maps, collections, and lists, the suggestions were making the language more complicated and ambiguous. I had to, myself, define a new way and tell the AI to follow it and hear: "It looks much better this way"

And how did the language turn out?

Inspired by SML, Rust, D, C, Pascal, and Lua, it turned out like this:

Language Inspiration
Lua index starts at 1, tables, functions as first-class citizens
C and Pascal imperative, { } block or begin/end, explicit loop
SML and Rust the last expression of the function is the result; explicit error handling
D UFCS: tamanho(xs) and xs.tamanho() are the same thing
My head Numbers are true decimals (0.1 + 0.2 is 0.3)

In school, there is no int8, int16, int32, float32, float64, etc., there is only number.
So, in the language there is only number.

Advanced users can use float64, if they want

UFCS to be able to chain calls without return this boilerplate. Besides the fact that the readability is much better

se_falhar to handle errors (including division by zero) and blocks with {} or inĂ­cio/fim

And where do I find this fantastic language?

Feedback is extremely welcome!

Tell me your opinion!

Reach me on Twitter - @thiedri