进入 Riddle 编程世界
Riddle 是一门仍在成长的实验性编程语言。它受 Rust 和 Go 启发,但目标不是把两门语言各抄一半,而是追问一个更具体的问题:在 GC 已经负责回收堆内存之后,移动语义、借用检查和确定性析构还有没有价值?
为什么要学 Riddle
我理解各位对于新生事物的恐慌和不信任,但如果各位真正深度使用过 Go 和 Rust 之后,一定能得到类似的答案。
Rust 对生命周期的过强控制导致了我们在写类似组合子之类的类型体操时会极大拖慢编译速度和 LSP 的类型检查的速度,同时,生命周期可能还会带来子类型的相关问题。更重要的是,我们平常几乎用不到超过两个以上的生命周期字面量。既然 lifetime 语法的弊大于利,那为什么不把他去掉?
Go 在异步相关方面做的非常不错,但也仅此而已了。Go 的过于简洁和设计上的错误导致了他变成了一个十分庞大的半成品,并且 Unsafe 相关的支持是破坏性的。
我们希望汲取他们两种语言的优缺点,来组合成为一个新的语言。
下一步
工具链装好了,直接进入你好,Riddle。如果你熟悉 Rust 或 Kotlin,可以先看一眼差异速查,避免被相似的关键字带偏。