起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > 为何使用Crystal语言 来看看使用Crystal语言的11个理由

为何使用Crystal语言 来看看使用Crystal语言的11个理由

时间:2018-07-06 09:05:40来源:编程网 作者:IT培训网 已有: 名学员访问该课程

  快捷搜索:Crystal语言

前言:为什么会是Crystal而不是其他语言?没有其他语言可以将所有这些放在一起(编译时宏、静态类型、C的速度、Ruby的语法、包管理系统、本地二进制编译、Fiber和跨平台支持)。在这方面,Crystal将会像Rust(它最近已经受到大量的关注)一样值得关注。

为什么说Crystal是2018年最有前景的编程语言,如何使用Crystal语言,使用Crystal语言的方式是什么什么是Crystal语言,Crystal语言真的是2018年最有前景的编程语言吗?

在多年前很多开发人员集思广议 “我们如何使用Ruby类似的语法达到C的执行效率,通用性,以及像C/C++一样可以编译成任何平台的本地二进制文件且具有高级语言的特性,比如丰富的标准库,fiber支持等等”,若干年之后的今天这个梦想终于在Csystal编程语言上得到实现。

下面我将举例说明为什么会是Crystal,而不是像Javascript,Elixir,Rust,Ruby,Python,或Go

为何使用Crystal语言 来看看使用Crystal语言的11个理由_www.epx365.cn

crystal-lang

无可挑剔:“飞快如C,灵巧似Ruby”

Crystal的主要的魅力在于打破了优雅易用的动态语言(像Ruby和Python)跟效率为先的底层系统语言C/C++ 它们之间界线。到目前为止你经常在开发中需要做出选择:编写难读,难调试但是高效如C/C++的代码 或者使用Ruby/Python编写一个同样功能的代码,但是速度慢、耗内存。 换句话说你需要在性能和开发效率之间做选择。由于在Ruby/Python中开发MVP比在C/C中容易得多,在过去的18年中,SaaS公司无论是大还是小,都倾向接受动态语言,并将额外的性能开销作为不可避免的业务成本。然而使用Crystal,你可以完成所有你在Ruby/Python中所做的事情,但是拥有根本地C/C++二进制程序一样的速度和系统开销。

使用Crystal语言的11个理由

性能。Crystal是静态编译语言,基于LLVM框架。Crystal是 “没有分号的速度”。

语法。像许多解释型语言一样,Crystal以一种可读和美观的方式尽量使你少写代码。Crystal有时被宣传为类似于Rust,但更容易读写。

Fibers。在C/C++世界中,你不能轻易得到的东西是Fibers。实现Fiber可以让你绕过回调地狱(nodejs在没有promise化时,node标准库至今都没有promise化),并使编写游戏/ UI循环、事件、异步和同步IO等变得更容易。

静态类型。Crystal是一种静态类型的语言,意味着每个变量都有一个或多个潜在类型,它们需要在编译时计算出来。Ruby/Python是动态类型的,因此很难优化Ruby/Python代码。通过执行静态类型,Crystal排除了大量与类型相关的错误,为优化和静态编译铺平了道路。更好的是,Crystal编译器只需在语法不明确的情况下明确指定类型,通常不需要直接指定类型。

宏。在C/C++领域中,如果不使用非常陈旧的语法写出一些令人困惑的宏,将很难用静态的方式做一些事情。Crystal允许在编写宏时,使用大量的语言,这样你就可以在静态编译语言中做一些通常不可能发生的疯狂的事情。

动态地定义方法*。有人害怕使用Crystal,因为它是一种编译语言,他们不能动态地定义方法,但是宏让你在编译时做到这一点。

NIL/NULL相关错误是不可能的。Crystal编译器将NIL视为类型,并在与可能为零的对象交互之前强制执行显式NIL检查。

shards。跟Ruby中的包管理系统和其他语言(例如node npm)的包一样。它们非常易于安装和维护,并可以通过静态链接直接编译到二进制可执行文件中。无论使用多少shards,你都会得到一个单独可执行文件。

日趋流行。这意味着会有更多的shards包、更多新功能的实现 以及更快的bug修复时间。最近,Crystal在短短第六十个月内从Tiobe指数上升到了第三十二位。没有其他现代编程语言在这么短的时间内经历了如此高的增长率。

跨平台支持。目前Linux和OSX上已经支持,Windows还需要点时间。QT和LibUI都已经完成支持。

Web框架。Amber,最流行的基于Crystal的Web框架,类似于Rails。比Rails快N个数量级。还有像Kemal等多个适合API开发的轻量级框架, “slick as Ruby, faster than golang”。

为什么会是Crystal而不是其他语言?

没有其他语言可以将所有这些放在一起(编译时宏、静态类型、C的速度、Ruby的语法、包管理系统、本地二进制编译、Fiber和跨平台支持)。在这方面,Crystal将会像Rust(它最近已经受到大量的关注)一样值得关注,并且它是Crystal最接近的语言,它的作用是作为C++替代者。

最后,一些局限性

在编写本文时Crystal尚有的主要局限性是:

Windows支持尚未完成(但将很快支持 )

没有并行性,除非您链接到并行的C代码(并发性完全由Fiber模型支持)。所谓的GO风格并行性即将实现,并且已经在测试分支中工作。

因为还没有发布1.x版本,语言尚未稳定,偶尔会有一些小的变化。

Crystal是一个很有魔性的语言,在我们的项目中已经小规模的在使用。我们静待它的1.x版本到来吧。

文章出自:http://qh.itpxw.cn/peixun/software/201841185.html

文章标题:为何使用Crystal语言 来看看使用Crystal语言的11个理由



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:IT培训网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容