Interview With Matheus Moreira<br>Jul 2026 - Alex AlejandreMatheus Moreira (blog) built lone lisp directly on Linux system calls. In this interview, he shares his knowledge of C and the Linux Kernel.<br>How did you get into computing originally? What was your path before discovering Lisp etc.?<br>I’ve always liked computers, but what truly got me into programming was video games. When I was a kid, I used to play games from a series called Mega Man Battle Network, and I ended up getting inspired by those games. They’re ultimately responsible for my learning English; I used to join forums as a non-English speaker and try to socialize. It was rough at the start but I improved! The same goes for my first language, C++.<br>How young were you when you started with C++?<br>In Brazil there are “technical schools” which is what I attended. They’re normal highschool curriculum, with extra professional classes. I’m not sure if these are common abroad, if there is a term for it. There were other courses, also: chemistry, mechatronics… As for quality, it was basic, yet pretty good for a highschool level. It did make me start learning all by myself though; within 6 months, I’d already learned the entire curriculum. Eventually they hired me as a teacher’s assistant to help fellow students.<br>So when I started highschool, around 13-14, I took the informatics course and started learning C++ with a very old IDE called Dev-C++, which still exists on source forge! I also browsed the tutorials on cplusplus.com. I tried making games but wasn’t very successful at it! It was pretty hard, especially because I had yet to learn all the physics I was supposed to be simulating :) What I did end up doing was learning a lot more languages. After some basic C++ proficiency, I learned quite a bit of Java, then Ruby, then Python… That eventually led me to Lisp and Scheme! I remember thinking scheme was extremely elegant when I first saw it.<br>Ruby was my favorite language though. I wrote a few gems back then. I think one actually got a small following: Acclaim, a git-like command based argument parser.<br>Cool! Did you happily jump into new languages or did you first try to stay with C++?<br>I think I started learning more languages after I exhausted the cplusplus.com tutorials. I felt if there was nothing else for me to learn on that site, then I should probably move on, right? Sun used to have a really big Java Tutorials website back then. I think I read that entire site. That was when I learned object-oriented programming. I wrote some java code as a teenager… Some “utilities libraries”. In hindsight, it was just a badly implemented version of 1% of what Apache commons has! I think I even published it, might still be out there somewhere… I also remember experimenting a lot with Java Swing applications. I used to really like the Nimbus look and feel and made a circle/arc drawing application for my math professor once.<br>What motivated all of these delvings? What inspired you to keep checking out different languages and so on? Have you stuck with Ruby too?<br>School projects were a big motivator in my early school years, but at some point it was about curiosity, and a desire for The Right Thing. I wanted a language to call home. I stuck with Ruby the longest. It’s a really nice language. I always have it installed, and have recently started a Rails project! But it has its imperfections too. The other language that I stuck with was C. Its low level simplicity was really captivating to me.<br>I didn’t forget C++, but I also didn’t update my knowledge. Current C++ is essentially a completely new language, so I no longer claim I know C++. In a sense, I replaced it with C. C was always captivating for some reason, despite all the problems and legacy, but it really started getting entrenched in my mind when I started exploring the CRuby VM source code as a teenager. I had this really fun past time where I’d watch for interesting stackoverflow questions where someone would ask “why does Ruby act like X?” and I’d dig into the source code to figure it out.<br>A few years ago I tried to transition to Rust, but it didn’t quite stick. I’m also a huge fan of Zig and its creator. Have been since I watched “the road to Zig 1.0” keynote where he laid down reasons why people “rewrite things in C”: speed, ABI…<br>What pros and cons kept you with C and Ruby?<br>Ruby was an extremely expressive language which “just fit” with my mental model. I could often guess a method name and it would work. It has nice things like singular/plural forms of method names, synonyms. Our brains work with these words, and Ruby supports them all.<br>Matklad mentioned good APIs should be guessable and if he guesses stuff which don’t exist, he’ll often file a bug report saying the API demands it!<br>Ruby also enables composing eerily...