Erlang is een functionele, gelijktijdige programmeertaal ontworpen voor het bouwen van fouttolerantie, gedistribueerde systemen. Ontwikkeld bij Ericsson in 1986 door Joe Armstrong, Mike Williams en Robert Virding, is Erlang gebouwd om telefooncentrales aan te sturen die 99,9999999% uptime vereisten ("nine nines" beschikbaarheid). Het draait op de BEAM virtuele machine en introduceerde het Actor-model van gelijktijdigheid in de mainstream software-engineering.
De kenmerkende eigenschappen van Erlang zijn lichtgewicht processen (miljoenen kunnen tegelijkertijd draaien), berichtenuitwisseling (geen gedeeld geheugen tussen processen) en hot code swapping (draaiende systemen upgraden zonder ze te stoppen). De OTP (Open Telecom Platform) bibliotheek biedt beproefde patronen voor het bouwen van fouttolerante supervisors, toestandsmachines en gedistribueerde applicaties.
Waarvoor wordt Erlang gebruikt?
Erlang drijft telecommunicatie-infrastructuur aan (Ericsson's systemen verwerken 40% van het wereldwijde mobiele verkeer), berichtensystemen (WhatsApp was gebouwd op Erlang en bediende 2 miljard gebruikers met een klein engineeringteam), realtime samenwerkingstools, betalingsverwerkingssystemen en gedistribueerde databases zoals CouchDB en Riak. Elixir, gebouwd op BEAM, heeft het bereik van Erlang uitgebreid naar webontwikkeling.
Erlang voor beginners
Erlang vereist een andere denkwijze — er zijn geen lussen (gebruik recursie), geen muteerbare variabelen, en gelijktijdigheid gaat via berichtenuitwisseling in plaats van threads. Maar deze beperkingen produceren opmerkelijk robuuste software. Erlang leren verdiept uw begrip van gelijktijdigheid, fouttolerantie en gedistribueerde systemen op manieren die weinig andere talen kunnen. Gebruik de online Erlang-compiler van myCompiler om te experimenteren met pattern matching, processen en OTP-gedragingen.
Erlang versus andere talen
Vergeleken met Go voor gelijktijdigheid biedt Erlang's actormodel sterkere foutisolatie (een gecrasht proces beïnvloedt de rest niet) terwijl Go's goroutines minder overhead hebben maar geheugen delen. Vergeleken met Elixir heeft Erlang een uitgebreidere syntaxis, maar Elixir draait op dezelfde BEAM VM met een modernere, Ruby-geïnspireerde syntaxis. Voor fouttolerantie in gedistribueerde systemen blijft Erlang/BEAM ongeëvenaard.
Waarom een online Erlang-compiler gebruiken?
Met een online Erlang-compiler, ook wel een Erlang-sandbox of BEAM-playground genoemd, kunt u Erlang-code rechtstreeks in uw browser compileren en uitvoeren zonder de Erlang-runtime te installeren. Dit is ideaal voor het leren van Erlang's pattern matching, het begrijpen van het actormodel van gelijktijdigheid, experimenteren met OTP-gedragingen en het verkennen van functionele programmeerconcepten zonder complexe lokale setup.
De online Erlang IDE van myCompiler biedt de volledige Erlang/OTP-runtime. U kunt processen spawnen, berichtenuitwisseling gebruiken, pattern matching toepassen op tuples en lijsten, en standaard OTP-modules gebruiken. Sla Erlang-programma's op en deel ze via URL, volledig gratis.
Waarom is Erlang zo populair?
De invloed van Erlang reikt veel verder dan zijn directe gebruikersbestand. Het gelijktijdigheidsmodel van de BEAM VM inspireerde talen als Elixir, Gleam en Akka's actormodel in Scala. WhatsApp's gebruik van Erlang om 2 miljard gebruikers te bedienen met 50 engineers werd legendarisch in de industrie. De supervision trees van het OTP-framework zijn een bewezen patroon voor het bouwen van betrouwbare gedistribueerde systemen. Voor iedereen die systemen bouwt die nooit mogen uitvallen, blijft Erlang's model de gouden standaard.
Erlang-carrièremogelijkheden
Erlang-expertise is gespecialiseerd maar zeer gewaardeerd voor functies als distributed systems engineer, telecommunicatie-engineer, backend-engineer bij bedrijven die BEAM gebruiken (Ericsson, WhatsApp, Discord) en Elixir-ontwikkelaar (aangezien Elixir en Erlang de BEAM-runtime delen). De groeiende populariteit van Elixir voor webontwikkeling heeft de vraag naar BEAM-vaardige engineers aanzienlijk vergroot.