<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Erlang_%28Programmiersprache%29</id>
	<title>Erlang (Programmiersprache) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Erlang_%28Programmiersprache%29"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Erlang_(Programmiersprache)&amp;action=history"/>
	<updated>2026-06-01T13:05:44Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Erlang_(Programmiersprache)&amp;diff=175498&amp;oldid=prev</id>
		<title>imported&gt;Kjalarr: Änderungen von ~2026-18969-57 (Diskussion) auf die letzte Version von Kabelschmidt zurückgesetzt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Erlang_(Programmiersprache)&amp;diff=175498&amp;oldid=prev"/>
		<updated>2026-04-25T20:14:26Z</updated>

		<summary type="html">&lt;p&gt;Änderungen von &lt;a href=&quot;/index.php/Spezial:Beitr%C3%A4ge/~2026-18969-57&quot; title=&quot;Spezial:Beiträge/~2026-18969-57&quot;&gt;~2026-18969-57&lt;/a&gt; (&lt;a href=&quot;/index.php?title=Benutzer_Diskussion:~2026-18969-57&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer Diskussion:~2026-18969-57 (Seite nicht vorhanden)&quot;&gt;Diskussion&lt;/a&gt;) auf die letzte Version von &lt;a href=&quot;/index.php?title=Benutzer:Kabelschmidt&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:Kabelschmidt (Seite nicht vorhanden)&quot;&gt;Kabelschmidt&lt;/a&gt; zurückgesetzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Infobox Programmiersprache&lt;br /&gt;
 | Name                          = Erlang&lt;br /&gt;
