開源Web框架PHP與Ruby on 到底哪個優秀

2022-03-16 09:16:04 字數 1490 閱讀 7644

php與ruby on rails兩大陣營均擁有大量各自的忠實粉絲。拿兩者作比較,本身就是難以取捨。無論誰贏了,都會引來對方粉絲的口水。受此影響,在兩者選其一這個問題上,開發者通常會顯得猶豫不決。這篇文章的出發點雖然是比較,但並不是一邊倒式地唱盛唱衰,而是辯證式的綜合對比。沒有好壞,適合自己的才是最好的。

實際上,拿php與ruby on rails比較是個偽命題,是不公平的。相比於ruby on rails語言加框架的完整性,php僅是一門程式語言。你看,php已經輸在起跑線上了。但php擁有四兩撥千斤式的輕巧與靈活,這就意味著它消耗極少的記憶體資源,效能卓越。另一方面,php社群是成熟的、穩定的,各種php擴充套件外掛程式與工具包百花齊放,百家爭鳴。如此看來,php又扳回了一成。

php具有效能高、外掛程式多的優勢,並不意味著它沒有缺點。php語法源自指令碼風格,卻加入物件導向特性,這種畫虎不成反類犬的不倫不類,飽受詬病。這也許可以成為ruby on rails粉絲攻擊的軟肋。另一方面,如前所述,php作為單一程式語言,不具備ruby on rails的框架特性。這就意味著,除非借助外掛程式與工具,單靠php從零開始開發應用程式,需要非常高的程式設計成本。比如,為取得與資料庫的連線,你不得不從頭開始寫乙個資料庫聯結器api。但有時候,缺點其實也是優點。不同於ruby on rails,受限於自身的框架,php則可以靈活自如的選擇成熟穩定的第三方外掛程式與工具。這就好比說,單身的同志也大可不必太羨慕成雙成對的鴛鴦,因為沒有選擇往往意味更多的選擇。不同的是,愛情鼓勵專一,而「腳踏幾隻船」是php的賣點,開發人員可以同時選擇不同的框架,實現與各種單一功能特性的最佳匹配。在這一點上,對於沒有選擇的ruby on rails來說,只有羨慕的份兒了。正因如此,相對於php開放性地支援第三方外掛程式而言,ruby on rails天生的封閉特性,無可避免地要面臨效能換取功能的挑戰。每當遇到無法滿足業務程式需求的時候,就意味著ruby on rails需要更多的研發成本投入。這絕對是一大利空。

剛才強調了php的很多優勢,如果就此打住,相信會招來ruby on rails粉絲的無數口水。是時候該替這個後起之秀說說話了。ruby on rails作為乙個框架,是專為ruby這門程式語言設計的。ruby的設計理念很清晰,就是完全的物件導向,語法非常緊湊,清晰,代價是損失一定的靈活性。從程式語言的效能對比來看,ruby通常會比php慢,耗用更多記憶體。不過,rails框架能幫助ruby快速開發出web應用程式,算是一種彌補吧。這是乙個典型的功能換效能的例子。作為乙個web框架,rails具有許多非常多非常棒的特性。比如,rails的activerecord特性能支援資料庫表記錄與ruby物件的對映,帶來的好處是,rails幫助開發人員隱藏繁瑣的sql細節,直接使用ruby就輕鬆實現對資料庫的增刪改查。換句話說,ruby開發人員無需依賴sql,照樣玩轉資料庫。另外,rails支援很多的html特性,比如html**生成器,session機制等,可以更加輕鬆便捷地構建web應用。這也覺得是一大利好。

rails眾多強大的特性,從另乙個角度來說,也是乙個弊病。比如,rails雖然遮蔽sql,同時也意味著ruby開發人員失去了直接操控sql的機會。功能多也未必全是需要的。這樣看來,魚和熊掌,真是不可兼得。

PHP開源框架整理

1.discuz 中國地區最多使用者使用的論壇程式,論壇搭建非常簡單易用,使用風格符合中國人的口味。網路上有很多的模板和功能外掛程式供大家選擇。2.phpwind 速度快,處理效率高,用的人也比較多,和discuz 不相上下,這兩款php論壇程式占居了整個國內論壇大多數份額。3.ucenter 通過...

開源web框架Rose開發初感

rose 是由人人網 糯公尺網 提供的 基於servlet規範 spring 規範 的開放源 web開發框架。rose的開源位址是 本文不打算為您詳細介紹rose,而且假設你已經對rose已經有一些了解,本文的中心是自己初次接觸rose後的一點感言。一句話 基於spring的元件框架,推崇頁面驅動和...

58同城開源web框架 Argo (四)

58同城開源的輕量級web框架 今天開頭說說抽象,物件導向的特點 抽象 繼承 多型,好的設計都是基於優秀的抽象,抽象層次越高 越完善,他的擴充套件性就越好,也越容易理解。好比居家過日子,多多少少需要一些工具,可切割的 可裁剪的,這就是兩個inte ce,於是我們準備了刀和剪子,就是一種實現。再後有了...