Talk:Erlang (programming language)/Archive 1

Movie
It looks like "Erlang the Movie" was taken down from the Erlang website, whether due to bandwidth cost or to sheer embarrassment it's not clear. If it ever shows up at some permanent-looking address, I recommend a link here. I do have a copy, but I'd rather not publish it myself (not least due to copyright concerns). --&mdash;Ashley Y 10:52, 2005 Apr 16 (UTC)


 * I removed the link some time ago - after seeing the size of this monster, I guessed only few would appreciate it. What was content of this movie? --Pavel Vozenilek 16:12, 16 Apr 2005 (UTC)


 * It explains the features of Erlang. They make them clear by an example with a telephone central. --Ejabberd 22:50, 16 Apr 2005 (UTC)


 * There's a torrent of the movie available here: http://thepiratebay.org/details.php?id=3425809 -- Björn Lindström 22:55, 4 January 2006 (UTC)


 * Google video has an 11 minute version. I don't know if it is the same as the downloadble one. http://video.google.com/videoplay?docid=-5830318882717959520 --Joshd 08:52, 4 June 2006 (UTC)

Criticism, Review, Comparison?
I was hoping this page would tell me if the language was any good :) I wanted to see a criticism section, a brief mention of it's strengths and weakenesses, or a comparison to other languages used for the same purpose. Mathiastck 01:55, 23 June 2006 (UTC)

Armstrong's thesis
I've added a link to Armstrong's thesis, as it is an essential Erlang reading Dmitriid 12:02, 25 August 2006 (UTC)

About typing
The article says Erlang uses single assignment and dynamic typing. Aren't these two characteristics mutually exclusive? --Pezezin 17:07, 18 November 2006 (UTC)


 * No. Single assignment means that a name can have a value bound to it only once within a given scope. But it doesn't place any limits on what the type of the value being bound has to be. So I can write

-module(test). -export([testassign1/1, testassign2/1]). testassign1(A) -> B = A,  B. testassign2(A) -> B = 1, B = A,  B.


 * and when I use these functions  works just fine for values of various types

Eshell V5.5 (abort with ^G) 1> c(test.erl). {ok,test} 2> test:testassign1(256). 256 3> test:testassign1(3.1415927). 3.14159 4> test:testassign1("some text"). "some text"


 * but  spits up an error, since it's trying to bind a value to B twice

6> test1:testassign2(256). =ERROR REPORT==== 18-Nov-2006::18:33:41 === Error in process <0.31.0> with exit value: {{badmatch,256},[{test1,testassign2,1},{shell,exprs,6},{shell,eval_loop,3}]} ** exited: {{badmatch,256}, [{test1,testassign2,1},{shell,exprs,6},{shell,eval_loop,3}]} **


 * As the example above shows, the function  will fail even when the type of the new value I'm trying to bind is the same as the type that B is already bound to. The error isn't a type error, it's an attempt to assign different values to B. The only time   doesn't generate an error is when the value passed to it is the same as the value it internally binds to B - in that case the second "assignment" simply confirms that B is already bound to '1'.

8> test1:testassign2(1). 1


 * Dynamic typing means that the types of the values bound to a name aren't checked until runtime (dynamically). That means that I can write

-module(test). -export([testtypes/1]). testtypes(A) -> B = if      A > 0 -> 5;      A =< 0 -> "some text" end, A + B.
 * which sometimes binds the value '5' to the name 'B', and other times binds "some text" to 'B'. This will compile just fine (you can try it if you install Erlang).

Eshell V5.5 (abort with ^G) 1> c(test.erl). {ok,test}


 * But when I run the function  I get an error when I pass it negative values, since addition isn't defined for the the string type.