| Logo                          = [[Datei:Erlang logo.png|zentriert|100px]]&lt;br /&gt;
| Beschreibung                  = Funktionale Programmiersprache&lt;br /&gt;
| Paradigma                     = [[Funktionale Programmierung|funktional]], [[Nebenläufige Programmierung|&amp;#039;&amp;#039;nebenläufig&amp;#039;&amp;#039;]], [[Logische Programmierung|prädikativ]]&lt;br /&gt;
| Erscheinungsjahr              = 1987&lt;br /&gt;
| Designer                      = [[Joe Armstrong (Informatiker)|Joe Armstrong]], Robert Virding, Mike Williams&lt;br /&gt;
| Entwickler                    = [[Ericsson]]&lt;br /&gt;
| AktuelleVersion               =  &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
| AktuelleVersionFreigabeDatum  = &amp;lt;!-- wikidata --&amp;gt;&lt;br /&gt;
| AktuelleVorabVersion          = &lt;br /&gt;
| AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
| Typisierung                   = [[Dynamische Typisierung|dynamisch]], [[Starke Typisierung|stark]]&lt;br /&gt;
| Implementierung               = Erlang&lt;br /&gt;
| Dialekte                      = &lt;br /&gt;
| Standardisierungen            = &lt;br /&gt;
| Beeinflusst_von               = [[Prolog (Programmiersprache)|Prolog]]&lt;br /&gt;
| Beeinflusste                  = [[Clojure]], [[Scala (Programmiersprache)|Scala]], [[Elixir (Programmiersprache)|Elixir]]&lt;br /&gt;
| Betriebssystem                = [[Microsoft Windows|Windows]], [[Linux]], [[macOS]], [[Solaris (Betriebssystem)|Solaris]]&lt;br /&gt;
| Lizenz                        = [[Apache Software License]] 2.0&lt;br /&gt;
| Website                       = [https://www.erlang.org/ www.erlang.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[Datei:LYME software bundle.svg|mini|Das [[LYME (Softwarepaket)|LYME-Softwarepaket]] gründet auf Erlang und stellt eine Alternative zum [[LAMP (Softwarepaket)|Softwarepaket LAMP]] dar.]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Erlang&amp;#039;&amp;#039;&amp;#039; ist eine [[Programmiersprache]], die bei [[Ericsson]] von [[Joe Armstrong (Informatiker)|Joe Armstrong]] und anderen entwickelt wurde. Sie ist nach dem dänischen Mathematiker [[Agner Krarup Erlang]] benannt, der Name kann aber auch für &amp;#039;&amp;#039;&amp;#039;Er&amp;#039;&amp;#039;&amp;#039;icsson &amp;#039;&amp;#039;&amp;#039;lang&amp;#039;&amp;#039;&amp;#039;uage stehen.&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.cio.com.au/article/307418/-z_programming_languages_erlang |wayback=20090619203619 |text=Interview mit Joe Armstrong auf CIO.com.au |archiv-bot=2023-04-23 09:11:55 InternetArchiveBot }} (englisch)&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Eigenschaften ==&lt;br /&gt;
Spricht man von Erlang, meint man meistens nicht nur die relativ kompakte Sprache, sondern auch das [[Laufzeitsystem]] und die umfangreiche [[Programmbibliothek|Bibliothek]]. Zusammen wird das System &amp;#039;&amp;#039;&amp;#039;Erlang/OTP&amp;#039;&amp;#039;&amp;#039; genannt, wobei OTP eine Abkürzung für &amp;#039;&amp;#039;The Open Telecom Platform&amp;#039;&amp;#039; ist.&lt;br /&gt;
Es handelt sich dabei um eine [[Middleware]] für den Bau verteilter, hochverfügbarer Systeme.&lt;br /&gt;
Hervorzuheben sind z.&amp;amp;nbsp;B. die verteilten [[Datenbank]]en [[Mnesia]] und [[CouchDB]].&lt;br /&gt;
&lt;br /&gt;
Erlang wurde ursprünglich für die Programmierung von Anwendungen in der [[Telekommunikation]] geschaffen, insbesondere für [[Vermittlungsstelle]]n von Telefonnetzen &amp;#039;&amp;#039;(Switch)&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Die dort vorhandenen besonderen Anforderungen gingen unmittelbar in den Entwurf der Programmiersprache und des Laufzeitsystems ein:&lt;br /&gt;
* [[Nebenläufigkeit|Parallelität]]&lt;br /&gt;
* hohe [[Verfügbarkeit]]&lt;br /&gt;
* [[Robustheit gegen Benutzungsfehler|Fehlertoleranz]]&lt;br /&gt;
* Auswechseln von [[Modul (Software)|Modulen]] zur Laufzeit etc.&lt;br /&gt;
&lt;br /&gt;
Erlang genügt den [[Programmierparadigma|Paradigmen]] der [[Funktionale Programmierung|funktionalen]], [[Nebenläufigkeit|nebenläufigen]] und [[Verteilte Systeme|verteilten]] Programmierung.&lt;br /&gt;
[[Joe Armstrong (Informatiker)|Joe Armstrong]], der geistige Vater von Erlang, bezeichnete sie am liebsten als &amp;#039;&amp;#039;Concurrency Oriented Programming Language (COPL)&amp;#039;&amp;#039;, was in etwa als &amp;#039;&amp;#039;auf Nebenläufigkeit ausgerichtete Programmiersprache&amp;#039;&amp;#039; zu übersetzen ist und andeutet, dass [[Prozess (Informatik)|Prozesse]] die wichtigsten Objekte in Erlang sind. Den funktionalen Kern fand er weniger wichtig, auch wenn dieser wegen der Vermeidung von Nebeneffekten recht nützlich für die nebenläufige Programmierung ist.&lt;br /&gt;
&lt;br /&gt;
Erlang ist eine der wenigen funktionalen Programmiersprachen, die in der Industrie eingesetzt werden. Insbesondere Telefon- und Netzwerkausrüster setzen Erlang wegen seiner guten [[Skalierbarkeit]] und Parallelität ein.&lt;br /&gt;
&lt;br /&gt;
Prozesse sind in Erlang sehr ressourcenschonend implementiert. Der in Erlang geschriebene [[Webserver]] Yaws mit seiner hohen Skalierbarkeit ist ein Beispiel dafür.&lt;br /&gt;
&lt;br /&gt;
Die [[Syntax]] von Erlang erinnert an die von [[Prolog (Programmiersprache)|Prolog]], was nicht ganz verwundert, da das System anfänglich als in Prolog geschriebener [[Interpreter]] vorlag.&lt;br /&gt;
&lt;br /&gt;
Basierend auf dem von Erlang verwendeten [[Binärformat]]&amp;lt;ref&amp;gt;[http://erlang.org/doc/apps/erts/erl_ext_dist.html erlang.org]&amp;lt;/ref&amp;gt; wurde das allgemeine Binärformat BERT und ein darauf aufbauendes [[Remote Procedure Call|Remote-Procedure-Call]]-Protokoll entwickelt.&amp;lt;ref&amp;gt;{{Webarchiv|url=http://bert-rpc.org/ |wayback=20091024121028 |text=bert-rpc.org |archiv-bot=2023-12-19 04:25:21 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mitgelieferte Software ===&lt;br /&gt;
Mit der Erlang-Distribution werden viele nützliche Zusatzwerkzeuge mitgeliefert, die die Programmierung von Anwendungen deutlich erleichtern:&lt;br /&gt;
; OTP: Die &amp;#039;&amp;#039;&amp;#039;O&amp;#039;&amp;#039;&amp;#039;pen &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;elecom &amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;latform erleichtert das Bauen von wirklich stabilen, parallelen Anwendungen mit zusätzlichen Eigenschaften wie das dynamische Austauschen des Codes während der Laufzeit. OTP ist eine Bibliothek, die verschiedene &amp;#039;&amp;#039;Behaviors&amp;#039;&amp;#039; (Verhalten) zur Verfügung stellt, die die Funktionalität einer Anwendung von dem Modell dahinter (Funktionsaufruf, Client/Server usw.) trennen.&lt;br /&gt;
; ETS/DETS: ETS und DETS ((&amp;#039;&amp;#039;&amp;#039;D&amp;#039;&amp;#039;&amp;#039;isk) &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;rlang &amp;#039;&amp;#039;&amp;#039;T&amp;#039;&amp;#039;&amp;#039;erm &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;torage) sind zwei eng verwandte Speichersysteme für Erlang-Terme (Tupel, Listen, Atome, also eingebaute Datentypen), die eine große Skalierbarkeit und eine kleine Zugriffszeit bieten. Die grundlegenden Operationen sind &amp;#039;&amp;#039;insert&amp;#039;&amp;#039; und &amp;#039;&amp;#039;lookup&amp;#039;&amp;#039;. Genutzt wird eine Schlüssel-Wert-Struktur &amp;#039;&amp;#039;(Key-Value-Storage)&amp;#039;&amp;#039;.&lt;br /&gt;
; [[Mnesia]]: Mnesia ist ein vollwertiges, eingebautes Datenbanksystem &amp;#039;&amp;#039;(DBMS)&amp;#039;&amp;#039;. Ähnlich wie bei ETS werden Erlang-Terme gespeichert. Mnesia bietet eine Verteilung über mehrere Erlang-Knoten &amp;#039;&amp;#039;(Nodes)&amp;#039;&amp;#039;, die Speicherung im RAM oder auf der Festplatte, mehrere Tabellen und atomare Transaktionen.&lt;br /&gt;
&lt;br /&gt;
Außerdem besitzt die Standardbibliothek mächtige [[Socket (Software)|Socket]]-Funktionen für [[Transmission Control Protocol|TCP]] und [[User Datagram Protocol|UDP]] und viele andere kleine Werkzeugfunktionen für Listen, Binärdaten etc.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
=== Berechnung der Fakultät ===&lt;br /&gt;
{{Hauptartikel|Fakultät (Mathematik)}}&lt;br /&gt;
Dieser Code muss in der Datei &amp;lt;code&amp;gt;test.erl&amp;lt;/code&amp;gt; stehen, da das Modul (Zeile 1) ebenfalls &amp;#039;&amp;#039;test&amp;#039;&amp;#039; heißt. Die Export-Direktive macht die Funktion &amp;#039;&amp;#039;fac()&amp;#039;&amp;#039; auch von außerhalb aufrufbar.&lt;br /&gt;
&lt;br /&gt;
Die beiden Zeilen, die mit &amp;#039;&amp;#039;fac&amp;lt;nowiki&amp;gt;(&amp;lt;/nowiki&amp;gt;&amp;#039;&amp;#039; beginnen, werden &amp;#039;&amp;#039;clauses&amp;#039;&amp;#039; genannt. Im [[C++]]-Jargon könnte man die Nutzung von &amp;#039;&amp;#039;clauses&amp;#039;&amp;#039; mit dem [[Überladen]] vergleichen. Bei jedem Aufruf einer Funktion wird der Reihe nach durchprobiert, zu welchem &amp;#039;&amp;#039;clause&amp;#039;&amp;#039; die gegebenen Argumente passen (&amp;#039;&amp;#039;match&amp;#039;&amp;#039;), wobei der erste passende &amp;#039;&amp;#039;clause&amp;#039;&amp;#039; genutzt wird. Der letzte &amp;#039;&amp;#039;clause&amp;#039;&amp;#039; endet mit &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;, alle vorherigen mit &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;erlang&amp;quot;&amp;gt;&lt;br /&gt;
-module(test).&lt;br /&gt;
-export([fac/1,fac_tr/1]).&lt;br /&gt;
&lt;br /&gt;
%%% nicht-endrekursive Version&lt;br /&gt;
fac(0) -&amp;gt; 1;&lt;br /&gt;
fac(N) -&amp;gt; N * fac(N-1).&lt;br /&gt;
&lt;br /&gt;
%%% endrekursive Version (tail recursive)&lt;br /&gt;
fac_tr(0,Yet) -&amp;gt; Yet;&lt;br /&gt;
fac_tr(N,Yet) -&amp;gt; fac_tr(N-1,Yet*N).&lt;br /&gt;
&lt;br /&gt;
%% Hilfsfunktion&lt;br /&gt;
fac_tr(N) -&amp;gt; fac_tr(N,1).&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Quicksort ===&lt;br /&gt;
{{Hauptartikel|Quicksort}}&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;erlang&amp;quot;&amp;gt;&lt;br /&gt;
%% quicksort(List)&lt;br /&gt;
%% Sort a list of items&lt;br /&gt;
-module(quicksort).&lt;br /&gt;
-export([qsort/1]).&lt;br /&gt;
&lt;br /&gt;
qsort([]) -&amp;gt; [];&lt;br /&gt;
qsort([Pivot|Rest]) -&amp;gt;&lt;br /&gt;
    qsort([ X || X &amp;lt;- Rest, X &amp;lt; Pivot])&lt;br /&gt;
    ++ [Pivot] ++&lt;br /&gt;
    qsort([ Y || Y &amp;lt;- Rest, Y &amp;gt;= Pivot]).&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel wird die Funktion &amp;#039;&amp;#039;qsort&amp;#039;&amp;#039; [[Rekursion|rekursiv]] aufgerufen, bis nichts mehr zum [[Sortieren]] vorhanden ist.&lt;br /&gt;
&lt;br /&gt;
Der Ausdruck&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;erlang&amp;quot;&amp;gt;&lt;br /&gt;
[ X || X &amp;lt;- Rest, X &amp;lt; Pivot]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
kann interpretiert werden als „wähle alle ‚X‘, wobei ‚X‘ ein Element von ‚Rest‘ ist und ‚X‘ kleiner ist als ‚Pivot‘“. Dies hat eine sehr bequeme Art der Listenbehandlung zur Folge (in der Literatur als &amp;#039;&amp;#039;[[List Comprehension]]&amp;#039;&amp;#039; bezeichnet). Praktisch bedeutet dies, dass eine Liste zurückgegeben wird, die alle Elemente aus &amp;#039;&amp;#039;Rest&amp;#039;&amp;#039; enthält, die kleiner als &amp;#039;&amp;#039;Pivot&amp;#039;&amp;#039; sind (aber nicht notwendigerweise nach Größe geordnet sind).&lt;br /&gt;
&lt;br /&gt;
=== Eine kleine verteilte Anwendung, die auf zwei Erlang-Prozessen läuft ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;erlang&amp;quot;&amp;gt;&lt;br /&gt;
-module(ping_pong).&lt;br /&gt;
-export([ping/0, pong/0]).&lt;br /&gt;
&lt;br /&gt;
ping() -&amp;gt;&lt;br /&gt;
    Receiver = spawn(ping_pong, pong, []),&lt;br /&gt;
    Receiver ! {self(), ping},&lt;br /&gt;
    receive&lt;br /&gt;
        pong -&amp;gt;&lt;br /&gt;
            ping&lt;br /&gt;
    end.&lt;br /&gt;
&lt;br /&gt;
pong() -&amp;gt;&lt;br /&gt;
    receive&lt;br /&gt;
        {Sender, ping} -&amp;gt;&lt;br /&gt;
            Sender ! pong&lt;br /&gt;
    end.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kommuniziert wird per [[Nachrichtenaustausch|Message Passing]]. Der Operator ! sendet eine Nachricht, die asynchron übertragen wird, d.&amp;amp;nbsp;h. der Prozess wartet nicht, bis die Nachricht empfangen wurde.&lt;br /&gt;
&lt;br /&gt;
=== Mnesia ===&lt;br /&gt;
Einträge in der Mnesia-Datenbank (siehe oben) sind Erlang-Records (&amp;#039;&amp;#039;Records&amp;#039;&amp;#039; sind [[syntaktischer Zucker]] zum einfacheren Umgang mit großen Tupeln), sprich Tupel nach dem Muster &amp;lt;samp&amp;gt;{recordname,key,feld1,feld2,feld3}&amp;lt;/samp&amp;gt;. Das erste Feld im Tupel muss der Tabellenname sein (bei &amp;#039;&amp;#039;Records&amp;#039;&amp;#039; ist das erste Feld im generierten Tupel der Name des &amp;#039;&amp;#039;Records&amp;#039;&amp;#039;), das zweite Feld ist die für relationale Datenbanken typische, eindeutige ID in der jeweiligen Tabelle. Beispiel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;erlang&amp;quot;&amp;gt;&lt;br /&gt;
%% Shell-Sitzung&lt;br /&gt;
% Record definieren&lt;br /&gt;
rd(table1,{field1,field2}).&lt;br /&gt;
&lt;br /&gt;
% Mnesia-Instanz erzeugen (Struktur im aktuellen Verzeichnis)&lt;br /&gt;
mnesia:create_schema([node()]).&lt;br /&gt;
% Mnesia-Server starten&lt;br /&gt;
mnesia:start().&lt;br /&gt;
&lt;br /&gt;
% Definiere Tabelle &amp;#039;table1&amp;#039; mit den Feldern field1 und field2 (Wie der Record)&lt;br /&gt;
mnesia:create_table(table1,[{attributes,record_info(fields,table1)}]).&lt;br /&gt;
&lt;br /&gt;
% Definiere Transaktion, die einen Datensatz einfügt.&lt;br /&gt;
F = fun() -&amp;gt; Record = #table1{ field1=helloWorld, field2=xyz }, mnesia:write(Record) end.&lt;br /&gt;
% Das gleiche wie&lt;br /&gt;
% F = fun() -&amp;gt; Record = {table1, helloWorld,xyz}, mnesia:write(Record) end.&lt;br /&gt;
&lt;br /&gt;
% Führe atomare Transaktion aus.&lt;br /&gt;
mnesia:transaction(F).&lt;br /&gt;
&lt;br /&gt;
% Query-Transaktion. qlc:q() kompiliert eine Listenkomprehension, qlc:e() führt sie aus.&lt;br /&gt;
G = fun() -&amp;gt; Query = qlc:q([X || X &amp;lt;- mnesia:table(table1)]), qlc:e(Query) end.&lt;br /&gt;
&lt;br /&gt;
% Führe Transaktion aus. ListOfTuples ist eine Liste der Tupel, die die Anfrage erfüllen&lt;br /&gt;
{atomic, ListOfTuples} = mnesia:transaction(G).&lt;br /&gt;
&lt;br /&gt;
mnesia:stop().&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prominente Anwendungen ==&lt;br /&gt;
*[[AnyDesk]] – [[Fernwartungssoftware]]&lt;br /&gt;
*[[CouchDB]] – [[Dokumentenorientierte Datenbank]]&lt;br /&gt;
* [[ejabberd]] – [[XMPP]]-[[Server]]&lt;br /&gt;
* [[RabbitMQ]] – [[AMQP]] Messaging Server&lt;br /&gt;
* [[Riak]] – [[Datenbank]]&lt;br /&gt;
* [[SimpleDB]] – Datenbank der [[Amazon Web Services]]&lt;br /&gt;
* [[WhatsApp]]-Backend – Mobilfunk-[[Instant Messaging|Messenger]]&lt;br /&gt;
* [[YXA]] – [[Session Initiation Protocol|SIP]] Server&lt;br /&gt;
* [[Zotonic]] – [[Content-Management-System|CMS]]/[[Framework]]&lt;br /&gt;
&lt;br /&gt;
== Kommerzieller Einsatz von Erlang ==&lt;br /&gt;
Erlang ist eine der wenigen funktionalen Programmiersprachen, die auch in der Industrie eingesetzt werden. Zu den bekannten Anwendern gehören:&lt;br /&gt;
* Alteon/Bluetail/[[Nortel Networks|Nortel]] (verteiltes, fehlertolerantes E-Mail-System, [[Secure Sockets Layer|SSL]]-Beschleuniger)&lt;br /&gt;
*[[AnyDesk]] – [[Fernwartungssoftware]]&lt;br /&gt;
* Cellpoint (Ortsbasierte mobile Dienste)&lt;br /&gt;
* Corelatus ([[Signalling System 7|SS7]] signalling black box).&lt;br /&gt;
* [[Ericsson]] (AXD301-[[Vermittlungsstelle|Switch]])&lt;br /&gt;
* [[Facebook]] ([[ejabberd]]-based Chat Engine)&lt;br /&gt;
* Finnish Meteorological Institute (Datenerfassung und Echtzeitüberwachung)&lt;br /&gt;
* [[GitHub]] (für RPC)&amp;lt;ref&amp;gt;[https://github.com/blog/531-introducing-bert-and-bert-rpc github.com]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* IN Switch Solutions (ePIN elektronisches Zahlungssystem)&lt;br /&gt;
* Mobilearts ([[Global System for Mobile Communications|GSM]] und [[Universal Mobile Telecommunications System|UMTS]]-Dienste)&lt;br /&gt;
* Motivity Telecom (SS7/[[Integrated Services Digital Network|ISDN]] [[Gateway (Informatik)|Gateways]])&lt;br /&gt;
* Netkit Solutions (Netzwerktechniküberwachung &amp;amp; Operations-Support-Systeme)&lt;br /&gt;
* Process-one (Kommerzialisiert den [[ejabberd]] [[Extensible Messaging and Presence Protocol|XMPP]] Server)&lt;br /&gt;
* [[Telekom Deutschland#Mobilfunk|Telekom Deutschland]] (Mobilfunkbetreiber)&lt;br /&gt;
* [[Telia]] (Telekomdienstleister)&lt;br /&gt;
* Tenerife Skunkworks (Online-Pokerserver)&lt;br /&gt;
* Clustrx (HPC-OS)&amp;lt;ref&amp;gt;{{Webarchiv |url=http://www.erlang-solutions.com/section/113/ |wayback=20111230022501 |text=erlang-solutions.com}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[WhatsApp]] (Mobiler Messenger via [[XMPP]])&amp;lt;ref&amp;gt;[https://blog.whatsapp.com/170/EINE-MILLION%21 blog.whatsapp.com]&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Tambur.io ([[WebSocket]] Messaging Gateway als [[Software as a Service]])&amp;lt;ref&amp;gt;{{Webarchiv|url=http://www.tambur.io/ |wayback=20150929201136 |text=tambur.io |archiv-bot=2024-12-10 09:31:08 InternetArchiveBot }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* [[Discord (Software)|Discord]] (Echtzeit-Kommunikation)&amp;lt;ref&amp;gt;{{Internetquelle |autor=Matt Nowack |url=https://discord.com/blog/using-rust-to-scale-elixir-for-11-million-concurrent-users |titel=Using Rust to Scale Elixir for 11 Million Concurrent Users |datum=2019-05-17 |abruf=2025-04-18 |sprache=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Pavlo Baron: &amp;#039;&amp;#039;Erlang/OTP&amp;amp;nbsp;– Plattform für massiv-parallele und fehlertolerante Systeme&amp;#039;&amp;#039;. Open Source Press, München 2012, ISBN 978-3-941841-45-1&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Commonscat|Erlang (programming language)|Erlang (Programmiersprache)}}&lt;br /&gt;
* [https://www.erlang.org/ www.erlang.org] – Homepage von Open Source Erlang&lt;br /&gt;
* [http://erlangcentral.org/ erlangcentral.org] – Erlang Community-Seite&lt;br /&gt;
* [[Tim Pritlove]]: [https://cre.fm/cre082-erlang Erlang-Podcast] auf [[CRE (Podcast)|CRE]] (März 2008)&lt;br /&gt;
* [https://events.ccc.de/congress/2007/Fahrplan/events/2216.en.html 24c3 – Konzeptionelle Einführung in Erlang] ([https://media.ccc.de/v/24c3-2216-de-erlang Video])&lt;br /&gt;
* [http://www.erlang.se/doc/programming_rules.shtml Programming Rules and Conventions]&lt;br /&gt;
* [http://yaws.hyber.org/ yaws.hyber.org] – Homepage des „Yaws“-Webservers&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4324177-3}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Erlang (Programmiersprache)| ]]&lt;br /&gt;
[[Kategorie:Funktionale Programmiersprache]]&lt;br /&gt;
[[Kategorie:Verteilte Datenverarbeitung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Kjalarr</name></author>
	</entry>
</feed>