幫客之家(www.Bkjia.com)訊 本文並非是一篇Ruby和PHP大比拼的文章。只是,文中所提到的Ruby面對的問題:缺乏庫的支持,不容易擴展,容易崩潰等等,都是Web編程語言所必須要改進的。
本文出自killerphp.com的站長Stefan Mischook,並在發布之後被推送到了著名的PHP開發者社區:phpdeveloper.org當中,從而引起了不少爭議。姑且不論Stefan撰文的用意如何,但其中提到的Ruby面對的問題:缺乏庫的支持,不容易擴展,容易崩潰等等,都是Web編程語言所必須要改進的。
在2006年的時候,我創立了killerphp.com,目的就是為了讓Web設計人員更容易地學習PHP。當時我認為PHP是占據著主導地位的語言,它應該成為每位web設計師的核心編程技術之一:
◆html
◆css
◆php
◆javascript
後來Ruby橫空出世,不過好景不長,很快就又消聲匿跡了。
Ruby和Ruby on Rails到底怎麼了?
曾幾何時,Ruby是有史以來最好的語言,其它所有語言相比之下都不值一提。時過境遷,現在回過頭去看,這簡直就是個笑話。
現在Ruby的光景已大不如前,遠遠不像當初那樣引人注目。這輛軌道車(Rails train)實際上已經從軌道上滑落——現在Ruby陣營裡已經有了可以替代Rails的web框架Merb。當然嚴格說來,Merb和Rails只是正在合並,所以說它脫軌有些言重了。
那麼到底出現了什麼狀況,制約了Ruby的發展呢?
限制Ruby擴張的原因和我2006到2007年時上線這個網站的原因是一樣的:Ruby的心已經碎了。
◆是的,Ruby有很棒語法規則。
◆是的,寫Ruby程序很有意思。
◆是的,它的確是純粹的面向對象,最大的面向對象!
但是,Ruby也有許多缺憾:許多重要的庫和函數在PHP程序員看來理所當然的,卻讓Ruby程序員羨慕不已,卻只有干流口水的份,因為Ruby沒有提供這些。如果實在需要的話,可以用C語言編寫補丁,但是這太痛苦了。
除此之外,Ruby還有些不可告人的秘密:crash-o-matic。確實是這樣的,基於Ruby的Web程序經常崩潰。與Web服務器沒法良好結合,這讓Ruby總是如芒在背。
證據在此:Ruby曾造成Twitter連續三周出現性能問題
……當然平心而論,我聽說這方面已經得到了一些改善。
這和PHP又有什麼關系?
正如我幾年前在一篇關於Ruby的博文裡所說的(BKJIA編者注:那篇文章寫在Ruby崛起不久的時候,那時一個普遍的觀點是Ruby可能將代替PHP):PHP的恰好就彌補了Ruby的不足。不可否認,PHP的某些方面確實不如Ruby那樣漂亮。但是正如人不可貌相,如果一種語言華而不實,那誰還會喜歡呢?
……好吧,也許你可以分別試試這兩種語言!但是不管怎樣,不要被哪一種語言一葉障目。
我還是認為至少到目前為止,PHP是學習web編程的最好入門語言。原因如下:
◆功能強大
◆容易學習
◆擁有大的市場 = 你有更多的活兒可以做
說了這麼多,難道PHP就是完美無瑕,處處占優嗎?不是這樣的。每一種語言都有其優勢和劣勢——尤其是在結構層次上,PHP還很欠缺。我的意見從來都是,按照項目的需求選擇使用的語言。最開始我是個Java程序員,這麼多年來我使用過不下7種編程語言。所以我堅持認為,選擇適合項目的語言才是最重要的。
原文:What happened to Ruby? And why PHP is KING of the Web.
作者:Stefan Mischook