C 一样快,Ruby 般丝滑的 Crystal 发布 1.0 版本,你看好吗?
整理 | 寇雪芹
头图 | 下载于视觉中国
出品 | AI科技大本营(ID:rgznai100)
近日,编程语言 Crystal 发布了 1.0 版本。
Crystal 是一种通用的、面向对象的编程语言,其语法受到 Ruby 语言的启发,具有静态类型检查功能,一般不需要指定变量或方法参数的类型,可实现接近 C/C++ 的性能。
像C一样快,Ruby般丝滑
Crystal 的标语是“Fast as C, Slick as Ruby”, 翻译过来的意思是“像C一样快,Ruby般丝滑”。作为一门基于 LLVM 的可编译的静态类型语言,Crystal 的整体设计很接近 Ruby 的体验,语法与各种标准库的接口也都几乎和 Ruby 一样。
Crystal 利用了工具链中内置的所有优化,它的类型检查系统在编译期间可以捕获类型错误,从而避免运行时的错误。由于它具有内置的类型推断功能,大多数类型注释都是不必要的,代码也因此更加整洁、易于阅读。
另外,空引用检查、宏系统和 C 绑定等功能让 Crystal 成为一种功能强大且易于使用的语言,其中最突出的是 Crystal 完善的 C 绑定,而 C 库的成熟度和高性能大大弥补了 Crystal 自身语言的生态不足。
Crystal 提供了指针、结构体和函数、以及和 C 相同的枚举。开发者能够在不写一行 C 代码的情况下无缝使用 C 的库,只需要将 C 库中所需的函数的签名在 Crystal 中定义,类型上有 Crystal 提供的对应版本,或者通过重写方法让自己的类型对应 C 库中的类型。
Crystal 由一群热爱 Ruby 的人创建,开发团队喜欢 Ruby 编写代码的效率,又倾心于 C 语言的性能。因此,早期的 Crystal 高度兼容 Ruby 语法和语义,编译器用 Crystal 重写的时候只需要进行少量修改便能成功移植。
Crystal 的语言特性:
语法类似 Ruby
无需指定变量类型和方法参数类型
可以调用 C 代码
编译时代码模拟和生成
编译成高效的本机代码
示例代码:
# Compute prime numbers up to 100 with the Sieve of Eratosthenes
max = 100
sieve = Array.new(max + 1, true)
sieve[0] = false
sieve[1] = false
(2...max).each do |i|
if sieve[i]
(2 * i).step(max, i) do |j|
sieve[j] = false
end
end
end
sieve.each_with_index do |prime, number|
puts number if prime
end
结语
Crystal 类似 Ruby 的语法、无需指定变量类型和方法参数类型、C 代码调用便捷高效……基于这些突出的语言特性,Crystal 被多数用户喜爱,但其发展速度也明显比粉丝的期待慢。
你看好 Crystal 吗,
#欢迎来评论区聊聊#
查看 1.0 版本更新内容,请点击参考链接:
https://www.oschina.net/news/134210/crystal-1-0-released
https://www.zhihu.com/question/33311554/answer/638764349
更多精彩推荐
☞百度香港二次上市,12 岁开发者、AI 机器人同台敲响“芯片代码锣”
☞GitLab 在中国成立公司极狐,GitHub 还会远吗?
☞又一个Jupyter神器,操作Excel自动生成Python代码
点分享 点收藏 点点赞 点在看
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- 1 习近平拉美之行的三个“一” 7952159
- 2 微信或史诗级“瘦身” 内存有救了 7980291
- 3 俄神秘导弹首现战场 普京:无法拦截 7830965
- 4 中国主张成为G20峰会的一抹亮色 7761230
- 5 男子求助如何打开亡父遗留14年手机 7618170
- 6 中国对日本等国试行免签 7538263
- 7 女生半裸遭男保洁刷卡闯入 酒店回应 7413307
- 8 7万余件儿童羽绒服里没有真羽绒 7334434
- 9 70多辆小米SU7同一天撞墙撞柱 7209131
- 10 千年古镇“因网而变、因数而兴” 7124723