Ruby 使用 Ruby 实现一门编程语言 | Tao 语言

Patamon · August 05, 2026 · Last by zw963 replied at September 23, 2026 · 551 hits

目前还是玩具语言,仅分享喜悦。

回顾何时开始使用 Ruby,大概是大学毕业前在学校图书馆偶然看到一本叫做“Ruby 之道”的书,借了回来,但没怎么看,只记住了这是日本人写的编程语言。

一开始我还真的打算学 Python(Django)的,但 Ruby 的语法确实很吸引我,再到后来看到 DHH 的一个视频,完全成为 Rails 派的粉丝。

“优雅”成为 Ruby 的亮点,以至于 Laravel 等框架都学的有模有样。因为我在学 Rails 之前,是看着一些 PHP 视频慢慢学会编程的。

大学几乎没有怎么认真学编程,基础不够,勤奋来凑。那时候用 CSS / JS 实现一个类似“程序坞”的缩放效果就足以“满足”一整天。书是买了很多,特别是“自制”类的书,Ruby 作者出的那几本,有中文版的都囤了,偶尔没工作的时候,就拿出来看。

大概是因为这份“好奇心”才坚持写代码到现在。前段时间与朋友交流,他说他现在已经不写代码,完全交给 AI Coding;而他的一句反问:“你还在坚持古法编程吗?”让我突然觉得“前途”有些“危险”,毕竟我这么多年,钱没赚着,只有年纪在反复 +1。

之后,我想起我的“人生愿望清单”,其中一条就是“实现一门编程语言”。我这几年一直有尝试去实现它,从一开始的简单的 Lisp,到 Robert Nystrom 教程《Crafting Interpreters》,实现从 Ruby 到 Go 又回到了 Ruby,又回到了 Go,每次都在 Parser 阶段信心骤减。

此时,我又想起多年以前另一本关于“自制编程”的书,听说 CoffeeScript 就是这么来的(只是听说,未证实)。tinyrb 是这位作者实现的例子之一,于是我决定用 Racc 先跑起来。

接下来,就是搭档 Coding Agent,开始把之前的“生肉”进行“烹饪”。AI 读取我之前的 Ruby / Go 半成品(可能半成品都够不着),生成 parser.y,这也是我之前一直无法突破的阶段。花了大概 5-6 天时间,加上 2 天左右的前端页面,终于可以拿出来分享了。

为什么取名 Tao,因为我想借此尽可能地少实现一些功能,所以它还只是“玩具”阶段。

我也是在图书馆看 The Ruby Way 入门 Ruby 的,距今已有十多年了,时间过得真快。

贴主加油!

时间过的特别快,最初也是在 16 年左右吧,从网上看到 Ruby,听说特别优雅。后来在 19 年年底想学习来着,😷疫情一下子来了,后面也就无心学习了。在到今天的 2026 年,AI 大行其道,从新开始学 Ruby,Ruby 搭配 rails 写一些 web app(全程 AI)玩,真成了氛围编程。胡乱搞搞,搞搞就能发布上线了 😂。比较喜欢 Ruby 的简洁,如今也不需要写那么多代码,但是光看这门语言,就比较顺眼。

Reply to googya

谢谢你的鼓励~

Reply to AixCoder

优雅的 Ruby

我是看 DHH 的 Rework 那本书之后从运维转开发的,十多年了到今天还在写 Ruby 也是不容易。

能开发一门语言还是很厉害的 👍

可惜 ruby 的工作越来越少了

使用 Ruby 实现的语言,最有名的应该是 Crystal 啦!

当然,那是很多年前了,后来 Crystal 就实现了自举,使用自己编译自己了。

但是初期,就是 Ruby 写的,然后交给 llvm 生成执行文件。

You need to Sign in before reply, if you don't have an account, please Sign up first.