Hi Vitaliy--at Concurix, we got our start building an Erlang based
operating system, and now we are building Node.js profiling and monitoring
tools. So we can speak in depth about the two platforms--feel free to ping
me offline if we can help.
In the meantime, +1 for other points made on this thread. A few things I
would add:
1. While Erlang has a very elegant concurrency model, the actual
implementation has a ton of singletons, particularly with gen_servers. As
a result, the *actual* multi-core scale-up factor is a LOT less than you
would otherwise expect. We have found the process-per-CPU model of Node
clusters to be a more efficient multi-core scaleup paradigm.
2. NPM is a true gem, and there is no equivalent in Erlang (yet--they are
working on it). While not perfect, Node/NPM's ability to handle lots of
third party modules with different version all in the same app via the
closure encapsulation is a big big deal. In Erlang, you typically need to
be very careful about which third party modules are included, and which
versions, as the module namespace is global.
3. +1000 on the depth of the community in Node. You will find amazing, and
amazingly talented folks in the Erlang community, but the sheer scale of
Node brings a lot of depth to the set of available libraries, help on stack
overflow, etc.
4. List comprehensions and function pattern matching in Erlang can yield
some very elegant and tight code.
Good luck!
cheers,
alex
alex@concurix.comOn Wednesday, November 12, 2014 7:30:05 PM UTC-8, Matt Sergeant wrote:On Wed, Nov 12, 2014 at 7:52 PM, Vitaliy Feoktistov <
vitaliy.f...@gmail.com <javascript:>> wrote:
- concurrency
Erlang is better, period.
- error tolerance
Erlang is better.
- performance
Node is significantly better based on the computer language shootout.
- scalability (scale-in, scale-out)
Erlang is better at scale-in. Neither are much different at scale-out.
- adapted for multi-CPU servers (openmp pool, cgroups mapping,..)
Erlang is better. Node relies on forking a process per CPU.
- adapted for mobile applications
I have no idea what this means. Neither are great at native apps on mobile
(iOS and Android). Both are fine if you're just serving JSON.
- ease of programming
Node is way easier. The syntax is simpler and more familiar to the
majority of programmers.
- integration with other languages (C/C++...)
Node is easier because it has FFI interfaces available. It's still a
proposal to build something like that in Erlang.
- existance of libraries and developed code/projects
Node wins. Despite being decades younger.
- database integration (sql, nosql, in-memory)
Not sure about Erlang, but Node has everything pretty much covered.
- hire skills / price
It's far far FAR easier to find Javascript programmers. Erlang programmers
will tell you that when you find an Erlang programmer they are generally a
"10x" programmer. YMMV.
Matt.
--
Job board:
http://jobs.nodejs.org/New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-mdOld group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines---
You received this message because you are subscribed to the Google Groups "nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscribe@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/8285e22e-6226-40f5-903b-3319e76afea2%40googlegroups.com.For more options, visit
https://groups.google.com/d/optout.