Rails與Node.js/PHP/Python等對比
首先,這不是比較貼,語言和框架能比較嗎?
其次,我也沒有全部用過
本文唯一的目的在於提醒自己(還有正在瀏覽的你)真正所需要關注的究竟是什麼
PHP
PHP是simple but dirty的語言,simple是指的語言,simple是指學習曲線低,主要是因為有大量的基於php的傻瓜式應用,比如wordpress,discuz之類的,如果你只有一般的博客或論壇需求的話,只要善用google,你不用寫哪怕一行代碼。但是,php本身simple嗎?個人認為不是的,原因就不一一列舉了。至於dirty,我更覺得說的是他的設計,語言設計比較糟糕,看著常常的下劃線連接的函數名就略窺一二,除了有豐富經驗的php程式設計師,很難有人能寫出沒有嚴重漏洞的程式碼。
php開發框架建議:一等:Yii,Yaf,Symfony;二等:Zend,Cake,CI
Django
Django是基於Python的web開發框架,和Rails十分的相似,前幾年,他比Rails好的地方在於Python比Ruby更“可靠”,所謂可靠,就是更多人用,文檔更多,更能通過詢問找到答案,但隨著近幾年Ruby的逐漸興起(大部分靠Rails的帶動) ,越來越多的網站使用Rails。單論語言設計,Python不見得比Ruby簡潔,一致性也略遜於Ruby,可以說Python唯一的優勢就是有很多serious scientists都在使用它,在科學計算領域佔據大半江山,而Ruby是日本人造的(Ruby借鑒了Python)。倘若Ruby是與Python同時代的歐美國家誕生的語言,相信現在已經沒Python什麼事了。
Rails
Rails是個驚人的web框架,幾乎現在所有的主流web框架都能看到Rails的影子,Rails把Ruby的特性用到了極限。 Rails能應用於一切大中小型應用,超大規模應用不是單靠任一腳本語言就能勝任的。 Rails經過多年的發展已經洗盡鉛華,現在正處於「一枝獨秀」的狀態,可以說沒有一款框架的綜合能力(易用性,簡介性,效率,學習曲線等)能超越Rails,NodeJS不行, Django不行,其他「小眾」的語言更不行,相反,Rails正處於飛速發展狀態,以後超大規模應用的成功案例也會逐一出現。
NodeJS
NodeJS是一款很有前景的Web框架,可惜就是晚生了幾年,不然現在也是能和Rails一較高下,相比php,Django和Rails,NodeJS的開源專案相對較少,大型的成功案例也略少,但其設計和性能也相當簡潔和高效。相信不久的將來也會大放異彩。
ASP,JSP等
複雜,臃腫,企業級,靠人數堆積的公司,國企,銀行,電商,創業公司用這些的話就是自殺,重要部門不用這些的話也是自殺(招的人不行,只能用售後啦)。
其他
其他語言就是各有各的用途,只不過業務恰好用到該語言罷了,嚴格的說不能算是專門搞網絡開發的,比如Clojure,Io等。這裡暫時不討論了。
總結:
如果讓我再次選擇學習路線(只有語言,不包括server,db方面)的話,我會
了解一下php,不用深入
了解一下Yii,一款php的MVC框架,不必深入
基本學習Ruby
基本學習Rails
徹底學習Ruby
徹底學習Rails
了解Pyt ,Django,Lisp,Clojure,NodeJSo
了解Pyt------ -----------分割線------------------------------
這篇文章對rails和nodejs的適用場景描述的非常到位。 rails和nodejs是最值得關注的兩種後台技術。
聲明:這篇文章絕不是一篇討論 NodeJS 和 Ruby on Rails 孰優孰略的檄文。它所描述的只是我們做決策過程中的一些思考、決策背後的原因。兩種框架都非常優秀,都出色的完成了它們的設計初衷,這也是為什麼我們部分的模組仍然運行在NodeJS上的原因。
我是NodeJs的大粉絲,認為這是一項讓人非常興奮的技術,相信它會變的越來越流行。我對這項技術非常的欣賞——儘管我們最近把Targeter App從NodeJS遷移到了Ruby on Rails。
我們當時使用NodeJS來發展它的原因很簡單。我有一個程式包,能很快的將我們的應用弄上線(我們花了54小時做這個事情),相比起Ruby,我更 常使用的是JavaScript。因為我們的技術架構牽涉到MongoDB,我的這些專長只有在NodeJS環境裡才會有意義。然而,隨著應用程式規模的增 長,我意識到,選擇NodeJS來實現這個應用程式是個錯誤的選擇。下面讓我來概述一下其中的原因。
NodeJS很適合做那些有大量短生命期請求的應用。對於傳統的CRUD應用,它也很好,但不是非常的理想。在 PHP,Ruby,Python語言裡都有很成熟、優化的很好的框架來處理這個應用。 NodeJS裡的所有東西都非同步執行的理念對於CRUD應用來說沒有 任何效果。其它語言裡的流行的框架能提供非常好的快取技術,你所有的需求都能滿足,包括非同步執行。
NodeJS是一種非常年輕的技術框架,它的周邊程式庫都不是很成熟。我說這些並沒有任何對那些程式碼捐贈者冒犯 的意思,他們很優秀,開發出來很多優秀的程式庫。然而,大部分的程式庫需要改進,而NodeJS這種快速成長的環境意味著每一版升級中都帶有大量的變化; 當你使用一種前沿技術時,你十分有必要盡快的緊跟最新的版本。這給創業型的企業帶來了很多的麻煩。
另一個原因是關於測驗。 NodeJS裡的測試框架還不錯,但跟Django或RoR平台上的比較還是差一些。對於一個每天都有大量的程式碼提交、並且在一兩天內就要發布的應用程式來說,程式不能出問題是至關重要的,否則你為此辛苦的努力變得得不償失。沒有人願意花一天的時間改一些弱智的bug。
最後一點,我們需要的是一種可以緩存一切的東西,並且要盡快的實現。儘管我們的應用程式正在成長,每秒鐘有上萬次的hits,但絕不會出現很大量的存取請求;這不是一個聊天程式!主程式最多時也就達到1000RPS,這樣的負載對於Ruby on Rails和Nginx來說算不了什麼。
如果你現在還在讀這篇文章,那你已經看到了我所有要說的了,你也許非常堅持的想知道我們的應用什麼地方還在使用NodeJS。是這樣的,我們的應用 由兩個部分組成。一是介面,使用者看到的這部分,二是負責報表管理的部分,以及做日誌的功能。後者是NodeJS的一個最佳使用場景,存在有大量的短週期的請 求。這部分的動作需要盡快的執行完成,甚至在我們的資料推送還沒完成之前。這很重要,當請求執行還未結束,瀏覽器繼續等待回應結束,這會影響使用者使用 體驗。 NodeJS的非同步特性救了我們。資料要麼被存入資料庫,要麼被處理掉,當請求一旦執行完成,瀏覽器就可以開始做它重要的事情了。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Go與Ruby的主要區別在於:Go是一種靜態類型編譯語言,支援輕量級並行和高效記憶體管理,適合編寫高並發應用程式;Ruby是一種動態類型解釋語言,支援真正的平行但記憶體管理需手動控制,適合編寫靈活的Web應用程式。

