1 Punkte von GN⁺ 1 일 전 | 1 Kommentare | Auf WhatsApp teilen
  • Die neue Website stellt Elixir als Erlang-basierte Sprache vor, die sich von der Einzelentwicklung bis zu Teams mit Hunderten von Personen und von einem einzelnen Server bis zu globalen Netzwerken skalieren lässt
  • Auf Basis von Immutability, Speichersicherheit und einem schrittweisen Typsystem lassen sich Systeme bauen, die sich leicht von Ausfällen erholen und gut warten lassen
  • Eine einzelne Codebasis kann auf Multicore-Maschinen und über mehrere Nodes hinweg skaliert werden; in Kombination mit Numerical Elixir wird sogar GPU-Computing unterstützt
  • Mit dem Ökosystem aus Phoenix, Nerves, Nx und Broadway lassen sich Web-, Embedded-, Machine-Learning-, Datenverarbeitungs-, IoT- und verteilte Systeme entwickeln
  • Paketmanager, Code-Formatter, Dokumentationstools, IEx, Livebook und das Hex-Ökosystem unterstützen vom Prototyping bis zum Betrieb in Produktion

Entwicklungserfahrung und Skalierbarkeit

  • Elixir verbindet schnelle Entwicklung mit soliden Praktiken für den produktiven Einsatz und basiert auf Erlangs über Jahrzehnte aufgebauter Zuverlässigkeit und Fehlertoleranz
  • Es strebt klaren Code an, der sich auf Daten und Domänen konzentriert
    • Bietet Immutability und Speichersicherheit
    • Kann das schrittweise Typsystem aus Elixir 1.20 nutzen
  • Eine einzelne Codebasis skaliert vertikal auf Multicore-Maschinen und horizontal über die Kommunikation zwischen Nodes hinweg und eignet sich für nachrichtenorientierte sowie Web-Echtzeitsysteme
  • In Kombination mit Numerical Elixir lässt sich Rechenleistung über Cores, Cluster und GPUs hinweg skalieren
  • Wurde mehrere Jahre in Folge als eine der beliebtesten Sprachen der Welt gewählt; die Ergebnisse sind in der Stack Overflow 2025 Umfrage zu sehen
  • Verfügt über einen eingebauten Paketmanager, einen Code-Formatter und Dokumentationsfunktionen
    • Mit der interaktiven Shell IEx und dem interaktiven Notebook Livebook lassen sich schnell Prototypen erstellen und laufende Systeme in Echtzeit debuggen
  • Wird in Produktionsumgebungen verschiedenster Branchen und Anwendungen eingesetzt, von Einzelunternehmen bis zu Fortune-500-Unternehmen

Einsatzbereiche und Ökosystem

  • Für die Webentwicklung kommen Phoenix für schnelle Entwicklung, LiveView für Echtzeitfunktionen mit wenig Code, Ecto für die Datenschicht und Plug zum Einsatz
  • Bei Embedded-Systemen verpackt Nerves die gesamte Anwendung als kleine Firmware und bietet Over-the-Air-Updates sowie carrier-grade Fehlertoleranz
    • Mit AtomVM lässt sich Elixir auch auf kleinen Geräten wie Mikrocontrollern ausführen
  • Im Bereich Machine Learning bietet Nx GPU-beschleunigte Tensoren, und Livebook unterstützt das Ausführen vortrainierter Modelle, Datenvisualisierung und Deployment in einer einzigen Umgebung
  • Für Daten- und Medienverarbeitung werden Backpressure und Concurrency genutzt
    • Broadway verarbeitet Millionen von Ereignissen aus Queues
    • Membrane bietet kombinierbare Pipelines für Audio, Video und mehr
  • Auf Basis der Erlang VM wird Elixir auch für IoT und verteilte Systeme eingesetzt; zugehörige Erlang-Projekte sind EMQX, RabbitMQ und Riak
  • Auf Hex lassen sich Tausende Community-Pakete entdecken, und das Ökosystem wächst weiter
  • Das Elixir Team leitet die Sprachentwicklung, und die Erlang Ecosystem Foundation unterstützt Elixir und die breitere Erlang-Community
  • Zu den Elixir Open Source Stewards, die Open-Source-Entwickler anstellen oder fördern, gehören folgende Unternehmen
    • Software Mansion: entwickelt seit 2016 Full-Stack-Tools wie Membrane, Popcorn, LiveDebugger und Legion
    • Dashbit: entwickelt Elixir, Livebook, Broadway, Plug und weitere Projekte und unterstützt Unternehmen bei Einführung und Skalierung in Produktion
    • Jump: trägt zu Expert LSP, Quokka und weiteren Projekten bei

