Elixir 编程语言简史


成功的编程语言,是为了解决现有语言无法很好解决的问题而被创造出来的。

背景:Erlang 的遗产

Elixir 建立在 Erlang 的坚实基础之上。1980年代,Ericsson 公司的三位软件工程师 Joe Armstrong、Robert Virding 和 Mike Williams 为电信系统开发了 Erlang 语言1。Erlang 以其Actor 模型的并发处理、分布式架构热更新能力著称,特别适合构建高可用性系统。

然而,Erlang 的语法相对晦涩,吸引了 José Valim 的注意。

诞生:为什么创建 Elixir

2012年,José Valim 作为 Rails Core Team 成员,在寻找能够更好地利用多核处理器资源的语言时,发现了 Erlang 的潜力2。他希望能结合:

  • Erlang/OTP 的强大功能(并发、分布式、容错)
  • Ruby 语法的优雅与开发效率
  • 现代语言特性(宏、元编程、协议多态)

于是他在 Plataformatec 内部启动了 Elixir 项目。

发展历程

时间里程碑
1980sEricsson 开发 Erlang,专为电信系统设计
2012José Valim 创建 Elixir,发布首个版本
2014Elixir v1.0.0 正式发布
2015Phoenix 框架 v1.0 发布
2016Elixir v1.3 引入规范测试(ExUnit 改进)
2018Property-based testing(StreamData)引入
2020Elixir v1.11 支持 Erlang/OTP 23 特性
2021Nx 项目启动,Elixir 进军机器学习领域
2022Livebook 正式版发布,交互式编程普及
2024Elixir v1.17 支持 JIT 编译和更多新特性

核心特性

Elixir 继承了 Erlang 的优势,同时带来现代化语法:

  • 模式匹配 - 函数式编程的核心,数据解构优雅
  • Pipe 运算符 - |> 让链式调用自然流畅
  • 宏系统 - 代码生成与领域特定语言(DSL)
  • 协议多态 - 类似 Rust trait,灵活扩展类型行为
  • OTP 集成 - 无缝使用 Erlang 的进程管理与分布式能力

生态扩展

机器学习与数据科学

2021年启动的 Numerical Elixir (Nx) 项目为 Elixir 生态引入了 GPU 加速和机器学习基础设施。配套的 Livebook 提供了类似 Jupyter 的交互式笔记本体验。

Web 开发

Phoenix 框架 凭借其实时性可扩展性,成为 Elixir 生态中最成熟的 Web 框架,广泛应用于聊天、IoT 和高并发 API 场景。

包管理

hex.pm 作为 Elixir/Erlang 的包管理器,于 2021 年达到 v1.0,成为生态稳定的重要里程碑3

学习资源


Footnotes

  1. Joe Armstrong, “Making reliable distributed systems in the presence of software errors”, 2003

  2. Elixir - The development story (José Valim)

  3. hex v1.0 Changelog