我在造一个编程语言,叫 Free

我在造一个编程语言,叫 Free

最近朋友们问我都在忙什么,我说在写一个新的编程语言。他们通常先是一愣,然后问:"为什么?现在不是已经有Python、Go、Java这些了吗?"

说实话,这个问题我也问过自己很多遍。

为什么还要造轮子?

记得刚开始学编程的时候,用的是C语言。那时候总觉得,要是能有一门既保留C的性能,又有现代语言的开发体验,还能更符合中文开发者思维习惯的语言该多好。

十几年过去了,这个想法一直在心里。直到最近,终于决定把它实现出来,名字就叫Free

为什么叫Free?不是因为它免费,而是希望开发者在使用时能感受到那种"自由"------从繁琐的语法束缚中解放出来,从复杂的配置中解脱出来,当然它确实免费。

现在的进度

目前正处在早期最关键的语法分析阶段。这就像在教一个刚出生的婴儿理解人类语言:我要告诉计算机,当它看到class后面跟着一个单词时,那是在定义一个类;当看到fun时,是在定义函数。

有时候调试一个语法规则就要花上整个晚上。上周为了搞定函数调用链的解析(比如a.b().c()这种),喝了不下五杯咖啡。

技术选型的思考

选择 Kotlin/Native 来写初代编译器,是个经过很多纠结的决定。

Kotlin有着很现代的语言特性,它的扩展函数、空安全让编译器代码写起来很舒服。而且通过Native可以直接编译成机器码,不需要依赖JVM,这对一个编译器来说很重要。

后端选择LLVM,说实话是有点"站在巨人肩膀上"的意思。LLVM已经解决了最难的代码优化和跨平台问题,我可以专注于语言本身的设计。

宏大的自举目标

说出来可能有人会觉得不切实际,但我确实在规划一个很重要的里程碑:在2.0版本时,用Free语言本身来重写Free的编译器

这就像小鸡孵出后要自己下蛋一样。现在我用Kotlin在"孵"Free,等Free长大了,它就要学会自己"下蛋"。

这个过程会很难。想象一下,你要用一门还不成熟的语言去写它自己的编译器,这就像是拽着自己的头发想离开地面。但这也是最有魅力的地方------如果一个语言连自己的编译器都写不了,那它凭什么让别人信任呢?

在国内做这件事的难处

说实话,在国内做基础软件研发,氛围确实不如国外。

大家更关注的是"这个能马上带来业务价值吗?""能快速上线吗?",而对于编译器、操作系统这些底层技术,往往觉得"直接用现成的就好了,为什么要自己造?"

但我始终觉得,如果我们永远只在应用层打转,就永远只能在别人的技术地基上盖房子。什么时候能盖出自己设计的摩天大楼?

未来的想象

我理想中的Free,应该是个这样的语言:

  • 写起来像Kotlin一样舒服
  • 跑起来像C一样快
  • 错误提示像Rust一样友好
  • 生态像JavaScript一样丰富

我知道这个目标很远大,可能要好几年甚至几十年才能看到雏形。但每当想到未来可能有开发者用着我创造的语言去实现他们的创意,就觉得现在的一切辛苦都值得。

接下来的路

语法分析器完成后,还有语义分析、中间代码生成、LLVM IR生成、标准库建设......路还很长。

有时候晚上加班到很晚,看着满屏的编译器代码,也会问自己:"这么拼值得吗?"

但第二天早上起来,看到昨天卡住的问题有了突破,那种喜悦又是别的任何事情都无法替代的。

如果你也对编程语言设计感兴趣,或者只是想给我加个油,都很欢迎来交流。造语言这条路很孤独,但想到未来可能有人因为Free而爱上编程,就觉得一切都有了意义。


还在继续coding中,下次再聊

相关推荐
小书房6 小时前
Kotlin的内联函数
java·开发语言·kotlin·inline·内联函数
zhangphil8 小时前
Android Page3与Flow分页查媒体数据库展示宫格图片列表,Kotlin
android·kotlin
胡致和1 天前
配置变更后,弹窗为什么飞到了最左边?
kotlin
zhangphil1 天前
Android Page 3 Flow读sql数据库媒体文件,Kotlin
android·kotlin
小书房1 天前
Kotlin使用体验及理解1
android·开发语言·kotlin
Kapaseker1 天前
我想让同事知道我很懂 Compose 怎么办?
android·kotlin
jinanwuhuaguo2 天前
OpenClaw工程解剖——RAG、向量织构与“记忆宫殿”的索引拓扑学(第十三篇)
android·开发语言·人工智能·kotlin·拓扑学·openclaw
jinanwuhuaguo2 天前
OpenClaw协议霸权——从 MCP 标准到意图封建化的政治经济学(第十八篇)
android·人工智能·kotlin·拓扑学·openclaw
zhangphil2 天前
Android sql查媒体数据封装room Dao构造AndroidViewModel,RecyclerView宫格展示,Kotlin
android·kotlin
jinanwuhuaguo2 天前
反熵共同体——OpenClaw的宇宙热力学本体论(第十七篇)
大数据·人工智能·安全·架构·kotlin·openclaw