3 Punkte von GN⁺ 2023-08-26 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Der Artikel behandelt die Erfahrungen des Autors mit der Programmiersprache Elixir, wobei der Schwerpunkt auf den Funktionen für Nebenläufigkeit und Parallelität liegt.
  • Der Autor nutzt Elixir seit 5–6 Jahren als primäre Programmiersprache und bescheinigt ihr hohe Leistungsfähigkeit bei nur wenigen Nachteilen.
  • Der Autor vergleicht das Nebenläufigkeitsmodell von Elixir mit PHP und Python und argumentiert, dass das Nebenläufigkeitsmodell von PHP vom Webserver abhängt, während Python wegen des Global Interpreter Lock (GIL) Schwierigkeiten mit Nebenläufigkeit hat.
  • Elixir ist auf Erlang und der virtuellen Maschine von Erlang (BEAM) aufgebaut, die dafür ausgelegt ist, eine große Zahl leichtgewichtiger Prozesse auszuführen, und damit die Grundlage für Nebenläufigkeit und Parallelität bildet.
  • BEAM erstellt beim Start Threads für Scheduler und übernimmt standardmäßig die Prozessplanung mit jeweils einem Scheduler pro verfügbarem CPU-Kern.
  • Der Autor erklärt, dass die unveränderliche funktionale Programmierung in Elixir und Erlang eine praktische Entscheidung war, um ein hohes Maß an Nebenläufigkeit und Parallelität zu erreichen.
  • Prozesse in Elixir teilen keinen Zustand und können nur asynchron über Nachrichtenübermittlung kommunizieren, was eine sichere nebenläufige und parallele Ausführung gewährleistet.
  • Der Autor weist darauf hin, dass man sich beim Schreiben von Code in Elixir über diese Grundprinzipien meist keine großen Gedanken machen muss, da die meisten Webanfragen innerhalb eines einzelnen Prozesses verarbeitet werden.
  • Elixir bietet einen async/await-Mechanismus für nebenläufige Aufgaben, der im Task-Modul implementiert ist; dazu gehört die Funktion Task.async_stream, die für jedes Element einer Aufzählung einen Task ausführt.
  • Der Autor kommt zu dem Schluss, dass die hervorragenden Möglichkeiten von Elixir und Erlang für Nebenläufigkeit und Parallelität kein nachträglicher Einfall sind, sondern in den Grundlagen der Runtime verankert wurden, sodass Nebenläufigkeit auf BEAM weder riskant noch schwierig ist.

Noch keine Kommentare.

Noch keine Kommentare.