写点什么

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

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

关注

评论

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

【6.24-7.1】写作社区精彩技术博文回顾

InfoQ写作社区官方

优质创作周报

透过华为军团看科技之变(六):智慧公路

脑极体

实例讲解将Graph Explorer搬上JupyterLab

华为云开发者联盟

人工智能 GES

使用环信提供的uni-app Demo,快速实现一对一单聊

环信

即时通讯 uni-app集成 环信im

4. 对象映射 - Mapping.Mapstercover

MASA技术团队

C# .net 微软 框架 Framework

【直播回顾】战码先锋首期8节直播完美落幕,下期敬请期待!

OpenHarmony开发者

Open Harmony

重磅披露!上百个重要信息系统被入侵,主机成为重点攻击目标

青藤云安全

网络安全 网络攻击防御

linux下清理系统缓存并释放内存

入门小站

Linux

毕业季 | 华为专家亲授面试秘诀:如何拿到大厂高薪offer?

华为云开发者联盟

面试 工作 offer 大厂 毕业

华为云专家详解GaussDB(for MySQL)新特性

华为云开发者联盟

数据库 云计算 后端 算子

AirServer2022最新版功能介绍及下载

茶色酒

AirServer AirServer2022

博睿数据一体化智能可观测平台入选中国信通院2022年“云原生产品名录”

博睿数据

智能运维 博睿数据 One 智能可观测平台

云服务器ECS夏日省钱秘籍,这次@老用户快来领走

阿里云弹性计算

阿里云 云服务器ECS

如何使用物联网低代码平台进行个人设置?

AIRIOT

低代码 物联网 低代码,项目开发

微服务服务稳定性治理

阿泽🧸

微服务治理 7月月更

Windows11 ARM版本安装Python环境

IT蜗壳-Tango

IT蜗壳教学 7月月更

云小课|3种常用Git工作流推荐

华为云开发者联盟

后端 开发 华为云

精耕渠道共谋发展 福昕携手伟仕佳杰开展新产品培训大会

联营汇聚

vue-axios(三)

小恺

7月月更

6月刊 | AntDB数据库参与编写《数据库发展研究报告》 亮相信创产业榜单

亚信AntDB数据库

数据库 AntDB 国产数据库

越来越多地使用 SLO 来实现可观测性|DevOps

观测云

可观测性

认识线程

zarmnosaj

7月月更

BlocProvider 为什么感觉和 Provider 很相似?

岛上码农

flutter ios 安卓 移动端开发 7月月更

若干互联网暴露面的收敛及处置建议

穿过生命散发芬芳

7月月更 互联网暴露

九章云极DataCanvas公司蝉联中国机器学习平台市场TOP 3

九章云极DataCanvas

从零开始学 MySQL —数据库和数据表操作

C++后台开发

MySQL 数据库 中间件 后端开发 C++开发

宝,运维100+服务器很头疼怎么办?用行云管家!

行云管家

云计算 运维 服务器 云管

毕业总结

流火

混沌工程平台 ChaosBlade-Box 新版重磅发布

阿里巴巴云原生

阿里云 分布式 云原生 混沌工程

架构师毕业总结

凯博无线

纪念成为首个DAYU200三方demo贡献者

坚果

HarmonyOS OpenHarmony OpenHarmony应用开发 7月月更 harmony

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