[Erlang 0038] Node.js & Erlang

简介:
     没有应用场景上下文做编程语言的比较就是一场关公战秦琼的乱斗而已,而语言的比较一次又一次的比较,并非开发者无聊,而是这的确关乎开发者时间精力的投入和未来可能的回报.现在估计问的最多的就是做Android开发还是iOS开发,仅次于它的就是选Node.js还是Erlang?众说纷纭,自己看吧,甚至Joe Armstrong等牛人也也加入了讨论!
     
     阅读下面的文章有两点提示1.文章下面的评论,很多评论比文章精彩.2.注意文章发表的时间,有些观点是具有时效性的

博客文章

互联网从来不缺观点,缺少的是数据和事实,下面按照干货的多少推荐几篇文章:

A comparison between Misultin, Mochiweb, Cowboy, NodeJS and Tornadoweb

http://www.ostinelli.net/a-comparison-between-misultin-mochiweb-cowboy-nodejs-and-tornadoweb/

发表时间May 2011
恰如其名,这篇文章比较了 Misultin, Mochiweb, Cowboy, NodeJS and Tornadoweb,看比较图吧,评论也精彩:

socket.io-erlang-vs-nodejs
基于socket.io项目做的erlang与node.js的比较
In the webpage that will be displayed when you go to http://localhost:3000, you can set a number of messages to be sent to the server via socket.io.
In my computer nodejs processes 10k messages in 1250ms, and erlang version does the same in 1050ms.
With 100k messages, erlang handles them in 70secs, and node drops the connection thus failing the test.

We know that benchmarks aren't really that useful, since they differ from real production code. But this one served me to decide to go with erlang instead of node for a game I will be developing. Not being able to handle 100k messages is a no-no, given that erlang is able to handle them without problem.
 
Node.js vs Erlang: SyncPad’s Experience
原文在墙外:http://blog.mysyncpad.com/post/2073441622/node-js-vs-erlang-syncpads-experience
2010年2月2日的文章,SyncPad’s 的开发者比较Node.js和Erlang的方案.应该说作者在Node.js上是遇到不少问题的;CPU飙高,内存泄漏,在node.js还是下了很多功夫的甚至尝试了multi-node:

Node.js v. Erlang
January 25, 2012的文章
原文在墙外: http://ksdlck.com/post/16493417514/node-js-v-erlang 
从实现机制上做了一个比较,对两种技术的关键点做了高度的概括,节录文章开头和结尾:
Node and  Erlang both set out to solve an issue that developers of a particular class of systems routinely face: dealing with massive concurrency.

In the end, Node and Erlang find their way to almost the same place. They are both dynamic languages, with similar native datastructures, and one can see that Node’s ubiquitous  EventEmitter is, in many ways, isomorphic to Erlang’s message passing scheme. Libraries like  hook.ioprovide some semblance of the agnosticism with which one treats the location of an adressee in Erlang. Hotplugging of code is possible with no particular hassle, but—arguably as it should be—the responsibility of the programmer to do in such a way as to not break the application. They both are ideall suited to workloads that are primarily bottlenecked on IO, and both excel at shifting data from one place to another.

Node.js vs Erlang is the wrong battle.
原文在墙外:http://jlouisramblings.blogspot.com/2011/05/nodejs-vs-erlang-is-wrong-battle.html
原文在墙外:http://jlouisramblings.blogspot.com/2010/12/differences-between-nodejs-and-erlang_14.html
作者第二篇文章要实际一些,conclusion写得很搞:
My main goal was to set out and exemplify a major difference in how a system like Node.js handles requests compared to Erlang. I think I have succeeded. It underpins the idea that you need to solve problems depending on platform. In Node.js, you will need to break up long-running jobs manually to give others a chance at the CPU (this is essentially cooperative multitasking). In Erlang, this is not a problem — and a single bad process can’t hose the system as a whole. On the other hand, I am sure there are problems for which Node.js shines and it will have to be worked around in Erlang.

Erlang vs node.js
Posted by David N. Welton on Thursday, April 29, 2010
http://journal.dedasys.com/2010/04/29/erlang-vs-node-js

