Schreiben Sie eine gleichzeitige Anwendung mit Erlang (und Elixier)

Offenlegung: Ihr Support hilft dabei, die Website am Laufen zu halten! Für einige der auf dieser Seite empfohlenen Dienstleistungen erhalten wir eine Empfehlungsgebühr.


Erlang ist eine universelle Programmiersprache zum Erstellen gleichzeitiger Anwendungen.

Ursprünglich für Telekommunikationsanwendungen entwickelt, ist es eine hoch skalierbare, funktionale Sprache, die sich ideal für Telekommunikation, Webanwendungen, verteiltes Computing, Instant Messaging, E-Commerce und andere Dienste eignet, die eine ständige Verbindung erfordern und gleichzeitige Eingaben von a verarbeiten müssen große Anzahl von Quellen.

Erlang und Elixier

Einige der Funktionen, die Erlang für moderne Programmierer attraktiv machen, sind:

  • Parallelität, sodass Erlang-Programme Eingaben aus mehreren Quellen akzeptieren und in der verteilten Umgebung funktionieren können.

  • Fehlertoleranz, sodass Systeme auch dann weiterarbeiten können, wenn einige Elemente des Programms ausfallen oder fehlerhaft sind. Dies macht es zu einer äußerst nützlichen Sprache für ständig aktive Umgebungen wie eine Web-Community oder eine Telekommunikationsplattform.

  • Hot-Code-Laden, sodass Code geändert und Programme aktualisiert werden können, ohne dass das System gestoppt oder neu gestartet werden muss.

  • Nachrichtenübermittlung statt gemeinsam genutzter Variablen, sodass Prozesse mit einem höheren Grad an Parallelität kommunizieren können.

  • Speicherbereinigung mit automatischer Speicherverwaltung für verbesserte Geschwindigkeit und Leistung.

Erlang ist nicht so einfach zu erlernen wie einige Programmiersprachen, da seine Syntax und sein funktionales Design einzigartig sind und eine scharfe Lernkurve für neue Programmierer schaffen.

Geschichte

Die Erlang-Sprache wurde erstmals 1986 von den Ericsson-Mitarbeitern Joe Armstrong, Robert Virding und Mike Williams entwickelt.

Die Sprache wurde entwickelt, um vorhandene Telefonieanwendungen zu verbessern, und wurde stark von der PLEX-Sprache beeinflusst.

Die erste Version von Erlang wurde in Prolog implementiert, dies erwies sich jedoch als zu langsam für den Telefonaustausch. Um dies zu lösen, entwickelte das Team 1992 die virtuelle BEAM-Maschine.

BEAM kompilierte den Erlang-Code viel schneller zu C, sodass Erlang schnell von einer Prototypsprache zu realen Anwendungen wechseln konnte. 1995 wurde Erlang in die Geldautomatenbörse AXD implementiert.

Im Jahr 1998 verbot Ericsson Radio Systems jedoch die Verwendung von Erlang in neuen Produkten, da versucht wurde, alle Produkte in nicht proprietäre Sprachen zu verschieben.

Die neue Richtlinie veranlasste Joe Armstrong unter anderen Erlang-Programmierern zum Rücktritt und führte schließlich dazu, dass das Team Erlang später in diesem Jahr für die Open-Source-Welt freigab.

Ericsson war kein proprietäres Produkt mehr und gewann in der Telekommunikationsbranche an Bedeutung. Später kehrte Ericsson seine Haltung zu Erlang um und stellte Armstrong wieder ein.

Erlang wird jetzt von Telekommunikationsunternehmen weltweit aktiv genutzt, darunter T-Mobile, Whatsapp, Ubiquiti und IDT Corp. Ericsson behält die Sprache weiterhin bei und verwendet sie in den Support-Knoten und Mobilfunknetzen von Ericsson, einschließlich ihrer LTE-Netze.

Ressourcen

Angesichts des unglaublichen Bedarfs an gleichzeitiger Programmierung, bei dem webbasierte und mobile Technologien ständig erweitert werden, erfreut sich Erlang immer größerer Beliebtheit, und viele seriöse Entwickler wechseln.

