[erlang-questions] node.js compared to erlang
Fri Oct 8 01:18:32 CEST 2010
I enjoy programming with node in a way that I dont with erlang, stuff feels
fun, I have lots of libraries that people have written for me, it already
has a package manager which to be honest embarrasses the erlang side of me
However using node I have had problems making very simple things be
resilient to errors, async error handling is very very hard (as most erlang
people know) and there seems to be little effort with nodes community to
resolving that. So for now node is still a little fun toy to play with, but
when I want to write something that I know stays up, I use erlang.
However I am a little troubled by nodes popularity and the general dismissal
of "well erlang does it better", people are flocking to node in a way that
they are not with erlang, People are more and more needing to write the type
of async servers that node and erlang provide, programming with an embedded
server is also a huge benefit, people obviously want this but why are they
embracing node in a way they arent with erlang?
It took me 5 minutes from getting to the node website, to compiling it and
having my first hello world server up and running, a few minutes later I had
a package manager installed and some user contributed libraries that helped
me write what I wanted.
Installing erlang is mostly fine, however once I am there, there is no
standard build tools which will let me write my first module, compile it
(and by standard build tools I mean one command, not write my own emakefile,
or type c(module) at the shell) and run it, there are a bunch of web servers
to chose from which none are universally recommended and none are properly
documented, I have absolutely no idea how to install any of these servers
properly, to this day everyone had massively differing opinions on how
libraries should be bundled.
I think the erlang community really needs to sort out these problems once
and for all, and before diving into emacs, these are political problems not
I have had this on my mind for a while and still dont know the best
solutions, however, I am promising now that by the euc erlangotp.com will
finish its redesign with one major goal, to get a programmer completely
unfamiliar with erlang to get a "hello world" web server up and running in 5
I think its time to settle on and promote tools like rebar / mochiweb /
learnyourselfsomeerlang / unknown package manager / and not wait for things
to be officially blessed by the otp team, they are busy making erlang
awesome, we as a community need to pick up the slack on that end.
So yeh, bit of a rant, but if anyone else is interested in lowering the
barriers to entry for erlang then shoot me an email / make a new thread, I
certainly want as much of the community as possible involved.
On 7 October 2010 15:13, David Mercer <dmercer@REDACTED> wrote:
> I might be the only person in the world whose two favorite languages are
> applications for 5 or 6 years until I discovered Erlang in '07. What had
> instance, by loading the file into a string and eval-ing it). For
> distribution (the application was distributed over about 20 machines
> internally with about 100 additional smaller-scale remote servers
> communicating with the central hub), I used the file system and TCP (and
> HTTP for negotiating across firewalls), depending on the requirements. (I
> had also originally used MSMQ, but we phased that out over time in favor of
> more expedient methods that we developed ourselves.) The end result was a
> less robust version of an Erlang application, that worked pretty well. We
> had hot code loading, and redundancy gave us the fault-tolerance we
> When I discovered Erlang in 2007 (not sure why it took me that long), I
> immediately recognized that Erlang was built to handle all the problems we
> had written around, but it had a longer history and was certainly better at
> it. We had required so much of our redundancy (20 machines running about 7
> processes each) not only to handle the load, but also to handle failures.
> you might think, and seemed to suffer from memory leaks which manifested
> itself over time. With 20 machines times 7 processes per machine and an
> MTBF of, say, a week, we had 10 or 20 failures a day (which were
> automatically handled). Honestly, the surprise for us was that WSH
> performed as well as it did. We had originally written our application in
> else when we had completed our proof of concept. But as it turned out,
> processing speed wasn't really an issue for us -- network latency was
> usually the limiting issue, not CPU. However, it was surprising to us that
> WSH could, at times, run for days or weeks, processing millions of
> transactions before failing. WSH's multi-threading capabilities are
> nonexistent, and I tried various hacks to coax it into running multiple
> threads, but they tended to cause other problems (as you can imagine), so I
> wrote my own scheduler that time-sliced between various tasks. (It was
> actually a heap-based priority queue.) We isolated blocking operations
> main issue we had with blocking was that some asynchronous SQL queries were
> not working right, so we had to do them synchronously) in their own process
> so that they wouldn't block other tasks.
> However, Erlang does everything we wrote, and it does it better. Having
> written an equivalent system in a non-Erlang language, I really appreciate
> all the tools Erlang gives you to create manageable distributed server-side
> applications. Besides the interprocess messaging and hot code-loading, OTP
> is an excellent way of thinking about and framework for building your
> fault-tolerant servers. I did not know about Erlang and OTP when I started
> created a much better architecture, though it is not clear why I would
> step up from WSH in that it is more portable and has better support for
> multi-tasking. I suspect you would find yourself rewriting a lot of
> server-side applications.
> hear how it goes. I, too, have considered trying out Node.js as my New
> Favorite Platform(TM), but haven't yet had the need. Today, I haven't done
> language, it is very highly capable. I daresay, there was a time, 5-10
> in the world, and I would sometimes log into Experts Exchange or somewhere
> web page. No-one ever seemed to ask the tricky questions about closures or
> object context, or performance of certain approaches etc. that was my
> expertise. You see more of that nowadays, as most of these concepts have
> gained traction in the mainstream; now there are probably tens of thousands
> of people with that knowledge, not just the hundreds of a few years ago.
> Thank-you for this walk down memory lane. Let me know how it goes with
> Node.js. I just might have to try it out...
> > -----Original Message-----
> > From: erlang-questions@REDACTED [mailto:erlang-questions@REDACTED]
> > Behalf Of Pablo Platt
> > Sent: Sunday, October 03, 2010 10:01 AM
> > To: erlang-questions@REDACTED
> > Subject: [erlang-questions] node.js compared to erlang
> > Hi
> > I'm using erlang and I love it.
> > I'm not trying to create an argument but to better understand the power
> > erlang.
> > In what areas erlang dominates and what areas will you consider using
> > node.js?
> > For example, would you consider building something like rabbitmq or
> > ejabberd in
> > node.js?
> > Or maybe you'll use node.js just for a simple single chat room but erlang
> > for
> > anything complicated than that.
> > Are there a fundamental differences in performance or stability or use in
> > distributed systems?
> > Ulf Wiger commented on the comparison of erlang and node.js
> > and said that erlang solves the problem of non blocking functions which
> > might be
> > very hard for other languages.
> > http://journal.dedasys.com/2010/04/29/erlang-vs-node-js
> > Thanks
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
More information about the erlang-questions