Elixir (programming language)
From Wikipedia, the free encyclopedia
Paradigm(s) | multi-paradigm: functional, concurrent, process-oriented, homoiconic |
---|---|
Appeared in | 2012 |
Stable release | 0.12.0 |
Typing discipline | dynamic, strong |
Influenced by | Erlang, Ruby, Clojure |
Platform | Erlang |
License | Apache License |
Usual filename extensions | .ex, .exs |
Website | www.elixir-lang.org |
|
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.[1]
History
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.[2]
Features
- 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
- Pattern matching
- Unicode support and UTF-8 strings
References
- ↑ "Elixir". José Valim. Retrieved 2013-02-17.
- ↑ "Elixir - A modern approach to programming for the Erlang VM". Retrieved 2013-02-17.
External links
- 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 article is issued from Wikipedia. The text is available under the Creative Commons Attribution/Share Alike; additional terms may apply for the media files.