Elixir (programming language)
|This article needs additional citations for verification. (March 2013)|
|Paradigm(s)||multi-paradigm: functional, concurrent, process-oriented, homoiconic|
|Typing discipline||dynamic, strong|
|Influenced by||Erlang, Ruby, Clojure|
|Filename extension(s)||.ex, .exs|
Elixir is a functional, concurrent, general-purpose programming language built atop the Erlang Virtual Machine (BEAM). Elixir builds on top of Erlang to provide distributed, fault-tolerant, soft real-time, non-stop applications but also extends it to support meta-programming with macros and polymorphism via protocols.
José Valim is the creator of the Elixir programming language. His goals were to enable higher extensibility and productivity in the Erlang VM while keeping compatibility with Erlang's tools and ecosystem.
- A language targeting Erlang Virtual Machine (BEAM)
- Seamless Erlang integration: zero-penalty Erlang function calls (and vice versa)
- Meta programming via macros and a first-class AST
- Polymorphism via protocols inspired by Clojure
- First-class documentation
- Shared-nothing concurrent programming via message passing (Actor model)
- Emphasis on recursion and higher-order functions instead of side-effect-based looping
- Everything is an expression
- Lazy and async collections with streams
- Pattern matching
- Unicode support and UTF-8 strings
- "Elixir". José Valim. Retrieved 2013-02-17.
- "Elixir - A modern approach to programming for the Erlang VM". Retrieved 2013-02-17.
- Elixir language website
- Code on GitHub
- Elixir - A modern approach to programming for the Erlang VM video presentation
- Dave Thomas: "Programming Elixir: Functional |> Concurrent |> Pragmatic |> Fun" (book)
- Simon St. Laurent, J. David Eisenberg: "Introducing Elixir" (book)
- Joe Armstrong: "A Week with Elixir" (blog entry)
|This programming language–related article is a stub. You can help Wikipedia by expanding it.|