像 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 重写的时候只需要进行少量修改便能成功移植。

- 语法类似 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

结语
- https://github.com/crystal-lang/crystal/pulls 
- https://crystal-lang.org/2021/03/22/crystal-1.0-what-to-expect.html 
☞自由软件之父回归 FSF,遭 1933 人、21 家组织联名抵制!
[广告]赞助链接:
                        关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
                        让资讯触达的更精准有趣:https://www.0xu.cn/
                    
 关注KnowSafe微信公众号
            关注KnowSafe微信公众号随时掌握互联网精彩
- coolmonitor高颜值的监控工具,支持网站、接口、证书过期、TCP端口、MySQL/Redis数据库等多种监控
- 唐僧叨叨国产开源的IM即时通讯系统
- 《即刻说》第4期 | 企业要积极参与到人才培养之中来-对话安恒信息副总裁吴鸣旦
- 下午14:00!跨境支付安全防御直播专场
- 乔布斯女儿嘲讽iPhone 14没新意;高德打车AR实景找车功能上线;Go语言报告:错误处理仍然是个挑战|极客头条
- 《安卓高级研修班》推出【看雪安卓应用安全能力认证】证书
- 你身上有哪些隐藏标签?
- 价值近一亿美元,Harmony巨额加密货币资产失窃
- “一次编写,运行各端”,高通重磅发布 AI 软件栈!
- MWC 2022|邀您共同点亮未来
- 腾讯59人被反舞弊调查处理;致全国断网超1小时,韩国电信正式道歉;微软 Edge 95发布|极客头条
- DigiCert推出CertCentral,实现无障碍的代码签名和私钥管理




 
                 
             
             
            
 
        
 
        
