Erlang (programming language): Difference between revisions

Content deleted Content added
Kckid (talk | contribs)
m ECT was and add on library stuck in google code. It is not part of Erlang. Erlang is not OOP in any way. Despite Joe Armstrong's off-hand comment that it was. Anyone who's been around a while knows he wasn't being serious. Implying or stating that Erlang/OTP was based on Alan Kay's OOP or the Grady Booch culture is an insult to his memory.
BrainStack (talk | contribs)
Link suggestions feature: 3 links added.
 
Line 41:
 
==History==
The name ''Erlang'', attributed to Bjarne Däcker, has been presumed by those working on the telephony switches (for whom the language was designed) to be a reference to Danish mathematician and engineer [[Agner Krarup Erlang]] and a [[Abbreviation#Syllabic abbreviation|syllabic abbreviation]] of "Ericsson Language".<ref name="hopl"/><ref>{{cite web |url=http://www.erlang.org/pipermail/erlang-questions/1999-February/000098.html |title=Erlang, the mathematician? |date=February 1999 }}</ref><ref>{{cite web |url=https://foldoc.org/Erlang |title=Free Online Dictionary of Computing: Erlang }}</ref> Erlang was designed with the aim of improving the development of telephony applications.<ref>{{cite web|url=http://erlang.org/course/history.html|title=History of Erlang|website=Erlang.org}}</ref> The initial version of Erlang was implemented in [[Prolog]] and was influenced by the programming language [[PLEX (programming language)|PLEX]] used in earlier Ericsson exchanges. By 1988 Erlang had proven that it was suitable for prototyping telephone exchanges, but the Prolog interpreter was far too slow. One group within Ericsson estimated that it would need to be 40 times faster to be suitable for production use. In 1992, work began on the [[BEAM (Erlang virtual machine)|BEAM]] [[virtual machine]] (VM), which compiles Erlang to C using a mix of natively compiled code and [[threaded code]] to strike a balance between performance and disk space.<ref>{{cite book |last=Armstrong |first=Joe |chapter=The development of Erlang |title=Proceedings of the second ACM SIGPLAN international conference on Functional programming |journal=ACM SIGPLAN Notices |date=August 1997 |volume=32 |issue=8 |pages=196–203 |doi=10.1145/258948.258967 |isbn=0897919181 |s2cid=6821037 }}</ref> According to co-inventor Joe Armstrong, the language went from laboratory product to real applications following the collapse of the next-generation [[AXE telephone exchange]] named [[:sv:AXE-N|''AXE-N'']] in 1995. As a result, Erlang was chosen for the next [[Asynchronous Transfer Mode]] (ATM) exchange ''AXD''.<ref name="hopl"/>
 
[[File:Robert Virding and Joe Armstrong, 2013.jpg|thumb|Robert Virding and Joe Armstrong, 2013]]
Line 79:
[[Elixir (programming language)|Elixir]] is a programming language that compiles into BEAM byte code (via Erlang Abstract Format).<ref>{{Cite web |title=Erlang/Elixir Syntax: A Crash Course |url=https://elixir-lang.org/crash-course.html |access-date=2022-10-10 |website=elixir-lang.github.com |language=en}}</ref>
 
Since being released as open source, Erlang has been spreading beyond telecoms, establishing itself in other vertical markets such as FinTech, gaming, healthcare, automotive, [[Internet of things|Internet of Things]] and blockchain. Apart from WhatsApp, there are other companies listed as Erlang's success stories, including [[Vocalink]] (a MasterCard company), [[Goldman Sachs]], [[Nintendo]], AdRoll, [[Grindr]], [[BT Mobile]], [[Samsung]], [[OpenX (company)|OpenX]], and [[SITA (business services company)|SITA]].<ref>{{cite web |url=https://www.erlang-solutions.com/blog/which-companies-are-using-erlang-and-why-mytopdogstatus.html |title=Which companies are using Erlang, and why? #MyTopdogStatus |work=erlang-solutions.com |date=11 September 2019 |access-date=15 March 2020}}</ref><ref>{{Cite web |url=https://www.erlang-solutions.com/blog/which-new-companies-are-using-erlang-and-elixir-mytopdogstatus.html |title=Which new companies are using Erlang and Elixir? #MyTopdogStatus |website=erlang-solutions.com |date=2 March 2020 | access-date=2020-06-24}}</ref>
 
==Functional programming examples==
Line 297:
 
==Implementation==
The official [[reference implementation]] of Erlang uses [[BEAM (Erlang virtual machine)|BEAM]].<ref>{{cite web |url=http://erlang.org/doc/reference_manual/code_loading.html#id90080 |title=Erlang – Compilation and Code Loading |website=erlang.org |access-date=2017-12-21}}</ref> BEAM is included in the official distribution of Erlang, called Erlang/OTP. BEAM executes [[bytecode]] which is converted to [[threaded code]] at load time. It also includes a native code compiler on most platforms, developed by the High Performance Erlang Project (HiPE) at [[Uppsala University]]. Since October 2001 the HiPE system is fully integrated in Ericsson's Open Source Erlang/OTP system.<ref>{{cite web |title=High Performance Erlang |url=http://www.it.uu.se/research/group/hipe/ |access-date=26 March 2011}}</ref> It also supports interpreting, directly from source code via [[abstract syntax tree]], via script as of R11B-5 release of Erlang.
 
==Hot code loading and modules==