標籤:

ruby nodejs效率區別大嗎?

個人開發類似大眾點評的網站,含移動客戶端。哪種需要比較好呢?


一般選擇框架時需要考慮很多問題,以下是我和其他coding夥伴的考慮(結合這個問題具體問題):

  • 哪個熟悉
  • 使用的人有多少?(documentation 和 package (library/gem) 有多少/好,問題有沒有人回答)
  • 把具體的好壞列出來一個一個和自己的需求比

具體針對nodejs有幾點優勢

  • Google JS Runtime 非常快
  • nodejs 默認 async(非同步),有些時候快一些
  • 適合 one page app (比如gmail那樣的)我覺得的是更適合ajax所以才這樣
  • 語言統一,不用前後台換來換去,都是javascript(有人不喜歡javascript,可以學 coffee script),同時和mongodb結合比較好(相比SQL)。現在有一個MEAN stack: mongodb, express, angular and nodejs,貌似學好了很厲害。

Ruby on Rails優勢

  • 成熟,gem很好很多很全(不過nodejs現在用的人越來越多了)

  • 會的人比較多(至少再美國)
  • 學起來相對比nodejs要容易。nodejs的 abstraction(抽象?)比RoR少,還涉及到 callbacks(因為是非同步)

移動端可能要求ajax多一些(如果你不做 native app),這個主要是前台設計(個人認為)。如果是點評網站的話,我覺得可能 Ruby on Rails 還是更合適一些。


如果你是說運行的時候的效率,nodejs比ruby高。

如果你是說開發效率,ruby比nodejs高。


ruby

rails:處理web界面部分

ejabberd(基於erlang的xmpp伺服器)+bosh:用來處理實時部分

grape(api)+goliath(api伺服器,目測和nodejs的效率在一個級別):處理app的api

capistrano+passenger+apache/nginx(部署首選)


如果能到百萬級別

如果不在乎js語法

用node吧,node塊


補充一下,ruby的框架並不止rails 一種,ruby != rails。

用現在的觀點看rails算比較笨重的框架,雖然有編寫比較快的優勢但是但是運行起來是比較慢的。ruby本身是性能不錯的,特別是最近2.1版本性能提升很客觀,而且輕量級的ruby框架比如sinatra也是速度相當快的。總結下,如果ruby玩得順,其實並不會比node差多少。

node不做評論。


沒啥區別,哪個熟用哪個。


這個問題的目的是什麼?背景上下文…


推薦閱讀:

Ruby 語言有哪些缺陷?
ruby on rails 不如原來流行了嗎?為什麼?
Ruby語言到底前景怎麼樣?
從零開始學習 Ruby,該如何做?
怎麼樣更好地理解 Rails 的源碼?

TAG:Ruby | RubyonRails |