与 RoR 相比,NodeJS 有啥优势?

2015-03-20 06:01:48 +08:00
 wolfdolf
NodeJS是否具有更高的开发优势呢?
Node和RoR,哪个门槛更高?
5275 次点击
所在节点    Node.js
8 条回复
wdhwg001
2015-03-20 06:52:22 +08:00
快.
blacktulip
2015-03-20 07:17:41 +08:00
Rails 是后端框架,Node 是语言实现,根本不是一种东西,没什么比头。楼主是要对比 Rails 和 基于 Node 的框架么?Sails ? Meteor ?
coolicer
2015-03-20 08:43:06 +08:00
js系,可以做网站,app之类
otakustay
2015-03-20 10:55:54 +08:00
1. Node的优势在性能
2. Rails要比也是找个框架比,Node也有不少框架是仿Rails的
3. JS并不是一个优势,从语言来说JS是一门非常烂的语言
chaucerling
2015-03-20 12:25:26 +08:00
喜欢异步到底就用nodejs,不喜欢就学ruby用RoR
wolfdolf
2015-03-20 12:54:59 +08:00
@blacktulip Meteor 比rails强大么? koa, express和ror中的什么对应呢?
shen0100
2015-03-20 14:57:49 +08:00
首先,普及一下背景知识: RoR的全称是Ruby on Rails,其中Ruby是语言,on Rails是基于Ruby的比较全面的框架。Ruby也有很多其它更轻量的框架,比如Sinatra。
相比较而言,NodeJS可以认为是基于JS运行环境的平台, 属于语言以上,框架以下。基于NodeJS有很多自己的框架,而且很多都有借鉴Ruby的框架,比如Express是借鉴(inspired by) Sinatra, 而Sails是借鉴RoR。
回到正题,NodeJS和Ruby的框架在根源上的不同,在于语言属性的不同。JS是单线程的异步语言,而Ruby是支持多线程。在互联网的角度来看,单线程异步的优势在Nginx和Tornado上都体现的很明显了,不再赘述。另外前后端如果都用JS的话,开发人员效率会比较高,起码不用背好几本语法文档。最后就是NodeJS里有一枚利器,叫Socket.io,所以基本需要实时同步的(类似Web QQ)的应用,NodeJS是不二之选 (当然用Scala,Go等大神可以无视了)。
总的来说,如果是传统的网站应用,比如CMS,CRM啊,电商啊,RoR会更适合一些;比较新颖的,对移动端用户支持更好的,NodeJS可能会更好一些。当然也有很多例外,因为归根到底,用自己最熟悉的语言才是王道。等项目做大了,各种技术再加入都来得及。
至于门槛啊...学两周,然后花一个月做个项目就算入门了,所以都不高。至于后面的修炼就看个人的悟性了。
P.S. 提到了Meteor,其实还有些类似的比如Derby,都是很新颖的基于NodeJS的框架,适用于对实时性要求极高的项目。由于不使用MVC结构,学起来可能会有点挑战,不过Meteor API和教程都很完善的,上手应该没有压力。
heeroz
2015-03-20 17:08:42 +08:00
node.js的回调太恶心了,还是用lua的协程吧,什么时候openresty上台啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/178125

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX