写点什么

Elixir:可能成为下一代 Web 开发语言

  • 2015-04-28
  • 本文字数:1204 字

    阅读完需:约 4 分钟

Elixir 是一种动态函数式语言,设计用于构建可扩展、可维护的应用程序。 Lau Taarnskov 是一名有着 20 多年 Web 软件开发经验的开发人员。他认为,Elixir 将会对 Web 开发领域产生重大影响。近日,他在个人博客上阐述了这一观点。

他从2003 年开始使用Ruby,那会它还不是很流行。但Web 框架Rails 的出现改变了那种局面。这对高效的Web 开发组合使Ruby 用户迅速增加,并成为初创企业的默认选项。Twitter 就是其中一家。不过,在2009 年经历了用户和流量的迅猛增长后,Twitter 决定将基础设施核心部分由Ruby 切换到Scala,因为后者处理并发的方式可以使他们更容易应对这种增长。

Erlang 也是一门函数式语言。它有着更长的处理大规模并发的历史,并且支持热插拔,即允许在软件运行时更新软件。在许多其它平台上,在一台机器上处理多于1 万的并发连接就被看作挑战,但Whatapps 单台服务器就可以处理200 多万并发连接,这是由Erlang 控制的。许多多人游戏的服务器基础设施也是由Erlang 控制的。Erlang 平台有许多优势,可以提供既可靠又可扩展的互联网应用程序。但它没能在Web 开发中变得更受欢迎,这可能是因为,对于习惯使用C、Java、JavaScript、PHP、Ruby、Perl 等语言的开发人员而言,Erlang 的语法看上去有点奇怪。同时,像程序包管理、构建工具、元数据编程、Unicode 处理机制及Web 框架也不像Ruby 那么直观。

Elixir 解决了上面提到过的所有问题。它有自己的程序包管理系统、宏命令、易于使用的构建工具和 Unicode 处理机制。它运行在 Erlang VM 上,可以利用后者的所有优点,而开发人员可以使用现有的 Erlang 库,并且没有性能损失。并且,它还增加了一些美妙的语法,如管道操作符就是其中一例。此外,Lau 认为,Elixir 有以下几个方面的优势:

  • 不可变性:函数式编程和不可变性使代码更清晰更易于理解。
  • 并发:在 Erlang 或 Elixir 中实现并发与在其它语言中实现并发相比,有点像在 Git 中实现分支与在 Subversion 中实现分支,前者比后者要简单许多。
  • Web 框架: Phoenix 是最流行的 Elixir Web 框架,Elixir 创建者是 Rails 的核心成员,Phoenix 创建者也有 Rails 开发背景,这意味着 Phoenix 也简单易用。其中,最令人兴奋的特性是实时功能,每个网站访问者都在服务器上有自己的进程和实时连接。
  • 程序员幸福感和漂亮的代码:Elixir 使开发人员可以快速写出简洁的代码,而且易于维护。

总之,Elixir 具有 Erlang 的所有优点(如性能和可靠性),同时又兼具 Ruby 的高效。因此,Lau 得出结论,Elixir 平台要远远优于其它解决方案,将会成为 Web 开发领域的热门语言。Dave Thomas 同他有类似看法,他写了一本关于 Elixir 编程的书


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。

2015-04-28 06:5116200
用户头像

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

关注

评论

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

Frp流量隐匿对抗排查

领创集团Advance Intelligence Group

内网渗透 Frp 流量编排

华为云数据库GaussDB(for Redis),如何为人们日常生活保驾护航

科技怪授

数据库

华为云CDN引领网站性能优化,助力企业更好发展

科技怪授

CDN

企业优秀网络环境,为何离不开华为云CDN全站加速服务?

科技怪授

CDN

华为云数据库,安全、专业,值得信赖

与时俱进的时代

本地数据怎么备份上云?华为云对象存储服务OBS帮你实现

科技说

教你3步完成阿里云物联网平台公共实例到企业实例的迁移——实践类

阿里云AIoT

安全 物联网 物联网安全 技术标签

闲话 dubbogo 社区

阿里巴巴中间件

阿里云 云原生 dubbo

一文读懂Go Http Server原理

捉虫大师

Go HTTP 1月月更

华为云大数据赋能北港集团发展创新,数字化转型成效显著!

IT科技苏辞

企业如何轻松上云?华为云弹性云服务器ECS给出答案

IT科技苏辞

EMQX在Kubernetes中如何进行优雅升级

EMQ映云科技

运维 物联网 IoT 节点 企业号 1 月 PK 榜

EfficientFormer 提升速度的同时保持性能,使 ViT 在移动端成为可能

Zilliz

华为云大数据解决方案赋能金融行业发展,打造5G智慧银行营业厅

IT科技苏辞

华为云云原生数据库,激发数据活力

与时俱进的时代

华为云OBS对象存储,企业存储的好帮手

科技说

ScrollView(滚动条)

芯动大师

android ScrollView(滚动条) 滚动效果

嗨 Jina,帮我画一幅高山流水图

Jina AI

图像生成 Diffusion

dcm4che 依赖下载异常

JefferLiu

【深入浅出Seata原理及实战】「入门基础专题」带你透析认识Seata分布式事务服务的原理和流程(1)

码界西柚

分布式事务 seata Alibaba SpringCloud Alibaba Seata框架

软件测试/测试开发 | Jenkins 多任务关联

测试人

软件测试 持续集成 jenkins 自动化测试 测试开发

雄关漫道真如铁,而今迈步从头越 | 挥别2022,再战2023!

BoCloud博云

博云

深入思考 Schema 管理的几个基本问题

观远数据

拿下中国信通院多项测评的华为云数据库,究竟有多牛?

与时俱进的时代

今年大促季,阿里云容器服务有哪些技术和应用新突破?

阿里巴巴中间件

阿里云 容器 云原生

使用 WebP 图像加速WEB加载

devpoint

Web 前端开发 网站优化 WebP

华为云ECS,专为您打造安全、灵活、高效的应用环境

与时俱进的时代

华为云OBS助力企业解决数据存储难题

科技说

万字技术干货 |YMatrix 高性能时序数据库引擎的技术实践

YMatrix 超融合数据库

性能优化 Clickhouse 时序数据 超融合数据库 YMatrix

华为云数字化解决方案激活企业市场空间,为企业稳健发展再加码!

IT科技苏辞

扩展接口SmartInstantiationAwareBeanPostProcessor解析

石臻臻的杂货铺

接口

Elixir:可能成为下一代Web开发语言_Ruby_谢丽_InfoQ精选文章