Ruby操作MySQL使用mysql2連接mysql並操作mysql。 geminstallmysql2連接mysql建立連線:require'mysql2'conn=Mysql2::Client.new({host:'192.168.200.73',username:'root',password:'P@ssword1!'})接受的連線選項包括: Mysql2::Clie

許多人或許會注意到一個現象,那就是在一些現代程式語言(當然,並不是指「最近出現」的程式語言)中,自增和自減運算子被取消了。也就是說,在這些語言中不存在i++in或這樣的表達,而是只存在i+=1j-=1這樣的表達方式了。本回答將從設計哲學這個角度探討這現象所產生的背景與原因。嚴格來說,說"i++正在消失"也許有失偏頗,因為主流程式語言中似乎只有Python、Rust和Swift不支援自增自減運算子。當我第一次接觸Python時,這也

如何使用MySQL和Ruby實作一個簡單的資料轉換功能在實際的開發工作中,經常需要進行資料轉換,將一個資料格式轉換為另一個資料格式。本文將介紹如何使用MySQL和Ruby來實作一個簡單的資料轉換功能,並提供具體的程式碼範例。首先,我們需要安裝並設定MySQL和Ruby環境。確保已經安裝了MySQL資料庫,並可以透過命令列或其他工具連接到資料庫。另外,需要安裝

如何使用MySQL和Ruby實作一個簡單的非同步任務排程功能先前的Web應用程式大多採用同步的方式來處理請求,也就是用戶發送請求後,伺服器會立即處理完請求並傳回結果。然而,隨著應用程式複雜度的增加,同步方式的處理效率逐漸變得低下,因此非同步任務調度成為了現代Web應用程式中常見的需求。本文將介紹如何使用MySQL和Ruby來實作一個簡單的非同步任務排程功能,包括任務的

如何使用MySQL和Ruby實作一個簡單的資料查詢分析功能在當今大數據時代,資料分析已經成為了許多領域中不可或缺的一部分。而在進行資料分析時,最常見的操作就是進行資料查詢。本文將介紹如何使用MySQL和Ruby程式語言來實作一個簡單的資料查詢分析功能,並且給出具體的程式碼範例。首先,我們需要安裝MySQL和Ruby的開發環境。 MySQL是一個開源的關聯式資料庫

如何使用MySQL和Ruby實作一個簡單的資料分析報表功能引言:在當今資料驅動的時代,資料分析對於企業的決策和發展起到了至關重要的作用。而資料分析報表作為資料分析的重要組成部分,對於資料進行整理、視覺化和解讀具有重要意義。本文將介紹如何使用MySQL和Ruby來實作一個簡單的資料分析報表功能,並提供對應的程式碼範例。一、資料庫設計與建表要實現資料分析報表功能

Redis在Ruby開發中的應用:如何快取複雜資料結構概述:Redis是一種高效能的鍵值儲存系統,被廣泛應用於快取資料和暫存。在Ruby開發中,我們可以使用Redis來快取複雜資料結構,進而提高系統的效能和反應速度。本文將介紹如何在Ruby中使用Redis快取複雜資料結構,並提供程式碼範例。背景:在開發過程中,我們經常遇到需要處理複雜資料結構的情況。例如,
