2025年2月13日,经过近四年的深度开发与社区迭代,由Racket核心团队主导的新一代编程语言——Rhombus Language 1.0 正式对外发布。作为Racket生态中里程碑式的“下一代语法方案”,Rhombus试图在保持Racket元编程与宏系统强大能力的同时,为开发者提供一套更简洁、更现代、更易上手的语言体验。业界普遍认为,这一版本的发布有望重塑函数式编程在教育、科研与工业应用间的桥梁。
从“括号海洋”到优雅表达
Racket语言长期以来以其强大的宏系统、模块化机制和对领域特定语言(DSL)的天然支持而著称,但其基于S-表达式的语法(即大量嵌套括号)往往让初学者望而却步。Rhombus项目的初衷正是为了解决这一痛点:在不牺牲Racket核心编译工具链与宏能力的前提下,设计一套全新的、采用缩进块结构且语法简洁的语言表层。
Rhombus 1.0 的语法风格明显借鉴了Python与Ruby的易读性:代码块通过缩进组织,函数定义采用 fun 关键字,循环、条件判断均以自然词法呈现。例如,一个简单的“计算斐波那契数列”的代码在Rhombus中只需三行即可清晰写出,而无需大量括号包裹。团队在发布说明中强调,Rhombus并非“Racket的简化版”,而是一次“语法层面的重构”——所有Racket现有库与扩展都能无缝兼容。
技术亮点:宏、类型与互操作
Rhombus 1.0 的核心特性主要涵盖三个方面:
-
宏系统无缝兼容:Rhombus保留了Racket引以为傲的“卫生宏”(hygienic macro)机制。开发者可以使用Rhombus自带的
def宏定义语法扩展,或直接引入Racket社区已有的宏库,实现语言内嵌DSL。例如,用户可以用不到十行代码创建一套“测试框架”或“配置语言”。 -
渐进类型系统:Rhombus引入了一套可选的静态类型注解机制。变量与函数类型可通过
::标注,但非强制使用。这一设计使得团队可以在原型阶段使用动态类型快速验证,在发布时逐步添加类型信息,提升代码健壮性。项目负责人、美国西北大学副教授Matthew Flatt表示:“Rhombus的类型系统借鉴了Typed Racket的经验,但更易于融入带有缩进的语法。” -
无缝Racket互操作:Rhombus编译时自动转换为Racket底层表示,可直接调用Racket的标准库、第三方包以及所有通过Racket构建的DSL。这意味着现有Racket社区的数千个包——从机器学习库到Web框架——均可原封不动地在Rhombus项目中使用。
社区与生态:教育者与工业界的新选择
Rhombus语言在开发初期就已受到多所高校计算课程开发者的关注。布朗大学、东北大学等已在计算机科学入门课程中试用过Rhombus原型,学生反馈普遍认为其上手速度远快于标准Racket。语言团队在1.0版中同步发布了配套的官方教程《Rhombus in 10 Minutes》以及交互式在线练习平台,进一步降低了学习门槛。
工业界方面,已有数家投身形式化验证与自动化测试的公司表达了试用意向。提供静态分析工具服务的“ProofKit”公司CTO在采访中表示:“Racket的宏系统能为我们的领域语言提供底层支撑,但之前的语法成本导致新员工培训周期过长。Rhombus有望打破这一困局。”
展望:语言的多极未来
随着Rhombus Language 1.0的问世,编程语言的“语法之争”再次被推到台前。一些评论者指出,Rhombus的出现挑战了“函数式编程必须拥抱括号”的刻板印象,同时并未牺牲宏这一最核心的元编程武器。红帽公司的高级工程师、Racket核心开发者之一Sam Tobin-Hochstadt在技术博客中评论:“Rhombus证明了一点:语言的表达力与其语法的亲民性并非零和博弈。”
目前,Rhombus 1.0已开放源代码,并支持通过Racket包管理器直接安装。项目团队计划在后续版本中加入更强大的IDE支持(如VSCode插件、自动补全优化)以及并发编程原语的语法糖。可以预见,Rhombus的正式落地不仅将为Racket生态注入新血,更将推动整个函数式编程社区在“易用性”与“强大性”之间寻找更精妙的平衡点。