Do you develop on GitHub? You can keep using GitHub but automatically sync your GitHub releases to SourceForge quickly and easily with this tool so your projects have a backup location, and get your project in front of SourceForge's nearly 20 million monthly users. It takes less than a minute. Get new users downloading your project releases today!
Posted
by
timothy
from the official-language-of-the-federation dept.
mvw writes "Wanna go beyond Java, Perl, or Python? Joe Armstrong has published a nice tutorial on implementing robust servers in the functional concurrent
Erlang language.
Here is the
link."
This discussion has been archived.
No new comments can be posted.
by Anonymous Coward writes:
on Wednesday February 05, 2003 @04:16PM (#5233816)
The FAQ says:
Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson.
Well, besides the obvious concurrency advantage (need 200000 processes? no problem!), there's things like hot swapping of code, behaviors for common design patterns (servers, event handling, supervisors), bundled database written in Erlang, and other things like that.
Writing a robust program in Erlang is extremely simple by using supervisors and following design principles like these [erlang.org]. For example, my Erlang IRC bot is near impossible to completely crash. If the server connection dies, there's a supervisor that'll keep trying to get it back up; All the while the other processes of the bot have no idea there's no connection -- they don't need to know. If I've written a faulty module and the code misbehaves, only that single process is affected. If possible, a process that has crashed will be automatically restarted and operations resume as if nothing had happened.
Hot-swapping of code allows me to debug the bot without restarting it. If I discover a bug in the irc parsing routines, I simply fix it in the code, recompile, and reload the offending module -- while the bot is running. The new code replaces the old, and it just works.
There's plenty more, but I would suggest checking Erlang's website [erlang.org] and reading the FAQ and examples. Oh, and here's [www.sics.se] a nifty benchmark:)
by Anonymous Coward writes:
on Wednesday February 05, 2003 @05:26PM (#5234424)
As part of a class assignment I once had to create a distributed pong game in Erlang. I like the language and I think it will be appropriate for what they are talking about.
Erlang is a dynamically typed concurrent functional programming language for large industrial real-time systems. Features of Erlang include [nott.ac.uk]...
by Anonymous Coward writes:
on Thursday February 06, 2003 @08:01AM (#5239436)
In one line - easy Because the code is shorter, clearer and more beautiful - because segmentation violations cannot happen - because buffer overflows cannot happen - because processes in Erlang are much lighter weight than in Java/C/... - because you will have finished the Erlang program before you have even started wondering how to do it in C...
Re:Why Erlang? (Score:2, Informative)
WTF is Erlang? (Score:3, Informative)
Erlang is a general-purpose programming language and runtime environment. Erlang has built-in support for concurrency, distribution and fault tolerance. Erlang is used in several large telecommunication systems from Ericsson.
hmm (Score:3, Informative)
http://www.bagley.org/~doug/shootout/lang/erlang/ [bagley.org]
This doesnt mean much as far more qualitative arguments exist. You can also browse over the code.
Re:Why Erlang? (Score:4, Informative)
Writing a robust program in Erlang is extremely simple by using supervisors and following design principles like these [erlang.org]. For example, my Erlang IRC bot is near impossible to completely crash. If the server connection dies, there's a supervisor that'll keep trying to get it back up; All the while the other processes of the bot have no idea there's no connection -- they don't need to know. If I've written a faulty module and the code misbehaves, only that single process is affected. If possible, a process that has crashed will be automatically restarted and operations resume as if nothing had happened.
Hot-swapping of code allows me to debug the bot without restarting it. If I discover a bug in the irc parsing routines, I simply fix it in the code, recompile, and reload the offending module -- while the bot is running. The new code replaces the old, and it just works.
There's plenty more, but I would suggest checking Erlang's website [erlang.org] and reading the FAQ and examples. Oh, and here's [www.sics.se] a nifty benchmark :)
Erlang pong (Score:2, Informative)
Re:WTF is Erlang? (Score:2, Informative)
Erlang is a dynamically typed concurrent functional programming language for large industrial real-time systems. Features of Erlang include [nott.ac.uk]...
Re:Why Erlang? (Score:1, Informative)