Erlang's Creator Speaks About Its History and Prospects
Seal writes "Erlang, originally created at Ericsson in 1986, is a functional programming language which was released as open source around 10 years ago and flourished ever since. In this Q&A, Erlang creator Joe Armstrong talks about its beginnings as a control program for a telephone exchange, its flexibility and its modern day usage in open source programs. 'In the Erlang world we have over twenty years of experience with designing and implementing parallel algorithms. What we lose in sequential processing speed we win back in parallel performance and fault-tolerance,' Armstrong said. He also mentions how multi-core processors pushed the development of Erlang and the advantages of hot swapping."
Erlang is used in Facebook Chat, which just hit 1 billion messages a day. Eugene Letuchy discussed Facebook's use of Erlang at the Erlang Factory event.
RichM
Data Center Knowledge
I notice that CouchDB makes a big deal of its Erlang based core -- essentially "this part is trustworthy and parallelises well because it's in Erlang".
I also notice Joe Armstrong (or more likely a transcriber) is as bad at spelling "lose" as the rest of the internet...
Describing Erlang as a functional language is true, but misleading. It's not a pure functional language, because there is a (mutable) process dictionary. When you call something a functional language, it implies a language modelled on Lambda Calculus. The fact that functional languages do not allow side effects (Erlang does via the process dictionary) means that they are relatively easy to parallelise implicitly. Erlang adds support for the Communicating Sequential Processes (CSP) formalism on top of a mostly-functional core language.
CSP is a very clean and simple model for describing parallel algorithms. The language enforces the restriction that no data may be both shared and mutable. The only mutable object in Erlang is the processes (which has a dictionary and some execution state). Everything else is immutable. This makes it trivially easy to write code that uses a few tens of thousands of Erlang processes (or more). These are implemented as (very) light-weight threads on top of OS threads and can easily scale up to a large number of processors, or even cluster nodes. The asynchronous aspect of the message passing means that it is not very difficult to write code that scales well across a cluster; bandwidth can be an issue, but latency generally isn't in asynchronous code.
I am TheRaven on Soylent News
Top of the pop chart on face book...
here's the contest: I did the first phrase, you fill in another one and leave the next to someone else:
SHANG A DO (loop) LANG
(Jagger/Richards)
Shang a doo lang, shang a lang erlang
Shang a doo lang, shang a lang erlang
Shang a doo lang, shang shang a erlang
Shang a doo lang, shang a lang erlang
Well you tell me, it's a lambda statement
But I don't know what that meant
that one plus one can't simply be two?
He said he'd seen me, goin' out with Charlie
I only did it, to make him really want me
You say you'll get me, but I'll get him too
Shang a doo lang, shang a lang erlang
Shang a doo lang, shang a lang erlang
Shang a doo lang, shang shang a erlang
Shang a doo lang, shang a lang erlang
But now I think the time is right
So let him take me out tonight
I really love him, yes I really love him
I really want him, yes I really want him
Yes I love him, tell him I love him too
Yes I do, yes I do, yes I do, yes I do
Some drink at the fountain of knowledge. Others just gargle.
Anyone have an Erlang background, or some low level C or similar experience and live in the Chicago area (we're just south of the Loop)
I'm actively involved in a startup that is developing a large project in Erlang, looking for some additional folks to add to our team.
It's problematic trying to find people with the right skillset, since it isn't just "Erlang" we're looking for - its the general high-volume, high-availability skillset and a deep interest in learning Erlang. I didn't even know much about it before the project. So, fire away on the resumes:
bigattichouse@gmail.com
meh
There is even a movie about Erlang that should give you a good idea of what its strengths are.
I read the internet for the articles.
Erlang is also being used for the virtual radio kernel, which is used for software defined radios. Good article on the subject linked off the www.flex-radio.com FAQ's on PowerSDR V2.
See also an interesting paper on the history of Erlang, by Armstrong, and Erlang, The Movie.
Wings 3D (http://www.wings3d.com/), a popular subdivision modeler, was written in Ehrlang as well. That's were I first heard of the language some years ago...
I wish that this could become a universal precept of software design, shaping everything from OS's to desktop apps -- Joe Armstrong: "Stopping a system to upgrade the code is an admission of failure."
"Erlang" is a measure of communications channel occupancy - names after the Danish mathematician and telephony researcher - but it also relates to how old telephones use to sound - when they had actual mechanical bells that would ring when a call was coming in - "erlang-a-lang-a-lang".
define flourished.
I've been (slowly) working my way through Programming Erlang.
I spend most of my day doing procedural and OOP. Odds are good that I'll never write a single Erlang program after I finish the book. But I guarantee that I'll be using the concepts that I'm learning for the rest of my life.
For the same reason you had to take liberal arts classes in university, everybody should learn a functional language or two.