2> test:testtypes(3). 8 3> test:testtypes(-3). =ERROR REPORT==== 18-Nov-2006::18:24:23 === Error in process <0.31.0> with exit value: {badarith,[{test,testtypes,1},{erl_eval,do_apply,5},{shell,exprs,6},{shell,eval_loop,3}]} ** exited: {badarith,[{test,testtypes,1}, {erl_eval,do_apply,5}, {shell,exprs,6}, {shell,eval_loop,3}]} **


 * A statically checked language (like say Haskell) would have caught that problem at compile-time rather than runtime.


 * Hope that clarifies things some. --Allan McInnes (talk) 01:51, 19 November 2006 (UTC)

Clarification of which thread in Concurrency section
In the section on "Concurrency and distribution oriented language", one of the sentences is: When the message is consumed (removed from the mailbox) the thread resumes execution. However, it is not immediately clear whether this refers to the thread that sent the message or the thread that received the message. My initial thinking was that the thread that received the message had been looking for a matching message in the mailbox, hence this must tell me something about the sending thread. On reflection, I believe that this is not the intent and believe the article should work to make this clearer. (However, since I was reading the article in order to get some broad context before attempting to learn the language, it's likely that I would introduce inaccuracies if I attempted to edit this section.)

Additionally, as I re-read the section in putting together this note, I realize that I'm not clear as to whether there is an intent to draw a distinction between threads and processes or whether the terms apply interchangeably. I think the intent is the latter, but either way, the terminology should be made more clear.

Dsalex 02:17, 25 April 2007 (UTC)

Links to defmacro blog
A link to Erlang Style Concurrency has been added to the "Further reading" section a couple of times now. Aside from the fact that Wikipedia is not intended to be used as a way to advertise blogs, the article in question is a mix of a general history of concurrency, and a dicussion of how to implement Actor-model (i.e. "Eralng-style") concurrency in Java. While it's an interesting article, I don't think it's all that relevant to this article, since the only discussion it has of Erlang itself is fairly high-level (and already covered in more depth by other linked material). I'm willing to be convinced that this particular blog link merits inclusion in the article, but please don't add the link to defmacro again without discussing it here first. Thanks. --Allan McInnes (talk) 18:37, 31 May 2007 (UTC)

Concurrency with Erlang
Good link about the language, could be worked into the article. Mathmo Talk 04:24, 19 September 2007 (UTC)

Haskell Roots?
Does Erlang have an Haskell roots? Looking at quicksort, I'd say so, but I don't know. If so, what are they? --69.61.168.145 02:01, 20 August 2006 (UTC)


 * Erlang predates Haskell by almost a decade. The similarity you observe between quicksort implementations is most likely because both languages are functional programming languages that emphasize recursion and provide good list manipulation capabilities. --Allan McInnes (talk) 04:15, 20 August 2006 (UTC)


 * Thanks for the info. Do you know if Haskell borrowed from Erlang? My comment was mostly a syntatic comment. Quicksort in Lisp/Scheme or OCaml look, syntatically, nothing like Erlang/Haskell, at least to me.--69.61.168.145 03:32, 23 August 2006 (UTC)


 * Here is what the Erlang FAQ has to say about the syntax:
 * 10.3 Where does Erlang syntax come from?
 * Mostly from prolog. Erlang started life as a modified prolog. ! as the send-message operator comes from CSP. Eripascal was probably responsible for, and ; being separators and not terminators.
 * &mdash;Tobias Bergemann 09:17, 23 August 2006 (UTC)


 * The Haskell syntax is mostly borrowed from Miranda and Hope. Given their very different roots I would be surprised if there were any direct borrowings between Erlang and Haskell. &mdash; Tobias Bergemann 09:24, 23 August 2006 (UTC)


 * List comprehensions came into Erlang from the Haskell direction. They could not be fit in exactly the same syntax but very similar (on the surface, strict/eager evaluation has implications in this area). —Preceding unsigned comment added by 194.237.142.7 (talk) 15:51, 5 March 2008 (UTC)

Possible Unintentional Copyright Violation?
I was just perusing Programming Erlang last night, and it seems to me the quicksort algorithm is very nearly lifted from the example in the book. Please note that I am not claiming this was intentional by the poster&mdash;in all likelihood it was not, as it seems to me there wouldn't be very many ways to implement this algorithm in a significantly different way (perhaps that's why it's a canonical example of Erlang programming?). Still, I know from experience that an algorithm is an algorithm is an algorithm, and it doesn't matter if you rediscover the same sequence of instructions or not, it could potentially still be a copyright-violation.

Someone more knowledgeable please advise. Thanks! Severoon 20:47, 30 July 2007 (UTC)


 * Nope, that's not how copyright works. If you “rediscover” the sequence of instructions used in the book, you have the same rights to your version as the book authors have to theirs. It doesn't matter who thought of it first or who published their version first. Maybe you're confusing copyright and patents? --Levin 08:32, 16 September 2007 (UTC)


 * Quicksort is almost as trivial an algorithm as "Hello World" and just as widely used to exemplify languages. There's nothing original to the erlang implementation either. —Preceding unsigned comment added by 87.162.25.50 (talk) 03:10, 14 April 2008 (UTC)

Edit to Example on List_comprehension requested
Hi, Someone has generously contributed the above example in Erlang, but copied the wrong Haskel example. For consistency the first Haskel example at the end of the [overview section] should be the template. Could an Erlang programmer update the Erlang example please. Thanks --Paddy (talk) 05:24, 6 October 2008 (UTC)

Cleaned up quicksort
I just added some slightly more descriptive names and comments to the example AntiRush (talk) 15:35, 12 December 2008 (UTC)

SimpleDB
There was a reference to Amazon SimpleDB. I removed it from the List because SimpleDB using Erlang is far from being a fact. The citation given is one blog entry, not confirmed by anybody else. Other results on google mostly link to this blog entry. --77.21.95.163 (talk) 10:01, 6 May 2009 (UTC)

VM
There should be more info on Erlang VM in the article. They say it is register-based, so I have put it in the Category:Register-based virtual machines. --4th-otaku (talk) 02:16, 18 May 2009 (UTC)

Remove Article
Can we just get rid of this page? Seriously, who cares about erlang. I had to use google to even find out what it was. It's got a grand total of what, six things coded in it? What happened to requiring notability to appear on wikipedia? I've crapped things with more practical uses than erlang. —Preceding unsigned comment added by 71.16.78.252 (talk) 17:31, 30 January 2009 (UTC)

Erlang should not be removed; it is highly notable. Even if, as you say, only six things have ever been written in Erlang, one of those things is the framework for US telecommunications (and possibly that of the rest of the world, though I don't know). This alone makes it notable in my opinion. Imagist (talk) 04:35, 4 February 2009 (UTC)

Erlang seems to be gaining quite a bit of steam as perhaps the leader as a functional programing environment for Concurrent Programming. especially for embedded systems. from Guy Steele through Dan Weinreb on Planet Lisp: the multicores are coming—no, they’re here—and the only plausible way to deal with them in the long run is to rein in the side effects inherent to the OO point of view and move as much data structures and implicit parallelism. http://planet.lisp.org/ —Preceding unsigned comment added by 75.182.72.50 (talk) 03:06, 28 July 2009 (UTC)

Commercial Support
Ericsson no longer provides commercial support or professional services. It stopped doing so in 2001! Erlang Training and Consulting is today the main company handling professional services related to Erlang. —Preceding unsigned comment added by 87.192.231.145 (talk) 17:01, 25 August 2009 (UTC)

Strange reference
The name "Armstrong" appears rather suddenly and unexplained in the article: "In 1998, the AXD301 switch was announced, containing over a million lines of Erlang, and reported to achieve a reliability of nine "9"s. Shortly thereafter, Erlang was banned within Ericsson Radio Systems for new products, citing a preference for non-proprietary languages. The implementation was open sourced at the end of the year.[1] The ban at Ericsson was eventually lifted, and Armstrong was re-hired by Ericsson in 2004.[4]"

He needs to be mentioned in an introductory way first. Me, I have no clue who the guy is. 217.166.94.1 (talk) 08:04, 9 March 2010 (UTC)

I agree, there is no explanation why the AXD301 switch is important (or even what it is), or why the Ericsson Radio Systems ban is important. Added a tag to this section.

Linkfarms
I'm not sure what's to dispute when the linkfarm is as blatant as it was. It fails both WP:EL and WP:NOTLINK, so I've removed it again. Are there relevant articles that include such lists that we might be able to add as a reference or external link instead? --Ronz (talk) 01:14, 19 September 2010 (UTC)


 * I disagree. The links you deleted belonged to a list of Erlang concurrency-inspired projects, hence they are definitely relevant to their respective entry in the list (please note that I didn't check whether they are really "inspired" by Erlang, or designed independently from it). If you feel that those links should not be there, then the complete list would have to be removed.
 * Regarding this edit: the link is neither off-topic nor promotional; it provides a browser-based Erlang shell, which is a good example for an external link. – Adrian Willenbücher (talk) 06:22, 19 September 2010 (UTC)
 * Could you please address WP:EL and WP:NOTLINK, or seek other dispute resolution methods if you're not interested in discussing applicable policies and guidelines. Thanks. --Ronz (talk) 15:07, 19 September 2010 (UTC)
 * Let me put it this way: ideally, the list of projects in the section Clones would look like this:
 * C#: Retlang
 * F#: MailboxProcessor
 * Scheme: Termite Scheme
 * However, those projects do not have an article on their own. Thus the correct way of providing a pointer to further information is a direct link to the respective website, hence WP:ELYES (1.) applies. – Adrian Willenbücher (talk) 17:05, 19 September 2010 (UTC)
 * Thanks for the response. I agree on your ideal example.
 * When items in lists do not have their own article already, ELNO#20 applies (as well as #1, 4, 13, 14, and 19). This article is about Erlang, so ELYES and ELOFFICIAL don't apply to such links. The only way ELOFFICIAL would apply would be in an article about one specific Erlang project, where the link to the official site of that project would apply. --Ronz (talk) 17:24, 19 September 2010 (UTC)
 * 20 does not apply, since the list is not a stand-alone one (see here for an example for such a list)
 * 4 does not apply; those links are not intended for promotion, but as a pointer to the official project website
 * 14 does definitely not apply to any of those links
 * 19 does not apply; "Links to websites of organizations" refers to links such as the following one: [www.microsoft.com], not to links to specific pages
 * regarding 1 and 13: those might apply, at least partially
 * However, WP:EL is a guideline, not a policy. It should be ignored whenever it prevents one from improving Wikipedia, and in my opinion, a reader who might be interested in one of the listed projects will appreciate a direct link. – Adrian Willenbücher (talk) 18:28, 19 September 2010 (UTC)
 * So we agree ELYES and ELOFFICIAL don't apply?
 * We disagree on the interpretation and application of WP:ELNO. I'm all for IAR when a convincing argument has been made, but none has. WP:THIRD or WP:ELN next? --Ronz (talk) 21:39, 19 September 2010 (UTC)
 * I have another suggestion: since this is a generic problem (there are a lot of lists on WP with entries containing external links), I'll ask about it on WP:EL talk. Maybe someone will give advice as to the general consensus on this topic. – Adrian Willenbücher (talk) 07:05, 20 September 2010 (UTC)
 * Good idea. --Ronz (talk) 15:09, 20 September 2010 (UTC)
 * Good idea. --Ronz (talk) 15:09, 20 September 2010 (UTC)

I'm convinced now that the list shouldn't contain all those links (and that it shouldn't contain unnotable projects at all). However, what's to be said against tryerlang.org? In my opinion, it is quite educational and the reference to the book disappears after the tutorial starts. We shouldn't be overzealous when it comes to labeling a link "promotional". – Adrian Willenbücher (talk) 06:53, 24 September 2010 (UTC)
 * Glad that we're making progress.
 * The description for tryerlang.org was a bit misleading, which is why I removed it. It sounded like a software add-on. Given what it actually is, I'm mixed. It does promote erlang-consulting.com and trapexit.org, and was probably made specifically to do so. --Ronz (talk) 15:40, 24 September 2010 (UTC)

Philosophy
"The philosophy used to develop Erlang fits equally well with the development of Erlang-based systems."
 * I'm pretty sure that doesn't mean anything. Xakor (talk) 03:13, 26 December 2010 (UTC)

Factorial
The factorial example, fac(0) -> 1; fac(N) when N > 0 -> N * fac(N-1).

is overly complicated and does not use matching effectively. Is there anything wrong with this?

fac(0) -> 0; fac(1) -> 1; fac(N) -> N * fac(N - 1).

Aside from neither being tail recursive. --Mnp 18:15, 3 February 2007 (UTC)


 * Well, the proposed change violates the 0! = 1 convention (see Factorial); it would, I think, be both simpler and more correct to simply use:

fac(0) -> 1; fac(N) -> N * fac(N-1).
 * but the original version is still better, since neither the previously proposed change or the "simpler, more correct" version I give above will terminate if someone calls fac(N) with N<0. It might be even better to do something like:

fac(0) -> 1; fac(N) when N > 0, is_integer(N) -> N * fac(N-1).
 * Except for the version proposed which gives 0! = 0, I don't have a real strong feeling as for what is best to use for encyclopedic purposes; its a matter of trade-off between clarity and robustness. I personally lean toward the last version I propose. It isn't the simplest, but I think it still is adequately clear to read, and demonstrates more, and works everywhere it should and errors immediately rather than getting stuck in infinite recursion (well, until it breaks since its not tail-recursive) when its called with an invalid value. A properly tail-recursive version would be the best implementation, of course, but probably overboard for the role of the example here. --Cmdicely 18:07, 13 April 2007 (UTC)

I was both surprised and mildly confused to come to this article and find that this first programming example: fac(0) -> 1; % If 0, then return 1, otherwise (note the semicolon ; meaning 'else') fac(N) -> N * fac(N-1).
 * has what seems to be an obvious bug of non-termination when called with a negative integer. My confusion came from wondering what I might be missing about Erlang and functional programming in general that the negative integer was somehow handled by this code. Well, reading this now 5 year old discussion, I see that the example is flawed. And I think it only makes sense to replace it with what seems, from this discussion, to be the best alternative, I am about to change the page to use Cmdicely's last proposed version.

I'll also note that I looked into the math of factorial a bit to understand the thinking behind factorial of negative and non-integer. My conclusion, as this article is intended to provide an easy to understand example, I think we can safely ignore the far more complex cases for non-integers much less negative non-integers. And it seems that negative integers have undefined (or infinite)factorials. If interested in more about this then read the, IMO, excellent http://en.wikipedia.org/wiki/Factorial#Extension_of_factorial_to_non-integer_values_of_argument. Ronewolf (talk) 09:08, 8 January 2011 (UTC)

A little knowledge is can be a dangerous thing, but in this case, I think that my learning curve will greatly benefit this article. You see I am a highly experienced software practitioner that somehow missed (avoided? dreaded?) the joys of understanding functional programming. Until now that is. In the last few days, I've been digging in seriously, now reading the well-written (with only a few flaws...) Concurrent programming in Erlang. And I see that there are two VERY IMPORTANT things to mention to really understand even this simple example. Quoting the book "When evaluating factorial for some argument, the two clauses are scanned sequentially, in the order in which they occur in the module, until one of them matches the call." And, maybe not as important, but why not clarify anyway - "Variables start with an upper-case letter." There is other stuff that is also critical (like single-assignment or the meaning of ->) but I strongly suggest that these two (pattern matching for evaluation and Variable name syntax) be added to the article for the sanity of the reader new to Erlang (after all who else would be reading this?). I'll do this in a few days unless urged otherwise.

While I'm at it, the book includes the flawed (non-terminating) factorial example as its first example. I'll be interested to see how (or if) they address this as I continue reading. If I gain more insight, I'll be sure to come back here and fix any mess that I may be making. I hope that you appreciate my newbie reading of this and the clarity that I think that can bring to the article. Or let me know otherwise. Ronewolf (talk) 16:38, 9 January 2011 (UTC)

I believe the first example is more elegant, shows clarity and demonstrates the language adequately without being bogged down in error semantics. I am surprised that the 'enhanced' version is shown and definitely feel reversion is necessary. I wouldn'#t argue the first version is flawed either. Any functional programming book omits error checking when demonstrating the simple factorial function. [EA 28 Jan 2012]

Written in either Erlang or ivrit.
Erlang (alongside various LISP variants) is now suspected to be the original programming language behind the Duqu military spyware trojan's C&C connection module. The DLL looks very weird when decompiled and AV-vendor Kaspersky Labs has asked the netizen-kind for help to identify it.

Half of submissions so far peg LISP or Erlang or a marriage of the two, based on how the looks. Others say Manhattan / Tel-Aviv has enough money and expertise to think beyond a single mil-spec malware and would rather create a brand new, totally different and hard to pin-point developer framework, which is ripe for programming a legion of the future's cyberweapons. 82.131.210.163 (talk) 18:27, 8 March 2012 (UTC)

Sequential subset
From the intro:

"The sequential subset of Erlang is a functional language, with..."

It seems to me that this could stand to be clarified; what is the 'sequential' subset of a programming language? If the sequential subset of Erlang is functional, eager, with dynamic typing etc., what does this mean about the language as a whole? Vikingurinn (talk) 23:54, 9 December 2013 (UTC)

Name origin
I believe Erlang was ERgonomic LANGuage ? --> never heard about that

"Erlang is named after A. K. Erlang. It is sometimes mistakenly thought that its name is as abbreviation of ERicsson LANGuage, owing to its heavy use inside Ericsson."

Well, it's quite a pun because Erlang was created inside Ericsson, so its name is an abbreviation of ERicsson LANGuage too.

1993 book, Anderson first author, footnote to the first word of the preface. http://www.erlang.se/publications/erlang-book-part1.pdf — Preceding unsigned comment added by 12.237.234.250 (talk) 17:15, 3 March 2014 (UTC)

"Projects using Erlang"
Would it be worth adding Flussonic to the list? 95.153.160.191 (talk) 13:04, 26 July 2014 (UTC)anonym

Remove dubious tag from 2 million connections claim.
There are multiple citations provided, and no discussion of why the claim is dubious. — Preceding unsigned comment added by 2607:FAD0:32:A03:214:D1FF:FE13:F9CE (talk) 14:34, 30 September 2014 (UTC)

History accourding to Jörg Mittag
The following was deleted from the history section:

According to Jörg Mittag:


 * Carl Hewitt, who invented the Actor Model, based it on Smalltalk-71. Alan Kay, who invented Smalltalk-71 based it on Planner, which in turn was also invented by Carl Hewitt. The designers of Erlang didn't actually know about the Actor Model (Joe Armstrong only learned about it many years later, when he was writing his thesis about the design of Erlang), they based the design of Erlang on Prolog, which in turn is based on - surprise - Carl Hewitt's Planner.
 * The designers of Erlang also based their design on the requirements of the telco industry: resiliency, dependability, no single point of failure, evolvability. Incidentally, those are also the attributes of an evolutionary successful organism, and guess what: Alan Kay actually has a degree in microbiology and based the design of Smalltalk on the way cells communicate with each other and form complex organisms from very simple structures.

98.210.236.39 (talk) 04:24, 5 April 2010 (UTC)


 * So your point in posting it here on the talkpage is...? For that matter, who's Jörg Mittag and why should anyone care about a comment of his on a random stackoverflow thread? --Cyber cobra (talk) 04:49, 5 April 2010 (UTC)


 * No need to put down Jörg. He seems to know the history and it's hard to find independent published references.98.210.236.39 (talk) 18:05, 5 April 2010 (UTC)
 * The point Cybercobra was making, I presume, is that Wikipedia requires those "independent published references" over taking the word of some bloke on the Internet who "seems to know the history". See Identifying reliable sources. &mdash; Matt Crypto 07:03, 6 April 2010 (UTC)
 * Precisely. A stackoverflow comment from an unknown person is not a reliable source. --Cyber cobra (talk) 07:18, 6 April 2010 (UTC)
 * I am in a revert war at the moment. The actor model is highly unknown, even within academia, and Hewitt has a tendency to claim that he invented everything. Please remove references to the Actor Model. It doesn't even make it to Armstrong's thesis, it is unknown, and CSP or a pi-calculus would be far more to the truth. — Preceding unsigned comment added by 86.82.44.193 (talk) 00:02, 16 June 2015 (UTC)
 * There are several problems with your statements, but first of all please read WP:EW. You say "I am in a revert war at the moment." as if that's a good thing.
 * The Actor model is not highly unknown. It is basic undergraduate course material on concurrent programming for anyone from the 1990s onwards. It is claimed that the Erlang developers were unaware of this at the time (I find this strange, as someone developing a system so focussed on concurrency would surely read the literature first?).
 * That is irrelevant anyway. We don't care how Erlang came to work how it does, we care what it ended up doing. That is Actor model concurrency. This is widely sourceable. It's even sourced from Armstrong himself in one of the added refs. It is ludicrous to claim that Erlang uses the CSP model instead (and find a source for that).
 * "Hewitt has a tendency to claim that he invented everything" what does that mean and what relevance does it have here? Hewitt published in the early '70s. He may or may not have invented anything, but he provably did publish on it, long before Erlang. He does not claim to have invented or (AFAIK) even influenced Erlang.
 * We do not require that "it would need to be confirmed by the Erlang authors." – please see WP:RS. Besides which, you were given just such source, from Armstrong.
 * Erlang uses the Actor model of concurrency. I have no idea why, but that doesn't matter. That's a historical footnote and here we care about the practical issue of architecture. This is all sourceable, and you were given such sources that you then repeatedly deleted anyway. That is now (WP:EW) how WP works. Andy Dingley (talk) 01:44, 16 June 2015 (UTC)
 * The Actor Model is highly unknown as is witnessed by the fact that it isn't even mentioned in the thesis by Armstrong. In contrast, CSP is widely known and CSP and pi-calculus are taught in technical universities. The reference you gave doesn't mention Hewitt but a technical report and in the same reference the author admits it was based on Occam and CSP. I know some concurrency theory, the hard stuff, and have never heard of Hewitt until this week. Probably he was known to Hoare but that doesn't make him a big influencer, I've read the page on the Actor Model and the claims are stretching it, to say the least. I am sorry, but the work of Hewitt isn't widely praised in academia (not as far as I know), has no formal footing, and -contrary to what you believe- Erlang doesn't implement the Actor Model since the actor model hardly exists except for a number of incoherent ideas; and Erlang doesn't even reflect those ideas. You simply cannot possibly compare the hard technical work by Hoare to this mostly unknown research. Neither does this idea "ActorScript(TM) extension of C sharp (TM), Java(TM), and Objective C(TM): iAdaptive(TM) concurrency for antiCloud(TM) privacy and security" http://arxiv.org/abs/1008.2748 exists except for a bad thought experiment. I am already in favor of removing the Actor Model from the CSP page. — Preceding unsigned comment added by 86.82.44.193 (talk) 03:32, 16 June 2015 (UTC)


 * For future ref, Administrators'_noticeboard/3RRArchive285 Andy Dingley (talk) 08:54, 23 June 2015 (UTC)

trapexit.org
I'd commented out link to this website: it looks dead, discussion forum is completely down. On main Erlang list I read that something there broke down in January and it doesn't seem to be fixed. When (if) the things will get better please uncomment the link. Thanks. Pavel Vozenilek 14:27, 19 February 2006 (UTC)

18 Aug 2006: I put in the link to www.trapexit.org as we have revived it :) /Mazen @ trapexit.org

Trapexit is alive and kicking!

TrapExit.org has been moved to ErlangCentral.org since 2014. — Preceding unsigned comment added by Bruce.yinhe (talk • contribs) 23:22, 23 June 2015 (UTC)

license change with v18.0
From erlang-announce:

- Starting from 18.0 Erlang/OTP is released under the APL 2.0 (Apache      Public License)

http://www.erlang.org/news/86 — Preceding unsigned comment added by 193.186.7.2 (talk) 12:04, 24 June 2015 (UTC)

External links modified
Hello fellow Wikipedians,

I have just added archive links to 4 one external links on Erlang (programming language). Please take a moment to review my edit. If necessary, add after the link to keep me from modifying it. Alternatively, you can add to keep me off the page altogether. I made the following changes:
 * Added archive http://web.archive.org/web/20120913070310/http://www.erlang-factory.com/upload/presentations/395/ErlangandFirst-PersonShooters.pdf to http://www.erlang-factory.com/upload/presentations/395/ErlangandFirst-PersonShooters.pdf
 * Added archive https://web.archive.org/20091223051043/http://developers.facebook.com/news.php?blog=1&story=110 to http://developers.facebook.com/news.php?blog=1&story=110
 * Added archive http://web.archive.org/web/20141031164041/http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf to http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf
 * Added archive http://web.archive.org/web/20131212140411/http://www.erlang-factory.com/upload/presentations/558/efsf2012-whatsapp-scaling.pdf to http://www.erlang-factory.com/upload/presentations/558/efsf2012-whatsapp-scaling.pdf

When you have finished reviewing my changes, please set the checked parameter below to true to let others know.

Cheers.—cyberbot II  Talk to my owner :Online 09:11, 27 February 2016 (UTC)

External links modified
Hello fellow Wikipedians,

I have just modified 2 one external links on Erlang (programming language). Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20141031164041/http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf to http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf
 * Corrected formatting/usage for https://www.sics.se/~joe/thesis/armstrong_thesis_2003.pdf

When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ).

Cheers.— InternetArchiveBot  (Report bug) 20:06, 11 September 2016 (UTC)

Reword or remove usage section.
The whole content of the section is directly copy-pasted from other sources but not marked as such.

The first sentence is directly copied from an ad from the developer itself (see the ref) and the rest is a copy from the book "Erlang Programming: A Concurrent Approach to Software Development", page 2. — Preceding unsigned comment added by Teemperor (talk • contribs) 16:59, 17 February 2018 (UTC)

Actors
While I understand that the terms "actors" and "Erlang concurrency model" might be considered to be the same, or at least equivalent, it does seem odd that actors are not actually mentioned in this article, despite the general feeling that Erlang introduced the world to the concept of actors. Beowulf (talk) 14:15, 28 February 2019 (UTC)

BEAM and compiling Erlang to C
"work began on the BEAM virtual machine (VM) which compiles Erlang to C"

I found the source of that claim (https://dl.acm.org/doi/10.1145/258948.258967) but this does not seem to be true anymore and contradicts https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine). I propose either removing "which compiles Erlang to C" or rewording this to something like "work began on the BEAM virtual machine (VM) which back then compiled Erlang to C". 2A01:115F:D19:2B00:7980:5D61:4A1E:F4E7 (talk) 12:29, 14 December 2023 (UTC)