写点什么

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

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

关注

评论

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

【技术】MediumKube- 快速部署容器云的开发环境

星环科技

云计算 容器 开发工具 开发环境

提高项目管理效率,技术管理者该怎么做?

万事ONES

项目管理 技术管理 ONES

拥抱开放的英特尔 让PC行业再次越过创新鸿沟

E科讯

爆赞:这份Github神仙面试笔记,不愧是上了标星120k+的Java面试手册

Java 编程 程序员 架构 面试

20位大佬,勾勒出一个中国网络安全江湖

学神来啦

网络安全 信息安全 云技术

以贝叶斯之名寻找规则模型 Falling Rule Lists

索信达控股

金融科技 模型 贝叶斯公式 用户模型 模型开发

《面试补习》- 多线程知识梳理

九灵

Java 面试

神经网络吴恩达, 解析极限编程--Kent Beck, Cynthia Andres John 易筋 ARTS 打卡 Week 53

John(易筋)

ARTS 打卡计划

从零开始学习3D可视化之事件绑定

ThingJS数字孪生引擎

大前端 物联网 3D 3D可视化

新思科技按需提供渗透测试服务 帮助MATESO识别业务重大漏洞,降低信息泄露风险

InfoQ_434670063458

渗透测试 新思科技 MATESO

不为人知的网络编程(十三):深入操作系统,彻底搞懂127.0.0.1本机网络通信

JackJiang

TCP 网络编程 即时通讯 IM

flutter_bloc使用解析---骚年,你还在手搭bloc吗!

小呆呆666

flutter ios android 大前端

华为云GaussDB持续技术创新,论文入选SIGMOD2021顶会

华为云数据库小助手

数据库 分布式 GaussDB 华为云数据库

什么是ReadWriteMany?

焱融科技

Docker 容器 云原生 高性能 Kubernetes从入门到精通

Ipfs矿机收益Ipfs矿机一天收益

比特币 区块链 IPFS

Redis——NoSQL数据模型及分类

Java 程序员

🏆「作者推荐」【JVM原理探索】深入理解G1垃圾收集器的原理和运行机制

码界西柚

G1 JVM 6月日更 垃圾回收器

379页满满的精华!2021版“深入骨髓层”JDK源码小册已封神

Java架构追梦

Java 阿里巴巴 架构 面试 jdk源码

图解Git工作原理

Java 程序员 面试

推荐5个免费YouTube视频下载方法

资源君

分享 工具软件 教程 youtube视频下载 下载youtube视频

深入解读 Flink SQL 1.13

Apache Flink

flink

腾讯云EMR基于YARN针对云原生容器化的优化与实践

腾讯云大数据

mapreduce

网络攻防学习笔记 Day58

穿过生命散发芬芳

网络攻防 6月日更

干货!!学习CSRF跨站请求伪造,看这一篇就够了

网络安全学海

网络安全 安全 CSRF 渗透测试 漏洞修复

支持低代码开发和远程真机,DevEco Studio 2.2 Beta1来啦

科技汇

JAVA 面向对象 (十四)-- 关键字abstract、final

加百利

6月日更

CentOS7 Linux服务器无法远程ssh登陆故障处理

Liyuanjie

Centos 7 linux运维 Linux内核

持续交付时代,Scrum中还有必要进行 Sprint Review 么?

万事ONES

项目管理 敏捷开发 持续交付 ONES

Gopher China 2021,未来可期

非晓为骁

个人提升 架构师 Go 语言 GopherChina gopher

Pandas高级教程之:category数据类型

程序那些事

Python 数据分析 pandas 程序那些事

maven安装与核心概念全面

IT视界

maven

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