Elixir adalah sebuah bahasa pemrograman fungsional, konkuren dan untuk berbagai keperluan yang berjalan dalam Mesin Virtual bahasa Erlang.[2][3] Elixir dibuat berdasarkan bahasa Erlang dan memiliki abstraksi yang sama dalam membangun aplikasi yang terdistribusi dan toleran atas kesalahan. Elixir juga menyediakan perkakas yang productif dan desain yang mudah dikembangkan. Kemudahan pengembangan tersebut diwujudkan melalui meta-programming saat proses kompilasi dengan makro dan polimorfisme dengan protokol-protokolnya.[4] Proses-proses di Elixir diawasi oleh sebuah Supervisor yang apabila terjadi satu proses yang gagal maka akan dibangkitkan proses baru sehingga tidak mengakibatkan kegagalan yang menggangu seluruh sistem, inilah keunggulan toleran atas kesalahan yang dimiliki oleh Elixir. Proses-proses seperti ini bisa mencapai jutaan proses dalam satu waktu.
telah digunakan bebrapa perusahaan semacam E-MetroTel, Pinterest[5] dan Moz.[6] Elixir juga digunakan entuk mengembangkan situs web, oleh perusahaan seperti Bleacher Report, Discord, dan Inverse,[7] and for building embedded systems.[8][9]
Sejarah
Pembuat bahasa Elixir adalah Jose Valim, Ia memaksudkan bahasa ini untuk dapat memiliki produktivitas dan kemampuan untuk mungkin berkembang yang tinggi pada mesin virtual Erlang dan tetap menjaga kecocokan terhadap ekosistem bahasa Erlang.[10][11]
Erlang functions can be called from Elixir without run time impact, due to compilation to Erlang bytecode, and vice versa
Meta programming allowing direct manipulation of AST[12]
Polymorphism via a mechanism called protocols. Like in Clojure, protocols provide a dynamic dispatch mechanism. However, this is not to be confused with multiple dispatch as Elixir protocols dispatch on a single type.
Support for documentation via Python-like docstrings in the Markdown formatting language[12]
Sintaksis bahasa Elixir banyak terinspirasi dari bahasa Ruby dan Erlang, sehingga relatif mudah dipahami. Jose Valim sendiri juga diketahui sebagai salah seorang pengguna bahasa Ruby. Berikut adalah contoh-contoh yang dapat dijalankan dalam 'iex shell' maupun disimpan ke dalam sebuah berkas dan dijalankan melalui Terminal dengan mengetikan elixir <filename>.
^Loder, Wolfgang (12 May 2015). Erlang and Elixir for Imperative Programmers. "Chapter 16: Code Structuring Concepts", section title "Actor Model": Leanpub. Diakses tanggal 7 July 2015.