Lobsters Interview with matheusmoreira about Lone Lisp

Lobsters Interview with matheusmoreira about Lone Lisp

Jul 2026 - Alex Alejandre Matheus Moreira (blog) built lone lisp directly on Linux system calls. In this interview, he shares his knowledge of C and the Linux Kernel.

2026年7月 - Alex Alejandre Matheus Moreira(博客)直接基于 Linux 系统调用构建了 Lone Lisp。在本次采访中,他分享了自己关于 C 语言和 Linux 内核的知识。


How did you get into computing originally? What was your path before discovering Lisp etc.?

你最初是如何接触计算机的?在发现 Lisp 等语言之前,你的路径是怎样的?

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++.

我一直很喜欢计算机,但真正让我走上编程之路的是电子游戏。小时候,我常玩《洛克人 EXE》(Mega Man Battle Network)系列游戏,并最终从中获得了灵感。它们是我学习英语的根本原因;我曾以非英语母语者的身份加入论坛并尝试社交。起初很艰难,但我进步了!我的第一门编程语言 C++ 也是如此。


How young were you when you started with C++?

你开始学习 C++ 时多大?

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.

在巴西,有我所就读的那种“技术学校”。它们提供普通高中的课程,外加额外的职业课程。我不确定国外是否普遍存在这种情况,或者是否有专门的术语。学校还有其他课程,比如化学、机电一体化……就质量而言,虽然是基础水平,但对于高中阶段来说已经相当不错了。这确实促使我开始自学;在 6 个月内,我就学完了全部课程。最终,他们聘请我担任助教,去帮助其他同学。

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. 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.

所以,当我 13-14 岁上高中时,我选修了信息学课程,并开始使用一个名为 Dev-C++ 的老旧 IDE 学习 C++,它至今还在 SourceForge 上存在!我还浏览了 cplusplus.com 上的教程。我尝试过制作游戏,但不太成功!这相当困难,尤其是因为我还没学过需要模拟的物理知识 :) 我最终做的是学习了更多的语言。在掌握了基本的 C++ 后,我学了不少 Java,然后是 Ruby,接着是 Python……这最终引导我接触到了 Lisp 和 Scheme!我记得第一次看到 Scheme 时,觉得它极其优雅。不过 Ruby 才是我的最爱。那时我写过几个 Gem(Ruby 库)。我想其中一个还获得了一些关注:Acclaim,一个类似 git 命令行的参数解析器。


Cool! Did you happily jump into new languages or did you first try to stay with C++?

酷!你是乐于尝试新语言,还是先尝试坚持使用 C++?

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.

我想在学完 cplusplus.com 的教程后,我就开始学习更多语言了。我觉得如果那个网站上没什么可学的了,那我就该继续前进了,对吧?当时 Sun 公司有一个非常庞大的 Java 教程网站。我想我读完了整个网站。那是我学习面向对象编程的时候。青少年时期我写过一些 Java 代码……一些“工具库”。事后看来,那只是 Apache Commons 所拥有的功能的 1% 的拙劣实现!我想我甚至发布过它,可能还在某个地方存着……我还记得曾大量尝试过 Java Swing 应用程序。我当时非常喜欢 Nimbus 的外观和感觉,还曾为我的数学教授制作过一个圆/弧绘制应用程序。


What motivated all of these delvings? What inspired you to keep checking out different languages and so on? Have you stuck with Ruby too?

是什么促使你进行这些钻研?是什么激励你不断探索不同的语言等等?你还坚持使用 Ruby 吗?

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.

在早期的学生时代,学校项目是很大的动力,但到了某个阶段,动力就变成了好奇心,以及对“正确事物”的渴望。我想要一门可以称之为“家”的语言。我坚持使用 Ruby 的时间最长。它是一门非常好的语言。我的电脑里一直安装着它,最近我还启动了一个 Rails 项目!但它也有不完美之处。我坚持使用的另一门语言是 C。它底层的简洁性真的让我着迷。

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.

我没有忘记 C++,但我也没有更新我的知识。现在的 C++ 本质上是一门全新的语言,所以我不再声称自己懂 C++。从某种意义上说,我用 C 取代了它。出于某种原因,C 一直很吸引人,尽管它有各种问题和历史包袱,但当我青少年时期开始探索 CRuby 虚拟机源代码时,它真正扎根在了我的脑海中。我当时有一个非常有趣的消遣:我会关注 Stack Overflow 上有趣的问题,比如有人问“为什么 Ruby 的行为是 X?”,然后我会钻研源代码去找出答案。

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…

几年前我尝试转向 Rust,但没能坚持下来。我也是 Zig 及其创造者的忠实粉丝。自从我观看了“通往 Zig 1.0 之路”的主题演讲后就一直如此,他在演讲中阐述了人们为何“用 C 重写事物”的原因:速度、ABI 等等……


What pros and cons kept you with C and Ruby?

是什么优缺点让你留在了 C 和 Ruby?

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.

Ruby 是一门极其富有表现力的语言,它“恰好契合”我的思维模型。我经常能猜出一个方法名,而且它确实有效。它有一些很好的特性,比如方法名的单复数形式、同义词。我们的大脑就是这样运作的,而 Ruby 支持所有这些。

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!

Matklad 曾提到,好的 API 应该是可猜测的;如果他猜的东西不存在,他通常会提交一份错误报告,说 API 应该具备这个功能!

Ruby also enables composing eerily shell-like processing pipelines… items.each.with_index.map… It just keeps composing and you can do a LOT of work with very few characters.

Ruby 还支持组合类似 Shell 的处理管道……items.each.with_index.map……它不断地进行组合,你可以用极少的字符完成大量的工作。

For C, the main advantage is the simplicity of the output. You write a function, it compiles to an ELF symbol and associated assembly code. They say you can see the compiler output when you write C, and it’s true. With C++ the compiler adds a lot of machinery, it’s very difficult to understand how it all fits together. With dynamic languages, it’s just the same, but I found it easier to explore the source code of virtual machines than that of compilers.

对于 C 语言,主要的优势在于输出的简洁性。你写一个函数,它会被编译成一个 ELF 符号和相关的汇编代码。人们常说写 C 时你能看到编译器的输出,这是真的。而对于 C++,编译器会添加大量的机制,很难理解它们是如何组合在一起的。动态语言也是一样,但我发现探索虚拟机的源代码比探索编译器的源代码要容易得多。


So your C++ style changed, removing sugar until you were writing C?

所以你的 C++ 风格发生了变化,去掉了语法糖,直到你开始写 C?

Yes. My style also changed as I read more and more code written by other developers. I’ve explored CRuby code, CPython code, JVM code, a bit of guile code, even a bit of V8 code… I started to really admire expert C programmers when I started reading Linux kernel source code though. It’s really good, probably the gold standard.

是的。随着我阅读越来越多其他开发者编写的代码,我的风格也发生了变化。我探索过 CRuby 代码、CPython 代码、JVM 代码、一点 Guile 代码,甚至一点 V8 代码……但当我开始阅读 Linux 内核源代码时,我开始真正钦佩那些 C 语言专家。它真的很好,大概是黄金标准。


From the beginning, you read a lot? It’s quite rare particularly today for people to really read others’ code. How do you approach this? Any tricks or techniques?

你从一开始就读了很多代码吗?在今天,人们真正去阅读他人代码的情况相当罕见。你是如何处理的?有什么技巧或方法吗?

I read a lot. I’ve always been the sort of curious person who wanted to know how the thing w…

我读了很多。我一直是一个好奇的人,想知道事物是如何……