I started building Rey because I wanted to understand compilers properly.
Not theoretically. Not through tutorials. Actually build one.
The first version took two weeks. The version I'm proud of took months.
Rey is a type-safe compiled programming language written in Rust. Eventually, the goal is for Rey to compile itself. Right now the compiler is still evolving, but even building the early versions changed how I think about programming completely.
You stop seeing code as magic after building a language.
You start thinking about: types, memory, evaluation, scope, parsing, ownership, runtime behavior.
Everything becomes more concrete.
I also realized programming languages have personality. Tiny syntax decisions shape how a language feels emotionally.
Some deliberate choices I made:
func instead of fn
int instead of i32
no trailing commas in struct literals
main.rey as the entry point
These seem small, but they influence readability and developer experience heavily.
The biggest lesson from Rey is that difficult projects force deep understanding. You can't fake your way through compiler work. Eventually the abstractions collapse and you have to understand what's actually happening underneath.
I think everyone serious about software should try building a programming language once.
Even a bad one teaches you a ridiculous amount.