从 Go 开发者的角度看 Elixir 的设计思想

英文原文:Elixir concepts for Go developers

基于 Elixir 的 Web 框架 Phoenix 受到了 Meteor 和 Rails 社区的广泛关注,所以今天我们推荐这篇文章,让大家了解这一新兴语言!

这篇文章不是带你入门的,我只是把玩了一下这个编程语言,也不是什么专家,就把我写的当做一道开胃菜吧。我只是把我几个小时的调研结果汇总一下,以便能够帮助大家花几分钟读完之后再看 Elixir 是否吸引到了你。

本文内容目录如下:

  • Elixir 是什么
  • 弹性的不可变性
  • 模式匹配
  • 原子
  • Processes 与 Goroutines
  • Supervisors
  • 结构体与协议
  • 管线操作符|>
  • 标准库和 OTP
  • Phoenix
  • BEAM
  • 最后的一些看法

这里节选「Elixir 是什么」和「Phoenix」两个章节,点击「阅读原文」查看完整文章!

Elixir 是什么

Elixir 是运行在 Erlang 虚拟机 BEAM 上的一门新兴的编程语言。它完全兼容 Erlang,并且拥有共同的组件,但是它提供了类似 Ruby 的语法以及很多的语法糖。由 Rails 核心贡献者 José Valim 建立,它吸引了很多 Ruby 和 Erlang 的开发人员,并且试图结合 Erlang 的强大以及 Ruby 的编程乐趣。

Phoenix

Phoenix 由另一个 Ruby 使用者 Chris McCord 创建,它是一个高效的 web 框架,目的是成为 Elixir 的 Rails。它充分利用了 Plug 作为其核心的思想,Plug 定义了中间件的实现标准,并且使用 Ecto 作为数据库 ORM 层。它试图借鉴 Rails 专注与生产的特点,但是又不是 Rails 的克隆,而是充分利用了 Elixir/OTP 的特性。它不局限于 web 开发,还内建了一个可以在传输层加入插件的一个 socket 库 Phoenix Channels,并且已经有 JavaScript, Swift, ObjC, C# 和 Java的实现了。

最后以 Elixir 作者 José Valim 对它的评价作为结语:

「我不会将Elixir定义为更好的 Ruby。在 Elixir 之前,我本人的主要语言确实是 Ruby,但是我创建 Elixir 的部分工作/研究的本意是想让其获取更多经验,从而丰富其生态系统。所以我对 Elixir 并没有偏见,不是更好的 Ruby,也不是更好的 Erlang,它就是它自己。」

原文发布于微信公众号 - 星流全栈(MeteorFullStack)

原文发表时间:2016-02-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

XP“退休“ 用户该选择Win 7还是Win 8?

? 微软为Windows XP提供支持已经13年了,4月8日后,Windows XP的技术支持将停止,包括保护PC的自动升级等,同时微软也将停止在其官...

3163
来自专栏小轻论坛

掌握了这些win10操作技巧,你的操作便入无人之境

介绍Win10 的一些使用小技巧,自2015年7月29日Win10 正式发布已经过了有2年了,期间也进行了好几个版本的迭代更新。

1552
来自专栏张善友的专栏

.NET平台微服务项目汇集

3196
来自专栏角落的白板报

【52ABP实战教程】0.0.0 -- ASP.NET CORE系列介绍

为什么是.net core? 记得在半年前.NET CORE刚刚出了1.0,当时有朋友推荐我使用的时候,个人觉得还不成熟。 现在.NET Core已经到了2....

3777
来自专栏大内老A

.NET Core跨平台的奥秘[上篇]:历史的枷锁

微软推出的第一个版本的.NET Framework是一个面向Windows桌面和服务器的基础框架,在此之后,为此微软根据设备自身的需求对.NET Framewo...

2245
来自专栏小狼的世界

Silverlight:正式进入2.0

2008年10月30号,微软正式发布了Silverlight为VS 2008的SP1补丁,我们可以从这里下载:

622
来自专栏张善友的专栏

.NET平台微服务项目汇集

最近博客园出现了一篇文章《微服务时代之2017年五军之战:Net PHP谁先死》,掀起了一波撕逼,作者只是从一个使用者的角度来指点江山,这个姿势是不对的。.NE...

2299
来自专栏landv

vb.net_介绍

2253
来自专栏何俊林

Android TV开发总结(二)构建一个TV Metro界面(仿泰捷视频TV版)

Android TV发展离不开Metro UI,先看最新的泰捷TV的会员区效果,属于电影的Metro风格,如下: ? 什么是Metro UI: Metro的设计...

2907
来自专栏张善友的专栏

.NET和JAVA的跨平台,我们很期望.但是容易吗

    Java最吸引人之处,在于跨平台。而.NET可以看作Java的改良版,囊括Java大部分的优点,所以当然也具有跨平台的潜力。但是认真追究起来,Java和...

2118

扫码关注云+社区

领取腾讯云代金券