BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Elixir 1.2带来多项功能增强和性能提升

| 作者 James Chesters 关注 1 他的粉丝 ,译者 谢丽 关注 10 他的粉丝 发布于 2016年1月8日. 估计阅读时间: 5 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

José Valim宣布Elixir这门动态、函数式编程语言的1.2版本。

Valim是Elixir的创建者。他表示,1.2版本“带来了功能增强、Bug修复、性能提升等等”。同时,他还指出,该版本需要Erlang 18及以上版本。

在宣布Elixir 1.2发布的博文中,Valim列出了该版本对这门语言所做的若干值得注意的改进。这些改进包括增加了多aliases/imports/require语法,映射键支持变量,在映射键和函数子句中支持“销(pin)”操作符,增加with的特殊形式,用于多表达式匹配,将下面的代码:

case File.read("my_file.ex") do
  {:ok, contents} ->
    case Code.eval_string(contents) do
      {res, _binding} ->
        {:ok, res}
      error ->
        error
  error -> error
    error
end

替换为下列更为简洁的形式:

with {:ok, contents} <- File.read("my_file.ex"),
     {res, binding} <- Code.eval_string(contents),
     do: {:ok, res}

Elixir工作流的改进包括使“综合(umbrella)”应用程序具备了共享构建和配置文件的能力,Valim指出,这样做的目的是在综合项目中“极大地缩短编译时间”。通过向每个综合应用程序的mix.exs文件增加如下配置信息即可实现共享目的:

build_path: "../../_build",
config_path: "../../config/config.exs",

Valim继续写道,“Mix现在默认会自动合并协议,而且,我们现在可以并行合并及缓存合并结果,从而在所有的环境中都能提供最好的性能,而又不影响编译时间”。

Elixir 1.2还提供了一个试验性特性,就是开发人员可以选择允许Mix获取和编译Rebar 3依赖。

在Hacker News上,在有关Elixir 1.2发布的讨论中,针对此次发布和Elixir的观点一般来说都是正面的,这使得用户cxz评论说:

我很期待从更有经验的人那里听到一些批评、负面体验和缺点。这里的观点100%都是正面的、表扬性的,这在HN上是非常不正常的。

尽管如此,最初的观点始终还是正面的,用户elteto评论道,“以我的经验来看,这种正面性并不是没有道理的,Elixir是一门非常优秀的、年轻的语言,它有一个给力的社区(像大多数新语言那样)。”

唯一一点批评的信号来自用户gleb,他在评论中指出了一些小“问题”,如下:

唯一真正让我担心的问题是Ecto及它同Phoenix的集成。那让简单的事情变得困难,让困难的事情变得不可能。
更主要的是,我不觉得Phoenix像Rails那样是“从一个生产环境中的Web应用提炼而来”。对于Rails,你知道至少有一个应用Basecamp运行在它上面。对于Phoenix,我就不敢说了。这只是一个非常初步的看法,但第一印象很重要。

José Valim以行动彰显了社区的名誉,他亲自回复了gleb,表示“愿意听取更多关于Ecto/Phoenix集成的信息,什么让他觉得困难以及什么让他觉得不可能,”并邀请该用户给他发电子邮件。

要了解更多有关Elixir 1.2的信息,请查看变更日志。Elixir遵循Apache 2许可协议。希望为这门语言做贡献的InfoQ读者,可以查看CODE_OF_CONDUCT.mdCONTRIBUTING.md这两份指南来了解更多信息。

查看英文原文:Elixir 1.2 Brings Enhancements, Performance Improvements


感谢谢丽对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者(已满),InfoQ读者交流群(#2)InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT