Elixier (Programmiersprache)

Elixier
elixir programming language
Paradigma Multi-Paradigma: funktional, gleichzeitig, verteilt, prozessorientiert
Erstmals erschienen 2012; vor 10 Jahren
Stabile Version
1.13.4Edit this on Wikidata / 7. April 2022; vor 3 Monaten
Disziplin tippen dynamisch, stark, Ente
Plattform Erlang
Lizenz Apache -Lizenz 2.0[1]
Dateiname -Erweiterungen .ex, .exs
Webseite Elixir-Lang.org
Beeinflusst von
Clojure, Erlang, Rubin
Beeinflusst
Lfe

Elixier ist ein funktional, gleichzeitig, allgemeiner Zweck Programmiersprache das läuft auf der STRAHL virtuelle Maschine das wird auch verwendet, um die implementieren Erlang Programmiersprache.[2] Elixier baut sich auf Erlang auf und teilt die gleichen Abstraktionen für den Bau verteilt, Fehlertoleranz Anwendungen. Elixir bietet auch produktive Werkzeuge und eine erweiterbar Entwurf. Letzteres wird durch Kompilierungszeit unterstützt Metaprogrammierung mit Makros und Polymorphismus über Protokolle.[3]

Elixir wird von Unternehmen wie Ramp verwendet,[4] Pagerduty,[5] Zwietracht,[6] Brex,[7] E-Metrotel,[8] Pinterest,[9] Moz,[10] Bleacher -Bericht,[11] Der Umriss,[12] Umgekehrt,[13] Divvy,[14] Farmbot[15] und zum Bau eingebettete Systeme.[16][17] Die Gemeinde organisiert jährliche Veranstaltungen in den USA,[18] Europa,[19] und Japan,[20] sowie kleinere lokale Veranstaltungen und Konferenzen.[21][22]

Geschichte

José Valim ist der Schöpfer der Elixir -Programmiersprache, a Forschung und Entwicklung Projekt erstellt bei PlataFormatec. Seine Ziele waren es, eine höhere Erweiterbarkeit und Produktivität in der Erlang -VM zu ermöglichen und gleichzeitig die Kompatibilität mit Erlangs Ökosystem beizubehalten.[23][24]

José Valim zielte darauf ab, eine Programmiersprache für groß angelegte Websites und Apps zu erstellen. Als Ruby-Entwickler verwendete er Merkmale von Ruby, Erlang und Clojure, um eine Sprache mit hoher Konsequenz und niedriger Latenz zu entwickeln. Elixir wurde für große Datenvolumina ausgelegt. Seine Geschwindigkeit und Fähigkeiten verbreiten das Elixier in Telekommunikation, E -Commerce und Finanzindustrien.[25]

Am 12. Juli 2018 veröffentlichte Honeypot einen Mini-Documentary über Elixir.[26]

Versioning

Elixier meistens[27] folgt Semantische Versionierung und hat nur 1 Hauptversion ohne Pläne für eine Sekunde. Jede der kleinen Versionen unterstützt einen bestimmten Bereich von Erlang/OTP Versionen.[28]

Merkmale

Beispiele

Die folgenden Beispiele können in einem ausgeführt werden IEX Shell oder in einer Datei gespeichert und durch Eingabe aus der Befehlszeile ausgeführt Elixier .

Klassisch Hallo Welt Beispiel:

IEX> Io.stellt("Hallo Welt!") Hallo Welt! 

Verständnis

IEX> zum n <- [1,2,3,4,5], Rem(n, 2) == 1, tun: n*n [1, 9, 25] 

Musteranpassung (Zerstörungen)

IEX> [1, a] = [1, 2] IEX> a 2 IEX> {:OK, [hallo: a]} = {:OK, [hallo: "Welt"]} IEX> a "Welt" 

Musteranpassung (mehrere Klauseln)

IEX> Fall Datei.lesen("Pfad/zu/Datei") tun IEX>   {:OK, Inhalt} -> Io.stellt("gefundene Datei: #{Inhalt}") IEX>   {:Error, Grund} -> Io.stellt("Fehlende Datei: #{Grund}") IEX> Ende 

Rohroperator

IEX> "1" |> Saite.to_integer() |> Kernel.*(2) 2 

Module

Defmodule Spaß tun  def Flunkerei(0), tun: 0  def Flunkerei(1), tun: 1  def Flunkerei(n), tun: Flunkerei(n-2) + Flunkerei(n-1)   Ende 

Nacheinander tausend Prozesse laichen

zum num <- 1..1000, tun: laichen fn -> Io.stellt("#{num * 2}") Ende 

Asynchron ausführen eine Aufgabe

Aufgabe = Aufgabe.Async fn -> Perform_complex_action() Ende SOTHER_TIME_CONSUMING_ACTION() Aufgabe.erwarten Aufgabe 

Bemerkenswerte Elixierprojekte

  • Mischen ist ein Build -Automatisierungswerkzeug, das Aufgaben zum Erstellen, Zusammenstellen und Testen von Elixierprojekten, zum Verwalten seiner Abhängigkeiten und vielem mehr bietet.[33]
  • Phönix ist ein in Elixir geschriebenes Webentwicklungsrahmen, das den serverseitigen Modellansicht Controller implementiert (MVC) Muster.[34]

Siehe auch

Verweise

  1. ^ "Elixier/Lizenz bei Master · Elixir-Lang/Elixir · Github". GitHub.
  2. ^ "Die beliebtesten Programmiersprachen von 2018 - Elite InfoWorld Blog". 2018-03-30. Abgerufen 2018-05-08.
  3. ^ "Elixier". José Valim. Abgerufen 2013-02-17.
  4. ^ "Elixier bei Ramp". Rampe. 2021-05-24. Abgerufen 2022-02-25.
  5. ^ "Elixier bei PagerDuty". Pagerduty. 2018-06-14. Abgerufen 2019-04-21.
  6. ^ Vishnevskiy, Stanislav (6. Juli 2017). "Wie diskordt das Elixier auf 5.000.000 gleichzeitige Benutzer skaliert". Abgerufen 2019-04-21.
  7. ^ Valim, José (2020-06-23). "Elixier bei Fintech mit Brex". elixir-lang.github.com. Abgerufen 2020-11-14.
  8. ^ "Was ist neu in Release 6.0 | Dokumentation". www.emetrotel.com. Abgerufen 2019-04-21.
  9. ^ "Einführung neuer Open-Source-Tools für die Elixir-Community". Abgerufen 2016-08-01.
  10. ^ "Entsperren neuer Funktionen in Moz Pro mit einer datenbankfreien Architektur". Abgerufen 2016-08-01.
  11. ^ "Elixier". Bleacher Report Engineering. Abgerufen 2019-05-22.
  12. ^ Lucia, Dave (24. September 2018). "Zwei Jahre Elixier am Umriss". Abgerufen 2019-05-22.
  13. ^ "Welche großen Projekte verwenden Elixier?". Abgerufen 2016-08-01.
  14. ^ "Warum Divvy Elixir anstelle von beliebteren Codierungssprachen verwendet". 2. April 2019. Abgerufen 2019-04-30.
  15. ^ Das Betriebssystem und alle verwandten Software, die auf dem Raspberry Pi., Farmbot, 2019-10-28, abgerufen 2019-10-29
  16. ^ "Elixier in Produktionsinterview: Garth Hitchens". 3. Juni 2015. Abgerufen 2016-08-01.
  17. ^ "Nerven - Basteln und Einsatz kugelsicherer eingebetteter Software in Elixier". Abgerufen 2016-08-01.
  18. ^ "Elixirconf". Abgerufen 2018-07-11.
  19. ^ "Elixirconf". Abgerufen 2018-07-11.
  20. ^ "Erlang & Elixir Fest". Abgerufen 2019-02-18.
  21. ^ "ELIXIR LDN". Abgerufen 2018-07-12.
  22. ^ "Empex - Empire State Elixir Conference". Abgerufen 2018-07-12.
  23. ^ ELIXIR - Ein moderner Ansatz zur Programmierung für die Erlang VM. Abgerufen 2013-02-17.
  24. ^ José Valim - Elixirconf EU 2017 Keynote. Archiviert vom Original am 2021-11-17. Abgerufen 2017-07-14.
  25. ^ "Hinter dem Code: derjenige, der Elixir erstellt hat". Abgerufen 2019-11-25.
  26. ^ "Elixir: Ein Mini-Documentary". Abgerufen 2021-10-30.
  27. ^ "Imperative Zuweisungen brechen die Anwendung in 1.7 Update · Ausgabe #8076 · ELIXIR-LANG/ELIXIR". GitHub. Abgerufen 2020-02-10.
  28. ^ Elixir ist eine dynamische, funktionale Sprache, die zum Aufbau skalierbarer und wartbarer Anwendungen entwickelt wurde: Elixir-Lang/Elixir, Elixir, 2019-04-21, abgerufen 2019-04-21
  29. ^ a b c d e f "Elixier". Abgerufen 2014-09-07.
  30. ^ Loder, Wolfgang (12. Mai 2015). Erlang und Elixier für imperative Programmierer. "Kapitel 16: Code -Strukturierungskonzepte", Abschnitt Titel "Schauspielermodell": Leanpub. Abgerufen 7. Juli 2015.{{}}: CS1 Wartung: Standort (Link)
  31. ^ Wlaschin, Scott (Mai 2013). "Eisenbahnorientierte Programmierung". F# zum Spaß und Gewinn. Archiviert vom Original am 30. Januar 2021. Abgerufen 28. Februar 2021.
  32. ^ "Schreiben von Assertive Code mit Elixir". 24. September 2014. Abgerufen 2018-07-05.
  33. ^ "Mischen". Abgerufen 2019-04-18.
  34. ^ "Überblick". Abgerufen 2019-04-18.

Externe Links