我在造一个编程语言,叫 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中,下次再聊

相关推荐
天空之城--2 小时前
Android行业一周动态:编码趋势与行业资讯汇总
android·性能优化·架构·kotlin·android jetpack
JMchen10 小时前
第 2 篇|Kotlin 进阶 —— 集合、循环与条件表达式
android·kotlin
YB137519 小时前
Kotlin 三类关键字
kotlin
撩得Android一次心动1 天前
Jetpack Compose 知识点整理1【个人用】
android·学习·kotlin·android jetpack·compose
ForteScarlet1 天前
Kotlin 2.4.20 现已发布,新特性多不多?
android·java·开发语言·开源·kotlin·jetbrains
JMchen1231 天前
Cursor高阶玩法:.cursorrules编写与Spec-Driven开发实战,把AI调教成专属结对编程搭档
人工智能·vscode·kotlin·cursor·结对编程·spec-driven·.cursorrules
hai_android1 天前
Kotlin 协程作用域源码剖析
android·kotlin
leluckys2 天前
【KMP】-KMP 项目commonMain、androidMain、iosMain 到底放什么?
kotlin
JMchen1232 天前
2026年六款主流AI编程工具深度实测:Cursor、Copilot、Claude Code等对比与选型思考
android·kotlin·copilot·ai编程·开发工具·cursor·claude code
hai_android2 天前
Kotlin 协程上下文:从 plus 到 CombinedContext,彻底搞懂左偏结构
android·kotlin