加载中...
2014年发布的编译型静态类型语言,语法几乎和Ruby相同,通过LLVM编译为原生代码。目标是「Ruby的优雅,C的速度」,无需运行时GC暂停,类型推断让大多数代码无需类型标注。

| 类型 | 静态类型(类型推断)、编译型(LLVM) |
| 发布年份 | 2014年(公开)、2021年(1.0) |
| 开发者 | Ary Borenszweig、Juan Wajnerman等 |
Crystal由Ary Borenszweig和Juan Wajnerman在2014年发布,出发点很直接:Ruby开发者写Crystal基本不需要学习新语法,puts "Hello"、def、class、块/迭代器的用法几乎一模一样。差异主要在Crystal不允许同一变量在不同位置持有不同类型(通过Union Type处理),以及部分Ruby的动态特性受限。
Crystal用LLVM后端编译为原生二进制,性能和Go/Rust在同一数量级,比Ruby快100-1000倍是常见的基准测试结果。内置绿色线程(Fiber)和Channel并发模型,和Go的goroutine/channel概念相似但语法更Ruby风。[1]
Crystal 1.0于2021年发布,API稳定性从此承诺。生态系统相对年轻:Web框架有Kemal和Lucky,ORM有Jennifer,Shards是包管理工具。但第三方库数量和成熟度与Go/Rust/Ruby差距明显,遇到细分领域需求时常常要自己实现或直接调用C库。
对于已经熟悉Ruby的团队,Crystal是在保持代码风格前提下获得编译型语言性能的最低摩擦路径,特别适合性能敏感的命令行工具或内部服务。多线程支持在1.x版本才逐步稳定,并行执行需要特定标志。

| 类型 | 静态类型(类型推断)、编译型(LLVM) |
| 发布年份 | 2014年(公开)、2021年(1.0) |
| 开发者 | Ary Borenszweig、Juan Wajnerman等 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