Erlang | |
---|---|
Семантыка | функцыянальная |
З’явілася ў | 1986 |
Аўтар(ы) | Джо Армстронг, Роберт Вірдзінг, Майк Уільямс |
Пашырэнне файлаў | .erl, .hrl |
Тыпізацыя даных | дынамічная, строгая |
Зведала ўплыў | Lisp, Prolog, Smalltalk |
Паўплывала на | Clojure, Elixir, Rust, Scala, Go |
Ліцэнзія | Apache Software License 2.0[d][1] |
Сайт | erlang.org (англ.) |
Erlang (эрланг) — функцыянальная мова праграмавання з дынамічнай тыпізацыяй, створаная для распрацоўкі размеркаваных сістэм, устойлівых да памылак. Праграма на Erlang звычайна пабудавана з сотняў паралельных легкаважных працэсаў, якія ўзаемадзейнічаюць праз абмен асінхроннымі паведамленнямі.
Erlang была створана ў 1986 годзе ў кампаніі Ericsson Джо Армстрангам, Робертам Вірдзінгам і Майкам Уільямсам. Яны даследавалі магчымасць выкарыстання тагачасных моў праграмавання для пабудовы тэлекамунікацыйных сістэм, аднак у выніку стварылі ўласную мову праграмавання і платформу Erlang/OTP (Open Telecom Platform)[2].
Першапачаткова гэта было прапрыетарнае праграмнае забеспячэнне, аднак у 1998 годзе Ericsson вырашыла адмовіцца ад далейшага выкарыстання мовы ўнутры кампаніі для новых прадуктаў, што прывяло да выпуску Erlang у якасці свабоднага праграмнага забеспячэння з адкрытым зыходным кодам і сыходу стваральнікаў мовы з кампаніі. У выніку кампанія зноў наняла Армстранга ў 2004 годзе і працягнула выкарыстоўваць Erlang[3].
Erlang выкарыстоўваецца ў мабільных сетках GPRS, 3G і LTE па ўсім свеце. Аднак гэта не адзіная сфера яе ўжывання — Erlang была выкарыстана для распрацоўкі RabbitMQ і WhatsApp, таксама яе выкарыстоўваюць унутры сваіх праектаў такія кампаніі, як Facebook, Cisco, Goldman Sachs, Nintendo і Samsung[4][5].
Прыклад напісання праграмы падліку фактарыяла:
-module(fact). % Вызначэнне назвы модуля, павінна супадаць з назвай файла ('fact.erl')
-export([fac/1]). % Экспарт функцыі, пазначэнне арнасці 1
fac(0) -> 1; % Пры перадачы 0 вернецца 1, інакш - гл. наступны радок
fac(N) when N > 0, is_integer(N) -> N * fac(N-1). % Рэкурсіўны падлік, вяртанне рэзультата