写点什么

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

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

关注

评论

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

【第七在线】新品上市与清仓计划:商品计划的关键策略

第七在线

【第七在线】服装企业的商品计划策略:提高销售和库存管理的关键

第七在线

1688商品列表数据接口(1688.item_search)

tbapi

1688商品列表接口 1688商品数据接口 关键词搜索1688商品接口 1688商品数据采集接口 1688API

使用阿里云性能测试工具 JMeter 场景压测 RocketMQ 最佳实践

阿里巴巴云原生

阿里云 云原生 可观测

Java多线程系列7:JDK包中的管程实现

BigBang!

Java多线程

精彩回顾 | 《国产数据库共话未来趋势》技术沙龙成功举办!

阿里云数据库开源

数据库 阿里云 开源社区 polarDB 线下沙龙

金融行业核心系统最佳搭档|如何基于PolarDB分布式版打造两地三中心架构?

阿里云瑶池数据库

金融行业 阿里云; 阿里云瑶池数据库

浅析 ArrayList

不在线第一只蜗牛

Java 开发语言

加强用户教育和培训,提高用户对淘宝商品详情API的认知度和使用率

技术冰糖葫芦

API 接口

Gemini自曝中文用百度文心一言训练,网友看呆:大公司互薅羊毛??

Openlab_cosmoplat

Seata:打造行业首个分布式事务产品

阿里巴巴云原生

阿里云 云原生 dubbo

【第七在线】服装企业商品部关注的关键问题与解决策略

第七在线

【第七在线】国际市场扩张与商品计划:跨越地域的挑战与机会

第七在线

从学到考,一图带你读懂开发者技能成长秘籍

亚马逊云科技 (Amazon Web Services)

Amazon

2023-12-20:用go语言,给定一个数组arr,长度为n,在其中要选两个不相交的子数组。 两个子数组的累加和都要是T,返回所有满足情况中,两个子数组长度之和最小是多少? 如果没有有效方法,返回-

福大大架构师每日一题

福大大架构师每日一题

使用 Amazon Fault Injection Service 演示多区域和多可用区应用程序弹性

亚马逊云科技 (Amazon Web Services)

S3 Amazon EC2 Amazon RDS Amazon DynamoDB Amazon ECS

拐点已至?2023中国企业数智化应用年度洞察

B Impact

从一份IDC行业报告,解开智慧园区的“达·芬奇密码”

脑极体

AI 数字园区

每日一题:LeetCode-240. 搜索二维矩阵 II

Geek_4z9ami

Go 面试 算法 矩阵 LeetCode

数据可视化:数据仪表盘的定义及设计

2D3D前端可视化开发

大数据 数据分析 数据可视化 可视化图表 数据仪表盘

学会使用 FastAPI 轻松实现定时任务与调度

Apifox

微服务 定时任务 后端 FastApi

http代理错误代码表(详细列表)

巨量HTTP

代理IP IP地址 http代理

盘点超好用的 6 款低代码开发平台

伤感汤姆布利柏

低代码 JNPF

智能高效|AIRIOT智慧货运管理解决方案

AIRIOT

物联网 智慧货运 智慧系统

软件测试/测试开发|selenium NoSuchDriverException问题解决

霍格沃兹测试开发学社

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