Infolgedessen stehen zahlreiche kostenlose Online-Ressourcen zur Verfügung, die Ihnen den Einstieg erleichtern und Sie dabei unterstützen.

  • Erlang.org: Die offizielle Website von Erlang. Diese Seite enthält Software-Downloads, Dokumentationen und Benutzerhandbücher, Links zu Online-Ressourcen und Communitys sowie Informationen zu aktuellen Nachrichten und bevorstehenden Erlang-Veranstaltungen.

  • Erlang Central: Diese Community-gesteuerte Site bietet alles, was Sie brauchen, um loszulegen und Ihr Erlang-Wissen weiter auszubauen. Es enthält Tutorials, Videos, ein Wiki, eine Jobbörse und ein Community-Forum.

  • Meistens Erlang: Ein regelmäßiger Podcast über Erlang. Sie diskutieren grundlegende Programmierkonzepte, interviewen wichtige Innovatoren und beraten neue und erfahrene Erlang-Programmierer.

  • Erlang Factory: Diese jährliche technische Konferenz bringt Erlang-Entwickler aus der ganzen Welt zusammen, um neue Innovationen und Theorien zu diskutieren, und bietet eine Reihe optionaler dreitägiger Intensivkurse an.

Bücher

Erlang unterscheidet sich stark von den meisten Sprachen, und selbst erfahrene Programmierer möchten möglicherweise einen praktischen Leitfaden zur Verfügung haben, um einige seiner Exzentrizitäten im Auge zu behalten. Egal, ob Sie seit Jahren programmieren oder sich in die Entwicklung der nächsten großen mobilen App stürzen, es gibt einen Erlang-Titel für Sie:

  • Programmieren von Erlang: Software für eine gleichzeitige Welt von Joe Armstrong: Geschrieben von einem der ursprünglichen Autoren von Erlang. Dies ist der endgültige Leitfaden für die Sprache und ihre Verwendung in gleichzeitigen Umgebungen wie Cloud-Anwendungen, Mehrbenutzerspielen und Community-basierten Websites. Das Buch richtet sich an Personen mit wenig Erfahrung in der funktionalen oder parallelen Programmierung und vermittelt diese Konzepte anhand von Tutorials und Beispielen aus der Praxis.

  • Erstellen von Webanwendungen mit Erlang von Zachary Kessin: Dieses Buch wurde für erfahrene Webentwickler mit grundlegenden Erlang-Kenntnissen entwickelt und führt Programmierer durch eine Reihe einfacher Webdienst-Programmierprojekte, um sie darauf vorzubereiten, ihre eigenen Webanwendungen zu erstellen und online zu stellen.

  • Lerne dir etwas Erlang zum Wohle! Von Fred Herbert: Wie der humorvolle Titel andeutet, gibt dieses Buch erfreulicherweise zu, dass Erlangs Syntax unkonventionell ist, dass seine Datenstrukturen ungewöhnlich sind und dass sein Typensystem viele Neulinge im Allgemeinen abschreckt – genau deshalb benötigen Sie eine Anleitung zu seiner ungewöhnlichen und doch mächtige Konventionen. Es beginnt langsam mit sehr grundlegenden Techniken und baut sich in komplexere Programmierkonzepte auf, wenn sich der Leser an die Feinheiten der neuen Sprache gewöhnt. Wenn Sie keine physische Kopie benötigen, hat der Autor das Buch auch kostenlos online zur Verfügung gestellt.

  • Einführung in Erlang: Erste Schritte in der funktionalen Programmierung von Simon St Laurent: Dieses Buch widmet der Installation und der Erlang-Shell viel Zeit, um sicherzustellen, dass neue Programmierer (oder diejenigen, die neu in Erlang sind) mit der Befehlszeilenschnittstelle vollständig vertraut sind, und fahren dann fort die Sprache in sehr grundlegende Konzepte zu zerlegen und diese durch die Erstellung einfacher Programme zu demonstrieren.

  • Entwerfen für Skalierbarkeit mit Erlang / OTP von Cesarini und Vinoski: Dieses Buch richtet sich an erfahrene Erlang-Programmierer, die ihr Verständnis erweitern und die Open Telecom Platform (OTP) zum Entwerfen und Erstellen von kommerziellen Systemen verwenden möchten, die sowohl komplex als auch skalierbar sind.

Beyong Erland: Elixier

Elixier ist eine relativ neue Sprache, hat aber eine lange Geschichte. Und alles begann mit Erlang.

Exlixer-Geschichte

Seit Mitte der 1980er Jahre hat Erlang gute Arbeit geleistet, hauptsächlich für Telefonieanwendungen. Aber spulen Sie drei Jahrzehnte vor und denken Sie über die Anforderungen hoch skalierbarer Webanwendungen nach.

