AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

阿里大牛再写传奇:并发原理JDK源码手册GitHub下载量已破百万

Java 编程 架构 面试 程序人生

硬件Scrum指南

AmyGuo

Scrum 敏捷开发 硬件架构 硬件开发‘ 硬件敏捷

第4章-《Linux一学就会》- vim编辑器和恢复ext4下误删文件-Xmanager工具

学神来啦

vim Linux 运维 VI

设计千万级学生管理系统的考试试卷存储方案

缘分呐

架构设计实战

成为一名月薪2万的web安全工程师需要掌握哪些技能??

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

从浏览器地址栏输入url到显示页面的步骤

Augus

浏览器 9月日更

云计算科普:Pets(宠物)和Cattle(牲口)傻傻分不清楚?

刘华Kenneth

云计算 架构 云技术

考试试卷redis存储详细设计

小智

架构训练营

地铁3D可视化,让一切尽在掌握

ThingJS数字孪生引擎

可视化

读懂Redis源码,我总结了这7点心得

Java redis 架构 面试 后端

MyBatis Plus 批量数据插入功能,yyds!

王磊

mybatis springboot

力扣前400题解答笔记,全被字节大神整理到了这份文档里

Java 编程 架构 面试 程序人生

To B的软件产品死结怎么解?

刘华Kenneth

tob产品 客户服务

人工智能、机器学习和数据工程 InfoQ 趋势报告 - 2021 年 8 月

Regan Yue

人工智能 9月日更 数据工程 趋势报告

陌陌和它的解药,聊聊出海社交产品的思路

拍乐云Pano

社交APP出海 社交APP 泛娱乐出海

2021西部云安全峰会召开:“云安全优才计划”发布,腾讯云安全攻防矩阵亮相

腾讯安全云鼎实验室

云安全 峰会

双碳目标带来的机遇与挑战

石云升

新能源革命 碳中和 碳达峰 9月日更

斯图飞腾Stratifyd亮相Smart Retail,AI赋能零售新增长

写给“后浪”们的职业生涯规划建议

轻口味

android 生涯规划 音视频 9月日更

TDSQL数据同步和备份

腾讯云数据库

数据库 tdsql

腾讯云TDSQL-C云原生数据库技术

腾讯云数据库

数据库 tdsql

喜讯 | 拍乐云创始人赵加雨荣获「2021企业数智化转型升级先锋人物」奖

拍乐云Pano

音视频 数智化

消息队列:Kafka Consumer源码解读

正向成长

kafka

2021年金九银十必问的1000道Java面试题及答案整理

Java 架构 面试 程序人生 编程语言

J2PaaS低代码开源版,10月1号即将上线,企业数字化转型优选!

J2PaaS低代码平台

低代码 零代码 开发工具

阿里资深架构师整理分享全套Java核心技术面试题及答案

Java 编程 架构 面试 程序人生

直击灵魂!美团大牛手撸并发原理笔记,由浅入深剖析JDK源码

Java 编程 架构 面试 程序人生

拥抱云原生,华为云GaussDB全新助力金融行业数字化转型

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库

2021中国规模化敏捷大会(早鸟票倒计时)

AmyGuo

DevOps 敏捷开发 Scrum精髓 硬件敏捷 规模化敏捷

时间转换不在变bug

卢卡多多

时间戳 时间转换 9月日更

腾讯云TDSQL助力金融核心系统数字化转型

腾讯云数据库

数据库 tdsql

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