遗憾的是,我必须与 Leaf(我的编程语言)告别

2025-06-07

遗憾的是,我必须与 Leaf(我的编程语言)告别

写这篇文章很难,或者更确切地说,这是一个很难做出的决定。在Leaf上投入了多年——这门编程语言,一个重要的人生项目——我需要休息一下。它不再能满足我的目标,也不像以前那么有趣了。它干扰了我的其他职业发展重点。Leaf已经成为我身份的一部分,这感觉就像把我的一个器官割掉了。但这是必要的。让我来解释一下原因。

我已经记不清究竟是什么时候促使我创立了 Leaf,但我知道一些关键原因。首先,也是最重要的,我想要一个技术挑战。有些人可能会觉得这很奇怪,因为编程的世界充满活力且多元化。但我做过很多编程工作,尝试过很多项目,并不断寻找新的做事方法。我曾在多家初创公司工作过,也做过很多副业。现在,找到新的挑战变得非常困难。这种缺乏新鲜感的状态正拖累着我。

虽然我以前也做过一些玩具语言,但跟一门完全现代的语言相比,它们简直是小巫见大巫。我期待着新的挑战,而 Leaf 做到了。它不再只是我的爱好,而是我的动力。

我解决了许多激动人心的问题,学到了很多东西。构建类型系统让我深入思考类型理论。它让我接触到了语言结构中未知的角落。我希望我能继续研究这个领域。在语言层面处理复杂的内存管理令人振奋。当然还有错误处理。哇!这真是一段很棒的经历。确保LLVM的块流正确是编译器面临的关键挑战之一。

正是这些成就让我难以抉择。我怎么能把自己打造的这件美好的东西束之高阁呢?但一年多前,我就已经感受到了这种渴望。总觉得缺了点什么。我需要用它做更多。

我引导 Leaf 朝着编写真正程序的方向发展。首先,它应该能够胜任理论任务。今年早些时候,我直播了一款名为“Wormies”的蛇形游戏的开发过程。这赋予了这门语言意义,也让我有机会与他人分享我的成果。

分享至关重要。我写过几篇技术文章,但读者非常有限。说实话,没人知道我们使用的语言是谁创造的。当然,偶尔会有一些名字出现,但大多数情况下,语言的设计者和程序员都不为人知。看到像 Guido 这样的人退出 Python 项目也令人沮丧。一种语言的成功意味着你会失去对它的控制。

但我遇到了更紧迫的问题,在游戏开发中遇到了一个绊脚石。一个缺失的功能——面向对象编程接口——阻碍了我按照自己想要的方式使用这门语言。它跃居我待办事项清单的首位,但我却没有动力去写它。这对我来说没什么新意。在编译器领域也没什么新意。当然,这并非易事,但它只是一堆简单的代码,没有任何内在的回报。

即使完成了这一步,在库和环境方面仍然需要做大量的工作。所有这些都是其他人使用该语言之前必须做的。不幸的是,这对我来说是日常工作——既没有挑战性,也学不到什么。

也许我应该考虑一下我的职业生涯。编译器和语言开发者是稀缺人才,但需要他们的项目也同样稀缺。而且,既然我已经解决了那些有趣的问题,我还会继续研究另一种语言吗?

我的个人目标更多地在创意方面。我想做图形设计、创作音乐、制作游戏和录制视频。我原本计划用 Leaf 来创作所有这些。我会构建足够多的系统来支持这些创意项目。但是,那些想看到创意作品的人并不关心这门语言。把自己局限于 Leaf 会阻碍其他项目的开展。我不仅没有从这门语言中获益,反而有所损失。

这真是个残酷的冲突。我知道我能搞定它,但具体要多久?我根本负担不起全职工作。如果是公司主导的,比如我有工资,情况就会不一样。我仍然可以兼职做其他项目。但目前的情况是,我有太多想法在争夺我有限的时间。

真的很难放手。我为 Leaf 投入了大量时间,但我不得不承认,这些都是沉没成本。我必须评估一下 Leaf 相对于我目前目标的现状。而且,很遗憾,现在继续追求 Leaf 并不符合我的最佳利益。

也许我可以假装这是一个休息,以减轻情感上的打击。

文章来源:https://dev.to/mortoray/sadly-i-must-say-goodbye-to-leaf-my-programming-language-d6
PREV
如何在 React 中实现基于设备的代码拆分
NEXT
编程面试准备