Elixir (limbaj de programare) - Elixir (programming language)

Elixir
limbaj de programare elixir
Paradigmă multi-paradigmă : funcțională , concurentă , distribuită , orientată spre proces
A apărut prima dată 2011 ; acum 10 ani ( 2011 )
Versiune stabila
1.12  Editați acest lucru pe Wikidata / 19 mai 2021 ; 2 luni în urmă ( 19 mai 2021 )
Disciplina de tastare dinamic , puternic , rață
Platformă Erlang
Licență Licență Apache 2.0
Extensii de nume de fișier .ex, .exs
Site-ul web elixir-lang .org
Influențată de
Clojure , Erlang , Ruby
Influențat
LFE

Elixir este un limbaj de programare funcțional , concurent , de uz general , care rulează pe mașina virtuală BEAM utilizată pentru a implementa limbajul de programare Erlang . Elixir se construiește deasupra Erlang și împărtășește aceleași abstracții pentru construirea aplicațiilor distribuite , tolerante la erori . Elixir oferă, de asemenea, scule productive și un design extensibil . Acesta din urmă este susținut de metaprogramarea în timp de compilare cu macro-uri și polimorfism prin protocoale.

Elixir este utilizat de companii precum PagerDuty , Discord , Brex , E-MetroTel, Pinterest , Moz, Bleacher Report , The Outline , Inverse , Divvy, FarmBot și pentru construirea de sisteme încorporate . Comunitatea organizează evenimente anuale în Statele Unite, Europa și Japonia, precum și evenimente și conferințe locale minore.

Istorie

José Valim este creatorul limbajului de programare Elixir, un proiect de cercetare și dezvoltare creat la Plataformatec. Obiectivele sale au fost să permită o extensibilitate și o productivitate mai mari în Erlang VM, păstrând în același timp compatibilitatea cu ecosistemul Erlang.

José Valim și-a propus să creeze un limbaj de programare pentru site-uri și aplicații pe scară largă. Fiind un dezvoltator Ruby, el a folosit caracteristici Ruby, Erlang și Clojure pentru a dezvolta un limbaj cu concurență ridicată și cu latență redusă. Elixir a fost conceput pentru a gestiona volume mari de date. Viteza și capacitățile sale răspândesc Elixir în industria telecomunicațiilor, comerțului electronic și finanțelor.

Pe 12 iulie 2018, Honeypot a lansat un mini-documentar pe Elixir.

Versionare

Elixir urmărește în principal versiunile semantice și are doar o versiune majoră, fără planuri pentru o secundă. Fiecare dintre versiunile minore acceptă o gamă specifică de versiuni Erlang / OTP .

Caracteristici

Exemple

Următoarele exemple pot fi rulate într-un iexshell sau salvate într-un fișier și rulate din linia de comandă prin tastare . elixir <filename>

Exemplu clasic Hello world :

iex> IO.puts("Hello World!")
Hello World!

Înțelegeri

iex> for n <- [1,2,3,4,5], rem(n, 2) == 1, do: n*n
[1, 9, 25]

Potrivire tipar (destructurare)

iex> [1, a] = [1, 2]
iex> a
2

iex> {:ok, [hello: a]} = {:ok, [hello: "world"]}
iex> a
"world"

Potrivirea tiparului (clauze multiple)

iex> case File.read("path/to/file") do
iex>   {:ok, contents} -> IO.puts("found file: #{contents}")
iex>   {:error, reason} -> IO.puts("missing file: #{reason}")
iex> end

Operator de țevi

iex> "1" |> String.to_integer() |> Kernel.*(2)
2

Module

defmodule Fun do
  def fib(0), do: 0
  def fib(1), do: 1
  def fib(n), do: fib(n-2) + fib(n-1)  
end

Apare secvențial o mie de procese

for num <- 1..1000, do: spawn fn -> IO.puts("#{num * 2}") end

Efectuarea asincronă a unei sarcini

task = Task.async fn -> perform_complex_action() end
other_time_consuming_action()
Task.await task

Proiecte Elixir remarcabile

  • Mix este un instrument de automatizare a construcțiilor care oferă sarcini pentru crearea, compilarea și testarea proiectelor Elixir, gestionarea dependențelor sale și multe altele.
  • Phoenix este un cadru de dezvoltare web scris în Elixir care implementează modelul controlerului de vizualizare a modelului ( MVC ) de pe server .

Vezi si

Referințe

linkuri externe