Erlang

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). % Рэкурсіўны падлік, вяртанне рэзультата

Зноскі

  1. Erlang/OTP 18.0 has been released Праверана 24 лютага 2019.
  2. Erlang -- Academic and Historical Questions (англ.). www.erlang.org. Праверана 10 студзеня 2023.
  3. question about Erlang's future (англ.). www.erlang.org. Праверана 10 студзеня 2023.
  4. Which companies are using Erlang, and why? (англ.). erlang-solutions.com (11 верасня 2019). Праверана 10 студзеня 2023.
  5. Erlang -- What is Erlang? (англ.). www.erlang.org. Праверана 10 студзеня 2023.