程式設計雜筆

[程設雜筆] nodejs sinatra ror 簡單比較

因為我個人主要是研究前端的,而後端這一塊的主要方向也是在node js,所以我想說第一週,我就花一點時間,了解一下nodejs ruby on rails sinatra的主要差別是在哪。ruby on rails和sinatra因為都沒有寫過,所以只是憑網路上的一些資料,比對我寫nodejs時的感覺去理解的。有理解錯誤,還請有寫過ruby on rails的大大,幫我釐清一下。

首先,如果去網路上搜尋「我想學後端,該學什麼?」,那八九不離十,應該會跳出nodejs php ruby on rails(ROR),這幾個語言。如果不管php的話XD(事實上php7也才剛出而已,聽說效能有一個大幅的upgrade),那大概有一狗票的文章都在寫「nodejs vs ror」。

加上目前身在這個讀書會,所以我就私自加了「nodejs vs ror vs sinatra」。

使用語言 套件管理
nodejs javascript npm
ror ruby gem
sinatra ruby gem

不過只寫這樣,看的出來他們的差別,那還真的是有鬼,所以我又再找了一下文章:

http://stackoverflow.com/questions/3730309/when-to-use-node-js-vs-sinatra-vs-rails

這篇其實我覺得寫的滿好的,大概可以鉤勒出nodejs ror sinatra之間的差異。

簡單來說,如果你想要弄出一個大型網站的話,那這三者,ror是你的最佳選擇,這是因為ror的套件太豐富了,你做的每一個操作(例如讀database、處理request、網站security),都可能有library可以幫你解決,代表只要寫幾行code,就可以搞定了。但是這也存在一個問題,就是你的網站會不知不覺變得很肥大,裝了很多的library。

那如果想要做一個小型的app,譬如聊天室,或投票機之類的,那你可選擇sinatra 或 nodejs這樣輕量化的framwork。但是這裡說nodejs會有失精準,應該要說nodejs + expressjs。express是跑在node上面的,透過他,可以處理一些http的request,例如post get。如果你偏好使用ruby,那就用sinatra吧,如果偏好javascript,想用javascript統一世界的話,那就用nodejs吧。

所以,講了很多,還是搞不太懂這三者的差異的話。那可以想像nodejs和sinatra,就是給你很多很基本的工具和原料,例如鐵槌、焊槍、壓模機、鐵、橡膠……,然後叫你弄出一台車子,過程中你可以學到很多很基本的原理,但是做起來比較花時間,比較累。那ror就是直接打電話跟輪胎廠說,老闆我要4個輪胎,跟車門廠(好像沒這種廠……)說,老闆我要4塊車門,然後再老闆我要引擎,我要什麼。最後弄出一台車子。弄出的車子可以跑嗎,那是一定的,而且做的很快,但是車子的細部內容,就不太了解了。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s