1 Kommentare

 
GN⁺ 1 일 전
Hacker-News-Kommentare
  • José Valim und das Team haben eine wirklich herausragende Elixir-Sprache und ein starkes Ökosystem geschaffen; besonders dankbar bin ich dafür, dass sie im vergangenen Jahr kontinuierlich auf das Release 1.20 hingearbeitet haben

    • Von einem Erlang-Fan habe ich gehört, Elixir sei für Erlang-Anhänger eine abscheuliche Variante, bei der Leute, die Erlang nicht richtig verstanden hätten, die BEAM in Richtung Ruby-Stil umgebaut hätten – wodurch es aber populär geworden sei. Mich würde interessieren, wie ihr das seht
  • Elixir ist großartig, aber ich würde mir wünschen, dass mehr Geld und Entwicklungsaufwand in die BEAM selbst fließen, um neben Nebenläufigkeit auch die reine Ausführungsgeschwindigkeit zu verbessern
    In den vergangenen gut zehn Jahren wirkte es so, als hingen Performance-Verbesserungen praktisch von einer einzigen Person ab

    • In den letzten fünf bis sechs Jahren haben mehrere Leute am JIT-Compiler gearbeitet, und auch das WhatsApp-Team hat erheblich beigetragen
      Nachdem das Erlang/OTP-Team die im JIT mögliche Performance ausgeschöpft hat, dürfte es sich wohl an modulübergreifende Optimierungen machen; dafür müssen einige Grundelemente der Runtime neu gestaltet werden, aber das dürfte viele neue Möglichkeiten eröffnen
    • In einem Bytecode-Interpreter die Performance mathematischer Operationen in realen Anwendungsfällen zu steigern, ist ziemlich schwierig
  • Ich habe dieses Jahr angefangen, Elixir zu lernen, war von der Sprache und den Fähigkeiten, die die BEAM bietet, beeindruckt und bin von dem unterschätzten Ökosystem völlig begeistert
    Die neue Website sieht ebenfalls großartig aus

    • Der von mir sehr geschätzte Entwickler Joe Armstrong hat einen Artikel geschrieben, in dem er Elixir überwiegend positiv bewertet; hätte er Erlang nicht geschaffen, wäre er wohl Elixir-Entwickler geworden
      https://joearms.github.io/published/2013-05-31-a-week-with-e...
      Möge Joe Armstrong, ein außergewöhnlicher Mensch, in Frieden ruhen
    • Erlang betreibt seit Jahrzehnten Telekommunikationsunternehmen mit Marktkapitalisierungen in Milliardenhöhe, und Elixir hat es leichter erlernbar gemacht; außerdem ersetzt es in großen Umgebungen zu einem guten Teil improvisierte Cluster-Setups
      Mit einer einzigen Codebasis lässt sich schnell auf mehrere Plattformen deployen, und Phoenix Channels sind ebenfalls kosteneffizient
      https://quasar.dev/introduction-to-quasar/
  • Ich hoffe, dass auch die Forum-UI erneuert wird, und wünsche mir, dass Elixir weiter wächst
    Es ist nicht nur eine hervorragende Sprache, sondern eignet sich auch sehr gut für AI Coding

    • In einem Vergleich von Tencent belegte Elixir insgesamt Platz 1; das ist in Tabelle 4 zu sehen, allerdings sind die Unterlagen schon über ein Jahr alt
      https://arxiv.org/pdf/2508.09101
  • Obwohl ich nach heutigen Maßstäben keinen großen Monitor nutze, ist die Hälfte der Website leerer Raum, was schade ist
    Ich erinnere mich nicht mehr an das Aussehen der alten Website, daher weiß ich nicht, ob sich das tatsächlich geändert hat

  • Die Elixir-Runtime BEAM eignet sich sehr gut für die Orchestrierung von Agenten und Multi-Agenten-Systemen; ich habe dazu hier etwas zusammengestellt
    https://josefrichter.design/blog/crowd

  • Einer der zentralen Einsatzbereiche von Elixir/Erlang scheint die Fähigkeit zu verteilten Clustern zu sein; mich interessieren echte Anwendungsfälle
    Ich habe beruflich viel Elixir genutzt, es aber in einer klassischen Kubernetes-Umgebung eher wie ein „besseres Rails“ eingesetzt, bei dem unabhängige Phoenix-Apps horizontal skaliert werden – dadurch hatte ich das Gefühl, den eigentlichen Zweck zu verfehlen

    • Früher habe ich bei WhatsApp gearbeitet und die verteilten Funktionen von Erlang intensiv genutzt; soweit ich weiß, ist der Cluster nach meinem Weggang noch deutlich größer geworden
      Das ist sehr bequem, aber es gibt keine Sicherheitsgrenzen zwischen Nodes, und bei instabilem Netzwerk wird es mühsam
      In einer Chat-App schickt man zunächst eine Nachricht an den Presence-Datenbankdienst, um zu prüfen, ob die andere Person online ist; wenn eine Prozess-ID zurückkommt, sendet man mit derselben API eine Nachricht an diesen Prozess, egal ob er auf derselben Maschine oder auf einer anderen läuft
      Es gibt nur wenige Umgebungen, in denen beliebiges Message Passing zwischen Prozessen, Threads und Tasks so natürlich auf das gesamte System ausgeweitet wird; wenn es keine Prozess-ID gibt, schickt man die Nachricht eben an die Offline-Datenbank
    • Ich habe in Kubernetes mit Horde.DynamicSupervisor ein wenig verteiltes Elixir ausprobiert; es gibt auch andere Optionen wie swarm und DynamicSupervisor
      Eine klare Analyse, welche Vorteile solche Abstraktionen gegenüber Nicht-BEAM-Ansätzen bieten, wäre hilfreich
      https://www.youtube.com/watch?v=nZmDEUeHeVI
    • Ich habe kürzlich mit Elixir eine Kubernetes-Steuerungsebene gebaut und immer wieder auf den Moment gewartet, in dem ich die verteilten Funktionen brauchen würde; in einer Situation, in der ein in Go geschriebenes DaemonSet gesteuert wird, waren sie aber nicht wirklich nötig
      Allerdings ist die Architektur stärker gekoppelt als bei unabhängigen Apps und orchestriert Arbeiten im Stil von Lambda oder Fly.io auf Firecracker
      https://jomcgi.dev/ember
    • Elixir/Erlang passt sehr gut zu semi-embedded Umgebungen, die robuste höherstufige Command-and-Control-Komponenten benötigen und dabei deterministisch arbeiten müssen
      Vor langer Zeit habe ich Erlang auf diesem Gerät eingesetzt; das hat Spaß gemacht, und es gab für alle Beteiligten viele interessante Herausforderungen
      https://www.icare-world.com/us/product/icare-eidon/
  • Elixir ist eine sehr elegante Sprache, und ich hoffe, bald einen Grund zu finden, sie einzusetzen

    • Das Lesen von Joe Armstrongs Erlang-Programmierbuch hat meine Sicht auf funktionale Programmierung und Abstraktion verändert und mich dadurch zu einem besseren Ruby-Entwickler gemacht
      Als Ruby große Mengen an WebSocket-Nachrichten nicht bewältigen konnte, habe ich erstmals Elixir gewählt; es war besonders in hochgradig nebenläufigen Umgebungen stark, und ich mag auch Phoenix LiveView, mit dem ich einige Nebenprojekte betreibe
    • Es hat Spaß gemacht, an einem persönlichen Assistenten mit mehreren Agenten zu arbeiten; er ist noch in Entwicklung und ohne Garantien, aber ich habe die tatsächlich verwendete Engine veröffentlicht
      https://github.com/ityonemo/ce_ce
    • Wenn es ein Programm gibt, das nicht schnell laufen muss, kann das ein Grund sein, Elixir zu verwenden
    • Im Großen und Ganzen würde ich zustimmen, dass Elixir Erlang verbessert hat; aus der Perspektive von jemandem, der lange Ruby genutzt hat, ist es aber nicht so elegant, wie ich erwartet hatte
      Selbst einfache Syntax wie defmodule Xyz do fühlt sich ungewohnt an