飞天发布时刻:2024年 Forrester 公有云平台Wave™评估报告解读 了解详情
写点什么

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:002654
用户头像

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

关注

评论

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

Portraiture2023汉化中文版磨皮滤镜软件下载

茶色酒

Portraiture2023 Portraiture

假如面试官问你Babel的原理该怎么回答

loveX001

JavaScript

坚果的2022年终总结

坚果

年终总结 OpenHarmony

了解下 Rust 的所有权机制

ooooooh灰灰

rust 后端 编译

自己手写一个redux

helloworld1024fd

JavaScript

令人头秃的js隐式转换面试题,你能做对吗

loveX001

JavaScript

CorelDRAW2023最新绿色免费版矢量图形处理软件

茶色酒

CorelDraw2023 CorelDraw

滴滴前端一面高频vue面试题及答案

bb_xiaxia1998

Vue

面试官:能用JavaScript手写一个bind函数吗

helloworld1024fd

JavaScript

2023前端必会手写面试题整理

helloworld1024fd

JavaScript

CleanMyMacX2023永久版Mac系统清理软件

茶色酒

CleanMyMac CleanMyMac X CleanMyMac X2023

勿以善小而不为,让AI成为温柔的力量

wood

AI 烟火气 温柔

阿里前端二面必会react面试题总结

beifeng1996

React

TorchDynamo初探:Python ByteCode的动态修改

OneFlow

人工智能 深度学习 TorchDynamo

LinearLayout(线性布局)

芯动大师

Android Studio android布局 LinearLayout weight属性

字节前端必会react面试题

beifeng1996

React

2022年后疫情时代旅游业发展的新趋势

易观分析

旅游 后疫情时代

从源代码构建TensorFlow流程记录

京东科技开发者

tensorflow GitHub 开源 源代码 企业号 1 月 PK 榜

能够释放大量Mac内存空间的方法教程

茶色酒

CleanMyMac X CleanMyMac X2023

osx安装mpd和ncmpcpp

Geek_pwdeic

macos

那些高级前端是如何回答面试题的

loveX001

JavaScript

vue组件通信6种方式总结(常问知识点)

bb_xiaxia1998

Vue

字节前端高频手写面试题(持续更新中)

helloworld1024fd

JavaScript

模块四-考试试卷存储方案

悟空

存储 考试

前端高频面试题集锦

loveX001

JavaScript

vivo 服务端监控体系建设实践

vivo互联网技术

云原生 监控 可用性 可观测

面试官:说说React-SSR的原理

beifeng1996

React

vue组件通信方式有哪些?

bb_xiaxia1998

Vue

前端二面vue面试题(边面边更)

bb_xiaxia1998

Vue

Java高手速成│实战:应用数据库和GUI开发产品销售管理软件(1)

TiAmo

JDBC GUI 数据库·

面试官:你是怎样进行react组件代码复用的

beifeng1996

React

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