"Good enough" concurrency, combined with a language that is at least an order of magnitude more popular than Erlang, and a fast runtime, combined with ease of use in general (it's way easier to get started with node.js than with most Erlang web stuff) make for a system that's likely to do fairly well in terms of diffusion and popularity, and is going to "eat some of Erlang's lunch". Or perhaps, rather than actually taking users away from Erlang, it's likely to attract people that might have otherwise gone to Erlang.


Felix's Node.js Convincing the boss guide
http://nodeguide.com/convincing_the_boss.html 

Felix Geisendörfer, an early node.js core contributor and co-founder of transloadit.com.

But please be careful here, since JavaScript is a dynamic / garbage collected language, your response times may sometimes vary depending on how often and long the garbage collection kicks in (at which point your program is stopped). So don't try to build hard realtime systems in node, that require consistent response times. Erlang is probably a better choice for these kinds of applications.

问答站

这种问题肯定会在技术问答站落户,从争论中找到学习的路径,分析的方法,收获不止这一个问题那么简单了:
StackOverflow上的这篇:
Node.js or Erlang
Node.Js in Erlang style?


StackExchange站点围观地址:
Learning Erlang vs learning node.js
这里的讨论包含了很多学习的指导,其中提到了这篇妙趣横生的 An Open Letter to the Erlang Beginner (or Onlooker) http://ferd.ca/an-open-letter-to-the-erlang-beginner-or-onlooker.html

Google Group围观地址:node.js compared to erlang  
在这个讨论中,惊现神人:Erlang之父Joe Armstrong 以及Nabble – Erlang 的作者Max Lapshin等等 
 
2012-2-26 13:34:17更新
 



 

图1: JavaScript的需求远远超出其他的语言。PHP和Python的增长很稳健。Groovy虽然在增长,但是总量还是太小了。Erlang呢,几乎可以忽略。
图2: 从短期18个月看,基本上没有太大增长,期间有些波动。基本上过去一年都没有什么增长,不知是否和整体的经济有关。
图3: 各个语言的增量对比,从增量上看,Erlang和Groovy虽然总量很小,但是增长的比例很高。而JS和PHP的需求已经非常大,增长100%就是很大的数字。这也是可以理解的。

目录
相关文章
|
2月前
|
JavaScript
NodeJs的安装
文章介绍了Node.js的安装步骤和如何创建第一个Node.js应用。包括从官网下载安装包、安装过程、验证安装是否成功,以及使用Node.js监听端口构建简单服务器的示例代码。
NodeJs的安装
|
1月前
|
JavaScript 开发工具 git
已安装nodejs但是安装hexo报错
已安装nodejs但是安装hexo报错
21 2
|
2月前
|
存储 JavaScript 前端开发
Node 版本控制工具 NVM 的安装和使用(Windows)
本文介绍了NVM(Node Version Manager)的Windows版本——NVM for Windows的安装和使用方法,包括如何安装Node.js的特定版本、列出已安装版本、切换使用不同版本的Node.js,以及其他常用命令,以实现在Windows系统上对Node.js版本的便捷管理。
Node 版本控制工具 NVM 的安装和使用(Windows)
|
25天前
|
Web App开发 JavaScript 前端开发
JavaWeb 22.Node.js_简介和安装
JavaWeb 22.Node.js_简介和安装
|
2月前
|
SQL JavaScript 数据库
sqlite在Windows环境下安装、使用、node.js连接
sqlite在Windows环境下安装、使用、node.js连接
|
2月前
|
JavaScript Linux 开发者
一个用于管理多个 Node.js 版本的安装和切换开源工具
【9月更文挑战第14天】nvm(Node Version Manager)是一个开源工具,用于便捷地管理多个 Node.js 版本。其特点包括:版本安装便捷,支持 LTS 和最新版本;版本切换简单,不影响开发流程;多平台支持,包括 Windows、macOS 和 Linux;社区活跃,持续更新。通过 nvm,开发者可以轻松安装、切换和管理不同项目的 Node.js 版本,提高开发效率。
|
1月前
|
JavaScript 算法 内存技术
如何降低node.js版本(nvm下载安装与使用)
如何降低node.js版本(nvm下载安装与使用)
|
3月前
|
缓存 JavaScript 安全
2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)
这篇文章提供了2022年最新最详细的Node.js和cnpm安装教程,包括步骤图解、全局配置路径、cnpm安装命令、nrm的安装与使用,以及如何管理npm源和测试速度。
2022年最新最详细的安装Node.js以及cnpm(详细图解过程、绝对成功)