Zie ook erlang , een eenheid van telefoonverkeer.
Erlang is een programmeertaal ontworpen voor het ontwikkelen van robuuste systemen van programma's die kunnen worden gedistribueerd over verschillende computers in een netwerk. Genoemd naar de Deense wiskundige Agner Krarup Erlang, werd de taal ontwikkeld door het Ericsson Computer Sciences Lab om software te bouwen voor zijn eigen telecommunicatieproducten. Erlang wordt al een aantal jaren gebruikt bij Ericsson en andere bedrijven, wordt onderwezen aan meer dan 80 universiteiten en hogescholen wereldwijd en is vrij beschikbaar als Open Source code.
Erlang is vergelijkbaar met Java in die zin dat het gebruik maakt van een virtuele machine en Multithreading ondersteunt. Echter, terwijl de Java-ontwikkelgemeenschap zich richt op webapplicaties, richt Erlang zich op de markt voor extreem robuuste servers en embedded systemen.
Erlang wordt beschreven als een functionele programmeertaal, wat betekent dat het de nadruk legt op de evaluatie van expressies in plaats van de uitvoering van commando's. De expressies gebruiken functies om basiswaarden af te leiden. (Twee andere bekende programmeermodellen zijn procedural en object-oriented .)
Hier volgen enkele kenmerken van Erlang:
- Omdat de locatie van programma-threads expliciet of onzichtbaar voor het programma kan worden gespecificeerd, kan een programma gemakkelijk worden gedistribueerd en op elk punt in een netwerk worden uitgevoerd.
- Erlang biedt dynamische datatype s, waardoor programmeurs systeemcomponenten kunnen ontwikkelen (zoals bericht dispatchers) die het niet uitmaakt welk type gegevens ze verwerken en andere die sterk datatype beperkingen afdwingen of die beslissen hoe te handelen op basis van het type gegevens dat ze ontvangen.
- Patroon matching maakt extreem compacte en duidelijke programma's mogelijk (ongeveer 5-10 keer korter dan equivalente programma's in C of Java).
- Net als Java, biedt Erlang garbage collecting; programmeurs hoeven zich geen zorgen te maken over het teruggeven van toegewezen geheugenruimte.
- Opwaarderen van de Erlang software vereist niet het stoppen van het systeem.
- Interfaces naar andere programmeertalen, zoals C, C++ en Java, zijn aanwezig.
- Erlang wordt geleverd met ontwerp patronen of sjablonen voor client-server ontwerp, toestands machines, event distributie, en thread supervisie.
- Erlang biedt een raamwerk dat distributie van programma's over een pool van servers ondersteunt, met automatisch herstel en herverdeling wanneer een server faalt.
- Het bevat ook krachtige componenten voor een netwerk systeem, inclusief een HTTP-server, een Simple Network Management Protocol ( SNMP ) agent, een Common Object Request Broker Architecture ( CORBA ) interface, een OAM subsysteem, en een volledig gedistribueerde database engine.
- Erlang's bytecode is identiek op alle platformen, en een netwerk van Erlang nodes kan bestaan uit elke mix van NT, UNIX, of andere ondersteunde platformen.
- Erlang is relatief eenvoudig te leren in vergelijking met C, C++, en Java.
De voorstanders van Erlang beweren dat het superieur is aan Java bij het ontwikkelen van back-end systemen die vereisen: fouttolerantie, gedistribueerde verwerking, een grote hoeveelheid gelijktijdige activiteit, real time responstijden in milliseconden, en non-stop werking.