Pinterest liefert beispielsweise 14.000 Benachrichtigungen pro Sekunde. Facebook muss Updates von 1,6 Milliarden (mit einem B!) Aktiven Nutzern erhalten und Nachrichten zurücksenden. Diese Art von hoher Parallelität und hoher Verfügbarkeit ist genau das, wofür Erlang entwickelt wurde.

Und so ist diese alte Warhorse-Telekommunikationssprache plötzlich wieder trendy und beliebt geworden. Außer in einer neuen Form.

Es stellt sich heraus, dass Erlang wirklich schwer zu lesen und zu schreiben ist. Dies ist nicht überraschend, da es vor Jahrzehnten entwickelt wurde. Dies war, bevor „Spaß beim Verwenden“ eine wichtige Überlegung bei der Sprachgestaltung war.

Erlang ist nicht gut für die Generation von Entwicklern geeignet, die mit Ruby und JavaScript aufgewachsen sind. Neben der Benutzerfreundlichkeit verfügt Erlang nicht über alle Funktionen, die für moderne Webanwendungen erforderlich sind.

So schuf José Valim 2012 Elixir. Elixir-Code wird zu Erlang-Bytecode kompiliert und zur Erlang-Laufzeit ausgeführt. Sie können Erlang-Code sogar direkt in Elixir einfügen (etwas analog dazu, wie Sie JavaScript in CoffeeScript einbinden können)..

Valim war Teil des Ruby on Rails-Entwicklungsteams und hat sogar ein Buch über die Rails-Entwicklung verfasst. Das Ruby on Rails-Team nimmt die Entwicklererfahrung sehr ernst, und diese Sorge hat das Design von Elixir beeinflusst.

Die Syntax ist Ruby sehr ähnlich und viel besser lesbar als Erlang. Neben der einfacheren Syntax erweitert Elixir die Funktionen von Erlang um unter anderem Metaprogrammierung, Polymorphismus und Inline-Dokumentation.

Kurze Einführung in die funktionale Programmierung

Elixir ist wie Erlang eine funktionale Programmiersprache. Dies unterscheidet sich ein wenig von den meisten anderen Sprachen, die fast alle zwingend und normalerweise objektorientiert sind.

Die meisten Programmiersprachen haben eine Art Codeblock-Syntax, die als “Funktion” bezeichnet wird. In einigen objektorientierten Sprachen werden sie als “Methoden” bezeichnet, aber jeder weiß, dass eine Methode nur eine “Funktion” ist, die an ein Objekt angehängt ist.

Aber ist eine Funktion wirklich eine Funktion??

In der Softwareentwicklung sind wir es gewohnt, dass Funktionen etwas tun. Wir nennen diese Dinge “Nebenwirkungen”.

In der Mathematik haben Funktionen jedoch keine Nebenwirkungen. Sie definieren keinen Kreis mit einer Funktion, die alle Punkte eines Kreises darstellt und auch die Kursnummer für Intro in Hypothetical Geometry ändert.

In der Mathematik ist eine Funktion deterministisch; Bei einer bestimmten Eingabe x wird immer die genaue Ausgabe y zurückgegeben und nichts anderes getan.

Indem wir Nebenwirkungen in die Programmierung einbeziehen, führen wir state ein – den aktuellen Zustand der laufenden Programmumgebung. Und das Problem mit dem Zustand ist, dass er sich im Laufe der Zeit ändern kann.

Eine Variable könnte jetzt eine Sache bedeuten und in zehn Minuten etwas anderes. Dies bedeutet, dass ein bestimmter Funktionsaufruf mit der Eingabe x zwei verschiedene Werte von y zu zwei verschiedenen Zeiten zurückgeben kann.

Ist das ein Problem? Kommt darauf an. Keine der beliebtesten Entwicklungssprachen ist rein funktional, so dass es eindeutig möglich ist, alle möglichen Dinge (oder fast alles) mit Sprachen zu erstellen, die auf Nebenwirkungen und globalem Zustand beruhen.

In einem stark verteilten, ständig aktiven System kann dies jedoch ein Problem sein. Wenn ein System auf mehrere Dutzend (oder mehrere Tausend) physische Computer verteilt ist, wie können Sie Änderungen am globalen Status an alle weitergeben??

Wie können Sie den globalen Status schnell wiederherstellen, wenn ein System ausfällt? Wenn ein Funktionsaufruf zu unterschiedlichen Zeiten unterschiedliche Werte zurückgibt, wie können Sie sicher sein, dass der heute ausgeführte Test morgen noch bestanden wird??

