Elixir (programming language)
Elixir | |
---|---|
Basic data | |
Paradigms : | Multi-paradigm programming language: functional , concurrent , procedural , homoiconical |
Publishing year: | 2011 |
Designer: | José Valim |
Developer: | José Valim |
Current version | 1.10.4 (July 4, 2020) |
Typing : | strong , dynamic |
Influenced by: | Erlang , Ruby , Clojure |
Affected: | LFE |
Operating system : | Erlang |
License : | Apache license, version 2.0 |
elixir-lang.org |
Elixir is a functional , concurrent general purpose programming language operating on the virtual machine from Erlang running (BEAM). It can be used to create distributed, fault-tolerant , soft real-time and continuously running programs. In addition, Elixir can map metaprogramming using macros and polymorphism using protocols.
history
Elixir was developed by José Valim since 2011 as part of a research project at Plataformatec. The goal was to create an expandable and productive programming language that would remain compatible with Erlang's libraries and tools .
Examples
A simple hello world function:
def hello do
IO.puts "Hello World"
end
literature
- Simon St. Laurent, J. David Eisenberg: Introducing Elixir: Getting Started in Functional Programming . 2nd Edition. O'Reilly Media, 2017, ISBN 978-1-4919-5677-9 .
- Martin Grotz: Robust processes. Elixir: pragmatic and easy to learn. In: iX Special 2020 - Modern programming languages . Heise Medien, 2020, p. 104-109 .
Individual evidence
- ↑ Elixir Releases older than 0.7.0 . Retrieved August 21, 2018.
- ↑ José Valim: Release 1.10.4 . (accessed on July 4, 2020).
- ↑ elixir-lang.org . (accessed on February 2, 2020).
- ↑ Elixir . In: José Valim . Retrieved February 17, 2013.
- ↑ Elixir v0.5.0 released
Web links
- Official website
- Elixir on GitHub
- Elixir - A modern approach to programming for the Erlang VM video presentation
- Martin Grotz: Scalable, robust web applications with Elixir and Phoenix
- Simon St. Laurent, J. David Eisenberg: Introducing Elixir.
- Joe Armstrong: A Week with Elixir. (Blog entry)