OceaBase开发者大会落地上海!4月20日共同探索数据库前沿趋势!报名戳 了解详情
写点什么

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

  • 2016-01-07
  • 本文字数:2112 字

    阅读完需:约 7 分钟

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}
<p>Elixir 工作流的改进包括使“综合(umbrella)”应用程序具备了共享构建和配置文件的能力,Valim 指出,这样做的目的是在综合项目中“极大地缩短编译时间”。通过向每个综合应用程序的 <code>mix.exs</code> 文件增加如下配置信息即可实现共享目的:</p>
build_path: "../../_build",
config_path: "../../config/config.exs",
<p>Valim 继续写道,“Mix 现在默认会自动合并协议,而且,我们现在可以并行合并及缓存合并结果,从而在所有的环境中都能提供最好的性能,而又不影响编译时间”。</p>
<p>Elixir 1.2 还提供了一个试验性特性,就是开发人员可以选择允许 Mix 获取和编译 Rebar 3 依赖。</p>
<p> 在 Hacker News 上,在有关 <a href="https://news.ycombinator.com/item?id=10821679">Elixir 1.2 发布 </a> 的讨论中,针对此次发布和 Elixir 的观点一般来说都是正面的,这使得用户 <a href="https://news.ycombinator.com/item?id=10823116">cxz</a> 评论说:</p>
<blockquote>
<p> 我很期待从更有经验的人那里听到一些批评、负面体验和缺点。这里的观点 100% 都是正面的、表扬性的,这在 HN 上是非常不正常的。</p>
</blockquote>
<p> 尽管如此,最初的观点始终还是正面的,用户 <a href="https://news.ycombinator.com/item?id=10823204">elteto</a> 评论道,“以我的经验来看,这种正面性并不是没有道理的,Elixir 是一门非常优秀的、年轻的语言,它有一个给力的社区(像大多数新语言那样)。”</p>
<p> 唯一一点批评的信号来自用户 <a href="https://news.ycombinator.com/item?id=10824341">gleb</a>,他在评论中指出了一些小“问题”,如下:</p>
<blockquote>
<p> 唯一真正让我担心的问题是 Ecto 及它同 Phoenix 的集成。那让简单的事情变得困难,让困难的事情变得不可能。
<br></br> 更主要的是,我不觉得 Phoenix 像 Rails 那样是“从一个生产环境中的 Web 应用提炼而来”。对于 Rails,你知道至少有一个应用 Basecamp 运行在它上面。对于 Phoenix,我就不敢说了。这只是一个非常初步的看法,但第一印象很重要。</p>
</blockquote>
<p>José Valim 以行动彰显了社区的名誉,他 <a href="https://news.ycombinator.com/item?id=10825786"> 亲自回复了 gleb</a>,表示“愿意听取更多关于 Ecto/Phoenix 集成的信息,什么让他觉得困难以及什么让他觉得不可能,”并邀请该用户给他发电子邮件。</p>
<p> 要了解更多有关 Elixir 1.2 的信息,请查看 <a href="https://github.com/elixir-lang/elixir/blob/v1.2.0/CHANGELOG.md"> 变更日志 </a>。Elixir 遵循 Apache 2 许可协议。希望为这门语言做贡献的 InfoQ 读者,可以查看 <a href="https://github.com/elixir-lang/elixir/blob/v1.2.0/CODE_OF_CONDUCT.md">CODE_OF_CONDUCT.md</a><a href="https://github.com/elixir-lang/elixir/blob/v1.2.0/CONTRIBUTING.md">CONTRIBUTING.md</a> 这两份指南来了解更多信息。</p>
<p><strong> 查看英文原文:</strong><a href="http://www.infoq.com/news/2016/01/elixir-12" title="http://www.infoq.com/news/2016/01/elixir-12">Elixir 1.2 Brings Enhancements, Performance Improvements</a></p>
<hr></hr><p> 感谢 <a href="http://www.infoq.com/cn/author/%E8%B0%A2%E4%B8%BD"> 谢丽 </a> 对本文的审校。</p>
<p> 给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 <a href="mailto:editors@cn.infoq.com">editors@cn.infoq.com</a>。也欢迎大家通过新浪微博(<a href="http://www.weibo.com/infoqchina">@InfoQ</a><a href="http://weibo.com/u/1451714913">@丁晓昀 </a>),微信(微信号:<a href="http://weixin.sogou.com/gzh?openid=oIWsFt0HnZ93MfLi3pW2ggVJFRxY">InfoQChina</a>)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群 <a href="http://shang.qq.com/wpa/qunwpa?idkey=cc82a73d7522f0090aa3cbb6a8f4bdafa8b82177f481014c976a8740d927997a" target="_blank"><img src="https://static001.infoq.cn/resource/image/06/9f/06e1fec4a87eca3142d54d09844c629f.png"></img></a>(已满),InfoQ 读者交流群(#2)<a href="http://shang.qq.com/wpa/qunwpa?idkey=7fbcba68eeac78cb6eb76751b8ba1b23ba970ac342dd32ffc2e57b7bed9cc85a" target="_blank"><img src="https://static001.infoq.cn/resource/image/06/9f/06e1fec4a87eca3142d54d09844c629f.png"></img></a>)。</p>
2016-01-07 18:002410
用户头像

发布了 1008 篇内容, 共 373.8 次阅读, 收获喜欢 340 次。

关注

评论

发布
暂无评论
发现更多内容

凡泰极客与Rancher达成深度战略合作,加速企业构建私有化小程序生态

FinClip

关于显性知识和隐性知识

Tanmer

知识管理 知识产权

案例分享丨红外自动感应门设计与实现详解

华为云开发者联盟

物联网 传感器 感应探测器 SMT32处理器 感应门

深圳泰利能源有限公司涉嫌传销 共计2.7亿元

CECBC

区块链 基金

读懂k8s 容器编排控制器 Deployment

Garfield

k8s pod k8s入门

数字货币交易平台源码,数字货币交易所开发核心功能

13530558032

【Spring Boot系列】之多种依赖集成方式

语霖

2020-08-29-第十二周学习总结

路易斯李李李

LeetCode题解:155. 最小栈,单个栈存储入栈元素与最小值之差,JavaScript,详细注释

Lee Chen

大前端 LeetCode

华为云FusionInsight大数据技术普惠创新,释放千行百业数据价值

数据湖洞见

大数据 FusionInsight 华为云

从 Node.js(JavaScript) 到 Golang,我的开发体验

Garfield

node.js Go 语言

区块链助力军事人力资源配置

CECBC

区块链 军事

kubernetes node affinity 写法

Geek_f24c45

Kubernetes

XSKY对象存储获全球备份领域领导者Commvault官方认证

XSKY星辰天合

数字资产钱包开发,数字加密货币app搭建

13530558032

区块链支付新模式开发,USDT支付系统搭建

13530558032

Spring Bean处理器

语霖

Spring Framework

人的转型才是关键 数字化时代你具备数字领导力么

CECBC

区块链 数字化时代

大数据应用场景

dongge

3种双集群系统方案设计模式详解

华为云开发者联盟

数据库 数据仓库 数据 双集群系统 双ETL模式

你问我答:现有的应用有必要做微服务改造吗?

BoCloud博云

容器 DevOps 微服务 云平台 博云

FlinkX 如何读取和写入 Clickhouse?

Apache Flink

flink

云算力挖矿平台APP,算力挖矿建设开发

13530558032

技术分享:即构互动白板音视频同步、多端有序协作技术实践

ZEGO即构

音视频 在线教育 SVG

融云Geek Online 2020 编程挑战赛重磅来袭

InfoQ_967a83c6d0d7

某程序员毕业进UC,被阿里收购!跳去优酷土豆,又被阿里收购!再跳去饿了么,还被阿里收购!难道阿里想收购的是他?

程序员生活志

职场 阿里

架构师训练营 -- 第 12 周作业

stardust20

Week 12 命题作业

Jeremy

架构设计开学第一天

escray

学习 从零开始学架构 架构师预科班

2020-08-29-第十二周作业

路易斯李李李

42图揭秘,「后端技术学些啥」

我是程序员小贱

Elixir 1.2带来多项功能增强和性能提升_后端_James Chesters_InfoQ精选文章