用Ruby语法发布1.0的C型Crystal语言

2021-04-03 03:06:21

InfoQ主页新闻Crystal语言瞄准C Ruby Syntax发布1.0

Crystal,一种新的面向对象编译的系统编程语言,旨在融合Ruby的简洁和友好性,最近发布了它的第一个主要版本。 Crystal 1.0具有靠近Ruby的语法,并具有静态推断的类型,C绑定和宏。水晶可能会吸引带红宝石/轨道的开发人员,Elixir / Phoenix背景。

我们希望编译器了解我们的意思,而无需在任何地方指定类型。

哦,我们不想编写C代码以使代码更快运行。

虽然与Ruby完全兼容作为非目标,但Crystal有类似于Ruby的语法。 Fibonnaci函数可以用晶体写入如下:

def fibonacci(n:uint64) 如果n< = 1,则返回1_u64 FIB(n - 1)+ fib(n - 2) 结尾 放fib(46)

使用引擎盖下的LLVM Crystal编译到原生代码。虽然Crystal在其网站上没有在其网站上发布任何基准,但用户社区报告了令人鼓舞的结果,其中一些人对黑客新闻进行了高度评论。

Crystal中的一切都是一个对象,即,具有类型的实体,它响应某些方法。只能通过调用方法访问在对象中封装在对象中的状态。 Crystal的类型系统允许NULL参考检查,方法(和运算符)过载,联合类型,泛型,枚举,别名,SPLAT,元组等。编译器使用类型推断,以最大限度地减少开发人员以显式写入类型的需求。但是,开发人员可能必须帮助编译器在某些情况下具有类型的注释。显式类型另外可以用作文档,并可以加快显着的编译时间。

Crystal允许开发人员用C绑定重复使用大型现有C生态系统,而无需编写C代码。一个例子如下(假设say_hi_c目录包含包含Hi函数的C对象文件):

Crystal的宏系统简化了代码生成,可用于减少样板。 Crystal目前支持消息驱动的并发(通过通道通信的光纤)但不是并行性。在多个核上运行Crystal Runtime的能力在路线图上,以及ARM支持以及Windows上的可用性。建立完全静态链接的可执行文件目前仅支持Alpine Linux。

当谈到编写守护进程和愚蠢的内核等低级系统时,虽然转向C将是最表现的 - 它也需要我很长时间才能实现相对较少,上述眼泪很可能流动。这是晶体进来的地方。

使用Crystal以演示如何在同一方向上创建CryptOckency的另一个开发人员:

为了更好的演示,我想使用Ruby等生产性语言而不会影响性能。加密电机有许多耗时的计算(即挖掘和散列),这就是为什么C ++和Java等汇编语言是建立“真实”加密货币的语言。已经说,我想用一种带有清洁语法的语言,所以我可以保持开发乐趣并允许更好的可读性。无论如何,水晶的性能往往很好。

开发人员可以使用越来越多的Web框架生态系统构建Web应用程序,最值得注意的是琥珀色,幸运和kemal。

水晶语言(最初名叫Joy)起源于2011年,具有与编译语言的速度和型安全相结合Ruby的生产率的原始目标。 第一个官方版本于2014年发布。Crystal 1.0于3月2021年发布。Crystal在Apache许可证版本2.0版下获得许可。 开发人员可以快速尝试使用在线游乐场。 最后一周的内容在InfoQ上举行了每周二发出的。 加入超过250,000多名高级开发人员的社区。 查看一个例子 选择您的国家/地区,我同意infoq.com处理我的数据,如本隐私声明中所述。