前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从 Go 开发者的角度看 Elixir 的设计思想

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

作者头像
时见疏星
发布2018-06-01 11:01:29
1.1K0
发布2018-06-01 11:01:29
举报
文章被收录于专栏:星流全栈星流全栈

英文原文: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,它就是它自己。」

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-02-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 星流全栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档