My (early) contribution to the Elixir Type System
From university papers to real world Elixir.
It was 2018, and we were just about to start our thesis work at the Facultad de Ingeniería in Montevideo, Uruguay.
At the same time, in the place I was working, we were discovering and bringing in this new language called Elixir. Functional programming applied to the web, the way we “knew” it.
And I loved functional programming for the very first time. I did some advanced subjects and research on the topic. All Haskell, of course. There I built a good relationship with the functional programming teachers. I presented Elixir to them. They were blown away. Too dynamic for their static heads. But intrigued.
Then the idea came along. Why not try to type Elixir? Oh man. Math + math + math and hard theoretical things. I remember sometimes we didn’t understand much about the theory of the work. Thing is, we were able to gradually type a fraction of the language, and even built a proof of concept.
We finished the thesis, which we proudly passed with the highest grade, and the committee evaluating us was very impressed by our work. Was a nice experience!
Then the professors wanted to continue the research, we wrote a paper about it, presented it at programming languages conferences, and I believe they are still working on it with some bachelor and masters projects. But at that moment we really wanted our way out of the university!
One of the best things was that we contacted José Valim to send him our work and see what he thought about it. He was very thankful for it.
The man himself says it here.
He mentions he was able to contact the person currently working on the theoretical part of the type system because of our references. And that we told him we didn’t want to continue working on it anymore :D.
So no, I never wrote any code for the actual type system. But our work helped get the ball rolling at the time. It created some bridge between the right people, and that was enough.
Now that the type system is coming to life in the latest Elixir releases, I can’t help but feel proud of what we did. A small push at the right time.