Die funktionale Programmierung versucht, all diese Probleme zu vermeiden, indem sie zustandslos ist. Ein funktional gestaltetes Programm ist eine Sammlung von Funktionen, die vollständig deterministisch sind, was bedeutet, dass das gesamte System deterministisch ist. Bei einer bestimmten Eingabe ist die Ausgabe garantiert.

Diese Art von mathematischer Reinheit war lange Zeit für akademische Informatiker von Interesse, aber die reale Welt der Softwareentwicklung war weitgehend uninteressiert – bis plötzlich aufgrund der Bedürfnisse des Internets alle interessiert wurden.

Die funktionale Programmierung ist einer der wichtigsten aktuellen Trends in der Entwicklung von Webanwendungen.

Funktionale Programmierressourcen

Wenn Sie sich wirklich mit Elixir beschäftigen möchten, müssen Sie sich mit funktionaler Programmierung beschäftigen. Hier fangen Sie an.

  • Artikel

    • Artikel zur funktionalen Programmierung bei Wikipedia: Ein sehr detaillierter Überblick über das Thema.

    • Keine Angst vor funktionaler Programmierung: Eine relativ leicht verständliche Erklärung der funktionalen Programmierung, die für JavaScript-Entwickler geschrieben wurde.

    • Eine praktische Einführung in die funktionale Programmierung

    • Grundlagen der funktionalen Programmierung: Worum geht es??

    • Was ist funktionale Programmierung??.

  • Videos

    • Funktionale Programmierung; Was? Warum? Wann?

    • Funktionale Programmierung nach ersten Prinzipien

    • Die Freude an der funktionalen Programmierung

    • Wiedergabeliste: Funktionale Programmierung – Grundlegende Konzepte erklärt.

  • Bücher

    • Rein funktionale Datenstrukturen

    • Algorithmen: ein funktionaler Programmieransatz

    • Eine Einführung in die funktionale Programmierung durch Lambda-Kalkül

    • Funktionales Denken: Paradigma über Syntax

    • Funktional werden

    • Diskrete Mathematik und funktionale Programmierung.

Elixier-Ressourcen

Es gibt viele Ressourcen in vielen Formen, die Ihnen helfen, Elixier zu meistern.

Internetquellen

Der erste Ort, an dem Sie sich online mit Elixir befassen können, ist die offizielle Website für Elixir-Sprachen.

Tutorials
  • Offizieller Leitfaden für die ersten Schritte

  • 30 Tage Elixier

  • Elixir School: Lektionen über die Programmiersprache Elixir.

  • Video-Anleitung zu Elixir

  • Etüden für Elixier

  • Elixier Spickzettel.

Werkzeuge
  • Phoenix: ein Webentwicklungs-Framework für Elixir. Und verpassen Sie nicht dieses großartige Buch über Phoenix, das vom Schöpfer von Phoenix und vom Schöpfer von Elixir gemeinsam verfasst wurde.

  • Awesome Elixir: Von der Community kuratierte Liste großartiger Projekte für Elixir.

Gemeinschaft und kontinuierliches Lernen
  • Elixier Forum

  • Elixier Subreddit

  • Der Elixierbrunnen

  • Wöchentliche Elixier-Verdauung

  • Elixierradar.

Bücher über Elixier

  • Programmierelixier: Funktional |> Gleichzeitig |> Pragmatisch |> Spaß

  • Metaprogrammier-Elixier: Schreiben Sie weniger Code, erledigen Sie mehr (und haben Sie Spaß!)

  • Elixier in Aktion

  • Einführung in Elixir: Erste Schritte in der funktionalen Programmierung

  • Elixier lernen

  • Elixier-Kochbuch.

Soll ich Elixier lernen??

Wenn Sie an hochmodernen Webanwendungen arbeiten möchten, insbesondere an Anwendungen, die eine große Anzahl gleichzeitiger Benutzer bedienen, ist Elixir auf jeden Fall einen Besuch wert.

Fazit

Obwohl die Erlang-Community immer noch eine relativ seltene Programmiersprache ist, wächst sie schnell, insbesondere da die Nachfrage nach mobilen Lösungen, Webanwendungen und nahtloser Online-Zusammenarbeit steigt.

Obwohl in vielerlei Hinsicht unkonventionell, macht die integrierte Unterstützung für Parallelität und Verteilung, hohe Skalierbarkeit und Fehlertoleranz Erlang zu einer äußerst attraktiven Sprache in unserer ständig vernetzten Welt.

Aber es könnte besser sein, sich auf Elixir zu konzentrieren. Es hängt genau davon ab, was Sie tun möchten. Unabhängig davon sind beide großartige Sprachen.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Adblock
    detector